NoX World - форум об игре NoX

Привет фанатам NoX !!! => Картостроение, скриптинг и моддинг => Моддинг => Тема начата: Dio от 24/03/2012 10:12:05

Название: Разбор шрифтов от Garett'a
Отправлено: Dio от 24/03/2012 10:12:05



Справка.
Для тех, кому не нравятся существующие шрифты в игре.


В Nox-е используется предположительно три файла шрифтов large.fnt, number.fnt и small.fnt.
Будет рассмотрено как получить и изменить (если необходимо) изображения символов. На примере самого маленького файла.


Содержание файла number.fnt в шестнадцатиричном виде или в виде набора байт с их значениями (по две цифры на байт).


00000000: 0A 00 02 00 06 00 01 00  00 00 00 00 30 00 39 00
00000010: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000020: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000030: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000040: 00 00 00 00 00 00 00 00  0D 00 00 00 05 70 00 D8
00000050: 00 D8 00 D8 00 D8 00 70  00 03 60 00 E0 00 60 00
00000060: 60 00 60 00 60 00 05 70  00 D8 00 18 00 70 00 C0
00000070: 00 F8 00 05 70 00 D8 00  30 00 18 00 D8 00 70 00
00000080: 05 30 00 70 00 70 00 F0  00 F8 00 30 00 05 F8 00
00000090: C0 00 F0 00 18 00 D8 00  70 00 05 70 00 C0 00 F0
000000A0: 00 D8 00 D8 00 70 00 05  F8 00 18 00 30 00 60 00
000000B0: 60 00 60 00 05 70 00 D8  00 70 00 D8 00 D8 00 70
000000C0: 00 05 70 00 D8 00 D8 00  78 00 18 00 70 00


Предположительно в этом файле должны содержаться изображения цифр (арабских). Всего их 10 штук: "0","1","2","3","4","5","6","7","8","9".
Визуальный анализ позволяет выделить в файле две части, разделенные строками нулей.


Первая часть:
00000000: 0A 00 02 00 06 00 01 00  00 00 00 00 30 00 39 00
00000010: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000020: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000030: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000040: 00 00 00 00 00 00 00 00  0D 00 00 00


Вторая часть:
00000040:                                      05 70 00 D8
00000050: 00 D8 00 D8 00 D8 00 70  00 03 60 00 E0 00 60 00
00000060: 60 00 60 00 60 00 05 70  00 D8 00 18 00 70 00 C0
00000070: 00 F8 00 05 70 00 D8 00  30 00 18 00 D8 00 70 00
00000080: 05 30 00 70 00 70 00 F0  00 F8 00 30 00 05 F8 00
00000090: C0 00 F0 00 18 00 D8 00  70 00 05 70 00 C0 00 F0
000000A0: 00 D8 00 D8 00 70 00 05  F8 00 18 00 30 00 60 00
000000B0: 60 00 60 00 05 70 00 D8  00 70 00 D8 00 D8 00 70
000000C0: 00 05 70 00 D8 00 D8 00  78 00 18 00 70 00


Первая чать не интересна (одни нули), во второй, вероятно как раз содержится информаци о изображениях символов.
Всего символов 10 штук. Смотрим вторую часть и считаем количества различных значений байтов. В теории, для каждого символа должна быть отдельное изображение, эти картинки должны быть как-то отделены друг от друга. Вероятнее всего этим разделителем является байт со значением "05" - их ровно 9 штук и распределены равномерно (за исключение одного, первого, но если взять еще одно значение разделителя "03" - все начинает сходиться).


Соответственно перестроим вторую часть, перенося строки по байту "05" ("03"):
05 70 00 D8 00 D8 00 D8 00 D8 00 70 00
03 60 00 E0 00 60 00 60 00 60 00 60 00
05 70 00 D8 00 18 00 70 00 C0 00 F8 00
05 70 00 D8 00 30 00 18 00 D8 00 70 00
05 30 00 70 00 70 00 F0 00 F8 00 30 00
05 F8 00 C0 00 F0 00 18 00 D8 00 70 00
05 70 00 C0 00 F0 00 D8 00 D8 00 70 00
05 F8 00 18 00 30 00 60 00 60 00 60 00
05 70 00 D8 00 70 00 D8 00 D8 00 70 00
05 70 00 D8 00 D8 00 78 00 18 00 70 00


Теперь, как перевести эти строки в изображения. Сначала вынесем из каждой строки первый байт ("05" и "03") на отдельную строку, а всю остальную часть разделим на короткие строки по два байта. Далее нужно перевести все в двоичный вид.


05
70 00 -> 01110000 00000000
D8 00 -> 11011000 00000000
D8 00 -> 11011000 00000000
D8 00 -> 11011000 00000000
D8 00 -> 11011000 00000000
70 00 -> 01110000 00000000
03
60 00 -> 01100000 00000000
E0 00 -> 11100000 00000000
60 00 -> 01100000 00000000
60 00 -> 01100000 00000000
60 00 -> 01100000 00000000
60 00 -> 01100000 00000000
05
70 00 -> 01110000 00000000
D8 00 -> 11011000 00000000
18 00 -> 00011000 00000000
70 00 -> 01110000 00000000
C0 00 -> 11000000 00000000
F8 00 -> 11111000 00000000
05
70 00 -> 01110000 00000000
D8 00 -> 11011000 00000000
30 00 -> 00110000 00000000
18 00 -> 00011000 00000000
D8 00 -> 11011000 00000000
70 00 -> 01110000 00000000
05
30 00 -> 00110000 00000000
70 00 -> 01110000 00000000
70 00 -> 01110000 00000000
F0 00 -> 11110000 00000000
F8 00 -> 11111000 00000000
30 00 -> 00110000 00000000
05
F8 00 -> 11111000 00000000
C0 00 -> 11000000 00000000
F0 00 -> 11110000 00000000
18 00 -> 00011000 00000000
D8 00 -> 11011000 00000000
70 00 -> 01110000 00000000
05
70 00 -> 01110000 00000000
C0 00 -> 11000000 00000000
F0 00 -> 11110000 00000000
D8 00 -> 11011000 00000000
D8 00 -> 11011000 00000000
70 00 -> 01110000 00000000
05
F8 00 -> 11111000 00000000
18 00 -> 00011000 00000000
30 00 -> 00110000 00000000
60 00 -> 01100000 00000000
60 00 -> 01100000 00000000
60 00 -> 01100000 00000000
05
70 00 -> 01110000 00000000
D8 00 -> 11011000 00000000
70 00 -> 01110000 00000000
D8 00 -> 11011000 00000000
D8 00 -> 11011000 00000000
70 00 -> 01110000 00000000
05
70 00 -> 01110000 00000000
D8 00 -> 11011000 00000000
D8 00 -> 11011000 00000000
78 00 -> 01111000 00000000
18 00 -> 00011000 00000000
70 00 -> 01110000 00000000


Становится понятно, что означают байты "05" и "03" - это относительная ширина изображения символа.
Соответственно, измение значения некоторых байт, можно изменить отображение этих символов в самой игре. Но где конкретно используются именно цифры из файла number.fnt, я не проверял.
Остальные файлы шрифтов default.fnt, large.fnt и small.fnt анализируются подобным образом (default.fnt по умолчанию совпадает со small.fnt).




Практичекое применение в приложенном файле шрифта. В нем я заменил арабские цифры на изображения китайских чисел от 0 до 9.
Важно, файл шрифта изменен для английской локализации, русский текст будет отображаться некорректно.

Garett (c)

Perfect: предыстория (http://forum.noxworld.ru/kartostroenie-skripting-modding/shrifty-v-nokse/).
Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 24/03/2012 20:45:03
Отличная работа, молодец. Остается только программу написать для редактирования фонтов.
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 25/03/2012 22:20:21
Предоставьте это мне, пожалуйста)))
Название: Разбор шрифтов от Garett'a
Отправлено: Evengard от 26/03/2012 00:17:19
Всеж я б сначала разобрал заголовок.
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 29/03/2012 05:22:34
Ну это можно и потом допилить. Сначала надо начать придумывать алгоритм нахождения нужных фрагментов, а потом и их изменения.
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 29/03/2012 06:42:24
Вот, собственно, как должен выглядеть number.fnt в четырёхкратном увеличении.
Название: Разбор шрифтов от Garett'a
Отправлено: Evengard от 29/03/2012 08:37:00
Ну это можно и потом допилить. Сначала надо начать придумывать алгоритм нахождения нужных фрагментов, а потом и их изменения.

Как раз, я уверен, в заголовке указаны размеры нужных фрагментов. Ну, например у large.fnt 15 строк и 24 столбца, тогда как у small.fnt - 9 строк и 16 столбцов. Я уверен, эта информация закодирована где-то в заголовке.

А на тему расположения "где какой знак" я почти уверен, что берётся тупо ASCII таблица и по ней последовательно все символы и забиты.
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 29/03/2012 13:00:37
Могу предположить, что 0A в самом начале number.fnt - количество символов.
Название: Разбор шрифтов от Garett'a
Отправлено: Evengard от 29/03/2012 13:22:53
Честно говоря, по-моему Ноксу number.fnt особо и не нужен - он прекрасно существует и без него. Так что по хорошему надо бы разобрать всё то же самое в small.fnt и large.fnt
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 29/03/2012 13:53:53
Garett уже показал как разбирать) последующий разбор не составит труда. У меня возникли некоторые трудности в реализации самой идеи...
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 29/03/2012 18:06:18
Пришёл к выводу, что small и default идентичны. Более того, в чате и консоли используется default.fnt.
Название: Разбор шрифтов от Garett'a
Отправлено: Evengard от 29/03/2012 18:34:27
А первое сообщение топика читал внимательно?
Написано же.
Цитировать
default.fnt по умолчанию совпадает со small.fnt
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 29/03/2012 21:47:36
А ещё я прочитал это:

В Nox-е используется предположительно три файла шрифтов large.fnt, number.fnt и small.fnt.
Название: Разбор шрифтов от Garett'a
Отправлено: Evengard от 30/03/2012 10:17:42
default он тож грузит, смотрел.
Название: Разбор шрифтов от Garett'a
Отправлено: Garett от 30/03/2012 19:25:45
Частичный разбор заголовка.
Семантика некоторых значений, определенных в начале файлов default.fnt и large.fnt (small.fnt по содержимому совпадает с default.fnt).

Содержание файла default.fnt:
0000: 74 4E 6F 46 01 00 00 00
0008: 09 00 00 00 02 00 00 00
0010: 09 00 00 00 01 00 00 00
0018: 13 00 00 00 00 00 00 00
0020: 20 00 FF 00 03 00 00 00
0028: 00 00 00 00 00 00 00 00
0030: 00 00 00 00 00 00 00 01
0038: 80 00 80 00 80 00 80 00
0040: 80 00 00 00 80 00 00 00
0048: 00 00 03 ..

Для удобства представления, разделение на строки (кратность по 4 байта не обоснована ничем):
74 4E 6F 46 01 00 00 00 09 00 00 00
02 00 00 00 09 00 00 00
01 00 00 00
13 00 00 00
00 00 00 00
20 00 FF 00
03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01 80 00 80 00 80 00 80 00 80 00 00 00 80 00 00 00 00 00
03 ..

Седьмая строка (первая длинная) и ниже - изображения символов.
Разбор выделенных.

02 00 00 00 09 00 00 00
02 00 00 00 - обозначает количество байт, отведенное для ширины каждого символа. Один бит эквивалентен одной точке по ширине. Т.е. значение "02" предполагает, ширина изображения символа не более 16 точек. Как разобрано выше, ширина (в точках) конкретного символа, отображаемого в игре, задается значением байта, размещенного непосредственно перед самим изображением.
09 00 00 00 - обозначает максимальную высоту символа в точках. Значение "09" предполагает, что высота изображения символа не более 9 точек.

Все символы в файле default.fnt должны быть умещены и закодированы в картинке 9х16 точек. Все неиспользуемые байты оставляются нулевыми, но они обязательно должны быть.

13 00 00 00
13 00 00 00 - обозначает общее количество байт, выделяемых для предствавления изображения одного символа. В него входит байт относительной длины символа "+" все байты самого изображения.

20 00 FF 00
20 00 - изображение какого по порядку символа (видимо, таблицы ASCII) будет первым. Выше можно видеть, что первый символ в файле - это " ", а второй "!", таблица ASCII (http://ru.wikipedia.org/wiki/ASCII) подтверждает значение "20" - пробел, "21" - восклицательный знак.
FF 00 - номер завершающего символа (предположение, без проверки).

Значения остальных байт мной пока не разобраны.

Содержание файла large.fnt:
0000: 74 4E 6F 46 01 00 00 00
0008: 13 00 00 00 03 00 00 00
0010: 0F 00 00 00 01 00 00 00
0018: 2E 00 00 00 00 00 00 00
0020: 1F 00 FF 00 04 00 00 00
0028: 00 00 00 00 00 00 F0 00
0030: 00 90 00 00 90 00 00 90
0038: 00 00 90 00 00 90 00 00
0040: 90 00 00 90 00 00 F0 00
0048: 00 00 00 00 00 00 00 00
0050: 00 00 04 ..

Для удобства представления, разделение на строки:
74 4E 6F 46 01 00 00 00 13 00 00 00
03 00 00 00 0F 00 00 00
01 00 00 00
2E 00 00 00
00 00 00 00
1F 00 FF 00
04 00 00 00 00 00 00 00 00 00 F0 00 00 90 00 00 90 00 00 90 00 00 90 00 00 90 00 00 90 00 00 90 00 00 F0 00 00 00 00 00 00 00 00 00 00 00
04 ..

Далее разбирать не буду, должно быть и так понятно.
Название: Разбор шрифтов от Garett'a
Отправлено: Dio от 02/04/2012 16:04:40
Еще помогу товарищем которые собираются делать программы для редактирования шрифтов)
Расскажу как Nox разбирает шрифты на примере large.fnt и number.fnt

Он подгружает файл шрифтов и грузит первые 0x1c байт.
 
74 4E 6F 46
01 00 00 00
13 00 00 00
03 00 00 00
10 00 00 00
01 00 00 00
31 00 00 00

тут у нас 7 dword-ов (7 по 4 байт)
Другое дело что записаны они не в привычном нам виде. Переделаем. В итоге получим вот что (при разборе number.fnt мы получим другой результат)

1. 0x466F4E74
2. 01
3. 0x13
4. 03
5. 0x10
6. 01
7. 0x31

Далее Nox работает с этими числами.
Сперва он смотрит на первый байт. Число 0x466F4E74 указывает игре что этот файл надо разбирать следующим методом (он так разбирает default.fnt large.fnt и так далее, его нет например в number.fnt)
Не буду сильно внедряться в структуры его данных, так навряд ли вам это как то поможет.
Дальше он берет 6-ой dword умножает его на 8 (4 ворда) и читает это кол-во байт. У нас получится что он прочитает так

1А 00 00
2А 00 00
3А 1F 00
4А FF 00

Далее игра смотри было ли ли что в 6-ом dword-е, и если не было то пропускает первые 2 word-a и считывает 3А-йе и 4А-ое. Вычитает из 4А-ого 3А-е и к полученному результату прибавляет единицу (в данном случае получится 0xE1). Это я так понимаю кол-во символов в файле.

Потом Nox умножает это значение (в нашем случае 0xE1) на 7-ой dword и полученное кол-во байт считывает из файла. Это уже сами буквы, ничего не буду добавлять по ним.
Если кстати подсчитать то 0x1c + 8 + 0xE1*0x31 = 11061 байт, а это и есть размер файла.

Итого (значение всех параметров)

1. Зашифрованное слово, если его там нет то нокс будет думать что это number.fnt
2. Не используется
3. Считывается, но не используется
4. некий шаг в байтах при считывании симбола. В итоге влияет на размер букв (1 маленькие, 2 средние, и 3 большие). Если прибавить к этому значению единицу, то оно должно быть кратным максимальной высоте симболов
5. Максимальная высота симболов
6. Кол-во списков букв. То есть списки букв как в large.fnt 1F - FF, по идее можно было пропустить пару симболов и сделать там 2 списка и записать 00 00 1F 2F 00 00 34 FF. Мы бы пропустили пару симболов между 2F и 34
7. Кол-во байт которое занимает 1 буква.

1А. Отступ по таблице вперед с номера 3А (влияет ессно на графическое отображение)
2А. Не знаю если честно, но лучше не трогайте
3А. Первый номер симбола по таблице
4А. Последний номер по таблице

Таблицу я имею ввиду ACSII


Чуть иная загрузка у number.fnt

Nox грузит первые 0x4c байт
Это весь заголовок, он статичен. Сразу расскажу о том какие типы данных и что делают

1. word Не юзается
2. word Шаг в байтах при считывании
3. word Максимальная высота
4. word кол-во списков
5. word Отступ по таблице вперед
6. word Не знаю если честно, но лучше не трогайте
7. word Первый номер симбола по таблице
8. word Последний номер по таблице
9-36 (word) повторяется что и 5-8. Та же самая функция
37. dword Размер одного симбола

Тут место для списков уже забито с 5 по 36 word.
Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 02/04/2012 16:27:12
Кто уже взялся за написание программы для редактирования шрифтов?
Название: Разбор шрифтов от Garett'a
Отправлено: Evengard от 02/04/2012 16:29:32
Перфект собирался, не?
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 02/04/2012 18:43:23
Именно. Сейчас работаю с воплощением в реальность самой "рисовалки", потом не составит труда прописать нужные функции.
Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 29/06/2012 16:46:02
Как успехи Перфект:?
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 29/06/2012 20:07:43
Я в Греции, епт! Приостановил разработку. Текущая стадия - удобный GUI.
Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 29/06/2012 21:53:07
С гуи начинаешь разработку...
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 30/06/2012 02:30:17
Без критики, пожалуйста. Нечего ещё критиковать.
Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 09/10/2012 07:18:12
У кого используется стандартный large.fnt, прошу поделитесь им со мной.
Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 10/10/2012 10:28:19
Кто-нить разбирал первый-два символа из large.fnt? Если таковые есть - поделитесь информацией.

Перфект, как успехи?

Ничего не обещаю, но параллельно Перфекту начал разработку редактора, не уверен реализую ли.
Название: Разбор шрифтов от Garett'a
Отправлено: 2530 от 10/10/2012 14:59:17
Perfect успешно разрабатывает редактор. Скоро приступит к кодированию информации.
P.S>Я много чего знаю о текущем прогрессе, так как с Basic'ом ему помогаю я :)
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 10/10/2012 18:14:46
Да, разработка идёт своим чередом. Причём, весьма успешно, как отметил Герман.
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 27/10/2012 15:49:00
Если разбирать шрифт таким образом, получается днище невероятное. Хоть и красивое. Или это у меня руки из днища растут?
Название: Разбор шрифтов от Garett'a
Отправлено: TheSim от 27/10/2012 15:59:26
А зачем вообще растровый шрифт руками рисовать?
Возьмите какой-нить http://en.wikipedia.org/wiki/FreeType движок
Затем какой нить из прикольных бесплатных шрифтов растеризовать и вперед!
Название: Разбор шрифтов от Garett'a
Отправлено: Evengard от 27/10/2012 16:27:51
Сим дело говорит. Только я хотел движок непосредственно к Ноксу прикрутить.
Название: Разбор шрифтов от Garett'a
Отправлено: Dio от 27/10/2012 17:42:20
объясните убогому, что это?
Мб проще тогда просто в ноксе сделать поддержку шрифтов? (а мб и совсем не проще)
Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 27/10/2012 18:01:57
Если разбирать шрифт таким образом, получается днище невероятное. Хоть и красивое. Или это у меня руки из днища растут?
В каком смысле днище? Криво получается? Расскажи, я думал ты к этому времени уже закончил писать. Просто я пока не разрабатываю, другие дела есть, но потом допишу обязательно. Должен.
Название: Разбор шрифтов от Garett'a
Отправлено: Evengard от 27/10/2012 21:56:34
объясните убогому, что это?
Мб проще тогда просто в ноксе сделать поддержку шрифтов? (а мб и совсем не проще)

О том я и говорю
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 28/10/2012 00:29:11
Странным образом всё съезжает, причём отображается именно выбраный символ. То есть, символ, допустим "а", отображается одной частью сверху, другой - снизу. С индексом символа смещение происходит "всё выше", пока один из символов не отобразится "на месте". Скрины приложу, как смогу.

К слову о движке... Рисовалка работает, сохранение изменений есть, всё достаточно удобно (почти как в том же mspaint.exe). После проделанной работы я не вижу смысла всё переносить на "полуфабрикат".
Название: Разбор шрифтов от Garett'a
Отправлено: Dio от 28/10/2012 10:57:38
Хз, вероятно ты просто где то ошибся. UniMod-ом займусь на каникулах (времени нет, теперь по честному).
Там уж посмотрю как рисуются шрифты в Nox-e и насколько реально сделать такую поддержку. Хотя если не надо будет переводить вектор в растр, то не думаю что очень сложно. Просто сделать такую фишку, что мы будем брать шрифт из этой штуки, трансформировать его в ноксформат и все.
Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 20/11/2012 01:30:37
Пока так. Может кто-то что-то предложит по визуализации или функционалу.

Кроме редактирования добавил функции импорта/экспорта символа. Единственное условие - размер символов должен совпадать.

Вообщем, coming soon...
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 31/12/2012 00:45:57
Проект был приостановлен, но вновь ожил. Скрин текущей версии моего редактора шрифтов прилагаю.

Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 28/07/2013 08:15:50
Цитировать
6. Кол-во списков букв. То есть списки букв как в large.fnt 1F - FF, по идее можно было пропустить пару симболов и сделать там 2 списка и записать 00 00 1F 2F 00 00 34 FF. Мы бы пропустили пару симболов между 2F и 34
Сколько списков символов может быть?
Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 30/07/2013 09:23:46
Скажите, кто может знать?
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 30/07/2013 09:42:38
По идее, 00-FF, это логично.
Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 31/07/2013 03:50:02
По идее, 00-FF, это логично.
Но ведь, количество списков будет n+1, n - кол-во пропускаемых символов...
Название: Разбор шрифтов от Garett'a
Отправлено: Dio от 02/08/2013 21:43:45
255 списков максимум. 1 байт говорит, сколько списков. Нисколько их быть не может => 256 - 1 = 255. Или не понял вопроса.
Название: Разбор шрифтов от Garett'a
Отправлено: Perfect от 03/08/2013 21:33:04
А да, можно ли разбивать на списки, не пропуская символы?
Название: Разбор шрифтов от Garett'a
Отправлено: Dio от 03/08/2013 21:38:52
да, вероятно, можно даже наслаивать списки друг на друга, скорее всего верхний список и перезапишет символы.
Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 11/08/2013 08:32:12
Что хранится в значении по адресу 0x24(красным выделено)? Файл с 2-мя списками.
Название: Разбор шрифтов от Garett'a
Отправлено: Garett от 12/08/2013 18:43:03
...
1А. Отступ по таблице вперед с номера 3А (влияет ессно на графическое отображение)
2А. Не знаю если честно, но лучше не трогайте
3А. Первый номер симбола по таблице
4А. Последний номер по таблице
...
Название: Разбор шрифтов от Garett'a
Отправлено: Lаrboss от 13/08/2013 07:15:47
Хотел, правда, спросить не что хранится, а как он вычисляется. Но да ладно, уже посчитал.