Патч 1.02.3

да я слоупок.
Доберусь до нормального нета, посмотрю что там изменили в текстовой части.
А то 3г плох
Написал Klef 26 сентября 2012, 19:08 Обсуждение оригинала 24 комментария

Комментарии

с ожиданием ответа от разрабов, и шрифтами, так всевозможные патчи пролетим, и русик уйдет в бесконченое плавание редактирования и допиливания

Jazzis 29.09.12 в 11:26 · # ·
0

скрытые комментарии (1 шт.)

отправили в командировку, до конца недели доступа фактически не будет :(

Klef 30.09.12 в 10:02 · # ·
0

А что за патч? где про него прочесть можно?

Some1 01.10.12 в 13:41 · # ·
0

скрытые комментарии (9 шт.)

на офф. форуме нашел changelog:
http://www.ftlgame.com/forum/viewtopic.php?f=9&t=2707

Jazzis 08.10.12 в 09:07 · # ·
0

Очень интересно. Оказывается была куча багов. А что, может им в саппорт написать просьбу пофиксить баг с шрифтами?:) У них в самом коде отключена возможность выводить символы с порядковым номером больше 80h. В стандарте utf8 (http://ru.wikipedia.org/wiki/UTF-8 ) написано, что до этого адреса символы кодируются одним байтом. А всё, что выше — двухбайтным юникодом. Так вот в игре этот двухбайтный юникод показывается как два символа. Но порядковые номера символов берутся по модулю от 128 (80h). То есть если даже попытаться вывести символ, скажем, с адресом C5, то выведется C5-80=45h.

П.С. utf-8 — кодировка, которой записаны все текстовые ресурсы. Не 1252, как писал Klef (не знаю вообще, откуда он это взял, хотелось бы пообщаться).

Some1 08.10.12 в 09:28 · # ·
0

про 1252 вышла версия из особенности отображения при занесении текста в кодировке cp1251

хотел узнать, откуда сведения, что это действительно юникод с обрезкой всего, что выше 80h

Klef 16.10.12 в 21:40 · # ·
0

Так, собственно от тебя ж :) Ты писал, цитирую: «детальное вскрытие показало использование cp1252».
Вот тут мне, лично, интересны подробности. Ибо я нигде поддержки именно этой кодовой страницы не заметил.
Тексты у них вписаны с использованием символов до 80h (можешь чем нибудь проверить xml), и только в одном файле в заголовке явно указан utf-8, и если почитать спецификацию этого формата, то становится ясно что там те же символы в адресах до 80h, а все, что выше кодируются многобайтовыми последовательностями.

Мною опытным путём было выяснено, что эти многобайтовые последовательности в игре так же многобайтово выводятся (иными словами — не распознаются). Каждый байт, больший 80h урезается по модулю от 80h, и выводится то, что получилось. Но с модификациями в размере и гарнитуре шрифта (один шрифт пишет вдвое больше, другой — меньше. Третий — вообще на другой шрифт переключается). Возможно это просто баг, игра не рассчитана на такие символы и происходит переполнение, я не знаю. Но факт в том, что юникодовских двухбайтовых последовательностей игра НЕ понимает (по крайней мере базовая версия. стандартная).

Some1 17.10.12 в 04:42 · # ·
0

смотри, я сначало тоже думал, что он режет utf-8, но потом я накатил текст в кодировке cp1251 и визуально воззрился на результат. а он очень похож на 1252.
конечно это может быть глубоким заблуждением

Klef 17.10.12 в 09:04 · # ·
0

визуально где, в игре? Я в игре, как не бился, символы выше 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.
Усёк?

Some1 17.10.12 в 10:11 · # ·
0

Иными словами это жёсткое хардовое ограничение, которое можно побороть только переделав исходный код игры. Ну или впихнув русскую таблицу в те базовые 128 символов...

Some1 17.10.12 в 10:13 · # ·
0

усек.
с такой точки зрения как то не смотрел.
сурово :(

Klef 17.10.12 в 10:19 · # ·
0

На самом деле со стороны разработчиков для введения 256 символов (не юникода) требуется минимум телодвижений: нужно увеличить размер массива шрифтов. он должен быть не (х шрифтов,128 символов) а (x шрифтов, 256 символов).
Нужно подправить функцию загрузки шрифта, чтобы она грузила символы не до 128 а до 256, и всё. (Ну может ещё поправить функцию вывода текста, если там стоит ограничитель на 128 символов, но это вряд ли). Всё это, теоретически, делается даже простой правкой кода в дизасемблере — заменой пары констант. Но я этого делать не умею.
ИМХО проще попросить разработчиков.

Some1 17.10.12 в 10:28 · # ·
0

неделя прошла, думаю Klef скоро появится..

Jazzis 08.10.12 в 09:04 · # ·
0

скрытые комментарии (2 шт.)

Хорошо бы.

Some1 08.10.12 в 09:20 · # ·
0

татам =)

Klef 16.10.12 в 21:40 · # ·
0

нашел прогу для распаковки *.dat файлов http://www.ftlgame.com/forum/viewtopic.php?f=12&t=2788
ps а вдруг до сих пор питоновский скрипт юзайте :)

Jazzis 08.10.12 в 09:14 · # ·
0

скрытые комментарии (3 шт.)

она еще и паковать умеет оО

Jazzis 08.10.12 в 09:15 · # ·
0

а что, был такой скрипт? :) Я ей и пакую :)

Some1 08.10.12 в 09:16 · # ·
0

когда перевод начинали делать, для распаковки/паковки юзался данный скрипт http://www.ftlgame.com/forum/viewtopic.php?f=12&t=1920 :)

Jazzis 08.10.12 в 09:23 · # ·
0

в данный момент у Klef'а с инетом проблемы, в стабильном подключении будет после 20-го числа..

Jazzis 09.10.12 в 12:49 · # ·
0

скрытые комментарии (2 шт.)

Что, такие проблемы, что вообще не может выйти?

Some1 09.10.12 в 12:53 · # ·
0

3g сношаемое ветром

Klef 16.10.12 в 21:41 · # ·
0

О_о... А что, собственно, он может сделать, когда появится?

Some1 09.10.12 в 12:52 · # ·
0

скрытые комментарии (1 шт.)

Ну помимо прав :)

Some1 09.10.12 в 12:52 · # ·
0
Перевод
Перевод:
текст с английского на русский
Создан:
17 сентября 2012, владелец: Klef
Скачали:
4314 чел.
Права доступа:
войти все
видеть чужие версии все
скачивать результат все
оценивать перевод все
комментировать перевод все
переводить все
читать блог все
комментировать блог все
писать в блог все
анонсировать модераторы
редактировать оригинал модераторы
редактировать описание никто
управлять группой модераторы
Участие в группе нет группы
Готово:
100.00% КП = 1.5