Патч 1.02.3
да я слоупок.
Доберусь до нормального нета, посмотрю что там изменили в текстовой части.
А то 3г плох
Доберусь до нормального нета, посмотрю что там изменили в текстовой части.
А то 3г плох
Комментарии
Блог перевода
Рубрики:Перевод
- Перевод:
- текст с английского на русский
- Создан:
- 17 сентября 2012, владелец: Klef
- Скачали:
- 4314 чел.
- Права доступа:
-
войти все видеть чужие версии все скачивать результат все оценивать перевод все комментировать перевод все переводить все читать блог все комментировать блог все писать в блог все анонсировать модераторы редактировать оригинал модераторы редактировать описание никто управлять группой модераторы Участие в группе нет группы - Готово:
-
100.00% КП = 1.5

с ожиданием ответа от разрабов, и шрифтами, так всевозможные патчи пролетим, и русик уйдет в бесконченое плавание редактирования и допиливания
скрытые комментарии (1 шт.)
отправили в командировку, до конца недели доступа фактически не будет :(
А что за патч? где про него прочесть можно?
скрытые комментарии (9 шт.)
на офф. форуме нашел changelog:
http://www.ftlgame.com/forum/viewtopic.php?f=9&t=2707
Очень интересно. Оказывается была куча багов. А что, может им в саппорт написать просьбу пофиксить баг с шрифтами?:) У них в самом коде отключена возможность выводить символы с порядковым номером больше 80h. В стандарте utf8 (http://ru.wikipedia.org/wiki/UTF-8 ) написано, что до этого адреса символы кодируются одним байтом. А всё, что выше — двухбайтным юникодом. Так вот в игре этот двухбайтный юникод показывается как два символа. Но порядковые номера символов берутся по модулю от 128 (80h). То есть если даже попытаться вывести символ, скажем, с адресом C5, то выведется C5-80=45h.
П.С. utf-8 — кодировка, которой записаны все текстовые ресурсы. Не 1252, как писал Klef (не знаю вообще, откуда он это взял, хотелось бы пообщаться).
про 1252 вышла версия из особенности отображения при занесении текста в кодировке cp1251
хотел узнать, откуда сведения, что это действительно юникод с обрезкой всего, что выше 80h
Так, собственно от тебя ж :) Ты писал, цитирую: «детальное вскрытие показало использование cp1252».
Вот тут мне, лично, интересны подробности. Ибо я нигде поддержки именно этой кодовой страницы не заметил.
Тексты у них вписаны с использованием символов до 80h (можешь чем нибудь проверить xml), и только в одном файле в заголовке явно указан utf-8, и если почитать спецификацию этого формата, то становится ясно что там те же символы в адресах до 80h, а все, что выше кодируются многобайтовыми последовательностями.
Мною опытным путём было выяснено, что эти многобайтовые последовательности в игре так же многобайтово выводятся (иными словами — не распознаются). Каждый байт, больший 80h урезается по модулю от 80h, и выводится то, что получилось. Но с модификациями в размере и гарнитуре шрифта (один шрифт пишет вдвое больше, другой — меньше. Третий — вообще на другой шрифт переключается). Возможно это просто баг, игра не рассчитана на такие символы и происходит переполнение, я не знаю. Но факт в том, что юникодовских двухбайтовых последовательностей игра НЕ понимает (по крайней мере базовая версия. стандартная).
смотри, я сначало тоже думал, что он режет utf-8, но потом я накатил текст в кодировке cp1251 и визуально воззрился на результат. а он очень похож на 1252.
конечно это может быть глубоким заблуждением
визуально где, в игре? Я в игре, как не бился, символы выше 80h не увидел. Показывает другого размера буквы, показывает другие шрифты (да да, именно другой. То есть, например, символы до 80h выводятся justinfont10, а если я пытаюсь вывести выше 80h, то показывает те, что ниже 80h из justinfont11).
У меня возникла идея. Вот представь себе двумерный массив данных всех шрифтов игры. идёт, к примеру
justinfont7 (128 символов), потом
justinfont7 удвоенного размера (128 символов),
потом justinfont8 (128 символов),
потом justinfont8, допустим, уменьшенного размера (128 символов),
потом justinfont9 (128 символов)
потом justinfont10 (128 символов) (а justinfont9 увеличенный не понадобился.
Если игра пишет определённым шрифтом, то указывается адрес начала этого шрифта, ну и смещение, соответственно будет нужной буквой в шрифте. А что будет, если мы попытаемся вывести символ с смещением больше 128??? Правильно — мы попадём на таблицу другого шрифта (ну или того же шрифта с каким нибудь эффектом, например увеличением или уменьшением.).
Пример: игра пытается вывести шрифтом justinfont8 символы с порядковыми номерами ниже 128.
Берётся адрес начала шрифта justinfont8 и для образа каждого символа прибавляется порядковый номер этого символа addr(justinfont8)+offset(tobyte('G')) к примеру.
А что будет, если вывести русский символ?
а будет addr(justinfont8)+offset(tobyte('Я')), а поскольку порядковый номер буквы «Я» больше 128, то мы вылетим за пределы шрифта justinfont8, и попадём куда там у нас? Ага.. на justinfont8 уменьшенного размера. Ну и, соответственно выведется маленькая буковка шрифта justinfont8, но из того же диапазона до 128.
Усёк?
Иными словами это жёсткое хардовое ограничение, которое можно побороть только переделав исходный код игры. Ну или впихнув русскую таблицу в те базовые 128 символов...
усек.
с такой точки зрения как то не смотрел.
сурово :(
На самом деле со стороны разработчиков для введения 256 символов (не юникода) требуется минимум телодвижений: нужно увеличить размер массива шрифтов. он должен быть не (х шрифтов,128 символов) а (x шрифтов, 256 символов).
Нужно подправить функцию загрузки шрифта, чтобы она грузила символы не до 128 а до 256, и всё. (Ну может ещё поправить функцию вывода текста, если там стоит ограничитель на 128 символов, но это вряд ли). Всё это, теоретически, делается даже простой правкой кода в дизасемблере — заменой пары констант. Но я этого делать не умею.
ИМХО проще попросить разработчиков.
неделя прошла, думаю Klef скоро появится..
скрытые комментарии (2 шт.)
Хорошо бы.
татам =)
нашел прогу для распаковки *.dat файлов http://www.ftlgame.com/forum/viewtopic.php?f=12&t=2788
ps а вдруг до сих пор питоновский скрипт юзайте :)
скрытые комментарии (3 шт.)
она еще и паковать умеет оО
а что, был такой скрипт? :) Я ей и пакую :)
когда перевод начинали делать, для распаковки/паковки юзался данный скрипт http://www.ftlgame.com/forum/viewtopic.php?f=12&t=1920 :)
в данный момент у Klef'а с инетом проблемы, в стабильном подключении будет после 20-го числа..
скрытые комментарии (2 шт.)
Что, такие проблемы, что вообще не может выйти?
3g сношаемое ветром
О_о... А что, собственно, он может сделать, когда появится?
скрытые комментарии (1 шт.)
Ну помимо прав :)