Death or Glory/DAT: различия между версиями
(Уточнение по нулевым байтам и грамматика.) |
(Добавлено описание файла изображений предметов амуниции игры "ITM.DAT".) |
||
| Строка 179: | Строка 179: | ||
| 40 | | 40 | ||
| Назначение байтов пока не разобрано. | | Назначение байтов пока не разобрано. | ||
|- | |||
|} | |||
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления. | |||
==== Файл "ITM.DAT" ==== | |||
Файл содержит изображения предметов амуниции. | |||
Набор используемых цветов (палитра) предположительно задаётся файлом "MENUE.DAT" и полностью не определён. | |||
Изображение каждого предмета всегда начинается с набора байтов "FF 00 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40" (18 байтов) и укладывается в 257 байтов включительно. Размер изображения 16*15 точек, без правой нижней точки. Всего 239 точек, каждую из которых задаёт один байт. | |||
{| class="wikitable" | |||
! Смещение | |||
! Длина | |||
! Комментарий | |||
|- | |||
| 0x0000 | |||
| 18 | |||
| Значение "FF 00 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40". | |||
|- | |||
| 0x0012 | |||
| 239 | |||
| Байты, определяющие точки изображения первого предмета и их цвета в соответствии с палитрой. | |||
|- | |||
| 0x0101 | |||
| 18 | |||
| Значение "FF 00 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40". | |||
|- | |||
| 0x0113 | |||
| 239 | |||
| Байты, определяющие точки изображения второго предмета и их цвета в соответствии с палитрой. | |||
|- | |||
| 0x0202 | |||
| ... | |||
| Далее последовательность повторяется. | |||
|- | |- | ||
|} | |} | ||
Версия от 16:16, 14 декабря 2025
Директория "DATEN"
Файлы "EN*.DAT" и "START.DAT"
Файлы содержат описания игровых персонажей:
- EN_L*.DAT: Лидеры игровых уровней - противники и союзники, находящиеся сразу и появляющиеся при выполнении каких-то условий (по восемь на каждый). Номер файла соответствует порядковому номеру уровня в игре.
- EN16_*.DAT: Появляющиеся лидеры шестнадцатого (последнего) уровня основной кампании (по три на каждый). Номер файла соответствует порядковому номеру призываемой волны противников (происходит после усмирения всех предыдущих призванных).
- START.DAT: Шесть основных управляемых лидеров (Raven, Cerano, Armitas, Berettar, Nyana и Xhor) и два вспомогательных лидера шестнадцатого (последнего) уровня основной кампании.
Каждый файл грубо делится на две части:
- описание персонажа лидера;
- описание отряда лидера.
Примечания:
- В файлах "EN_L*.DAT" предусмотрено описание до восьми персонажей. Союзников и противников может быть меньше и при этом на месте описаний недостающих лидеров часто попадает описания лидеров из файла предыдущего уровня, хотя оно и не используется.
- Описание отрядов пока не разобрано.
Описание каждого лидера всегда начинается с фразы "LEAD" (4 байта) и укладывается в 242 байта включительно.
Все персонажи описываются последовательно без каких-либо разрывов в значениях байтов.
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 4 | Значение LEAD (4C 45 41 44h). |
| 0x0004 | 2 | Назначение байтов пока не разобрано. |
| 0x0006 | 2 | Текущее значение LE (ОЖ, очки жизни). |
| 0x0008 | 2 | 01 00 - ход сделан, 00 00 - ход не сделан. |
| 0x000A | 2 | Назначение байтов пока не разобрано. |
| 0x000C | 2 | Идентификатор лидера на общей карте уровня (09 00 - Raven, 0A - Cerano, 14 - Armitas...). |
| 0x000E | 8 | Назначение байтов пока не разобрано (скорее всего не используется). |
| 0x0016 | 6 | Назначение байтов пока не разобрано. |
| 0x001C | 16 | Наименование бойца отряда лидера. |
| 0x002C | 2 | Назначение байтов пока не разобрано. |
| 0x002E | 2 | AP бойца (АТ, нападение). |
| 0x0030 | 2 | VP бойца (ЗЩ, защита). |
| 0x0032 | 2 | BW бойца (ОД, очки движения, скорость). |
| 0x0034 | 8 | Назначение байтов пока не разобрано (скорее всего не используется). |
| 0x003C | 2 | AN лидера (ЛИ, краткое наименование лидера). |
| 0x003E | 2 | Назначение байтов пока не разобрано. |
| 0x0040 | 2 | Номер класса лидера (союзные начинаются с "64 00" (Raven, Prinz), как минимум картинка на карте). |
| 0x0042 | 20 | Наименование класса лидера. |
| 0x0056 | 2 | Принцип перемещения (0A 00 - левитация, 01 00 - кавалерия (не стены, не вода), 00 00 - пешеход). |
| 0x0058 | 14 | Имя лидера. |
| 0x0066 | 2 | AP лидера (АТ, нападение). |
| 0x0068 | 2 | VP лидера (ЗЩ, защита).. |
| 0x006A | 2 | BW лидера (ОД, очки движения, скорость). |
| 0x006C | 8 | Назначение байтов пока не разобрано. |
| 0x0074 | 1 | Номер первой амуниции (только наименование, номер по списку, смещение 0x700EA в файле "DOG.EXE", начиная с 0). |
| 0x0075 | 1 | Номер второй амуниции. |
| 0x0076 | 2 | Назначение байтов пока не разобрано. |
| 0x0078 | 2 | Прибавление к AP (АТ, нападение) для лидера, значение "+N". |
| 0x007A | 2 | Прибавление к VP (ЗЩ, защита) для лидера, значение "+N". |
| 0x007C | 2 | Текущее значение MP лидера (ОМ, очки маны). |
| 0x007E | 2 | Полная, максимальное значение MP лидера (ОМ, очки маны). |
| 0x0080 | 4 | Заклинания, битовая маска по два бита, определяющие уровень (?, ?, Heilen (Лечение), ?, ?, ?, ?, ?, ?, ?, ?, ?, Rakete (Снаряд), ?, ?, ?). |
| 0x0084 | 38 | Назначение байтов пока не разобрано. |
| 0x00AA | 2 | Значение номера файла "INFO*.DAT", используемый для вывода информации о лидере. |
| 0x00AC | 2 | Значение номера файла "DEATH*.DAT", используемый для вывода диалога умирающего лидера. |
| 0x00AE | 26 | Назначение байтов пока не разобрано. |
| 0x00C8 | 2 | EP лидера (ОП, текущий набранный опыт). |
| 0x00CA | 40 | Назначение байтов пока не разобрано. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Файл "ITM.DAT"
Файл содержит изображения предметов амуниции.
Набор используемых цветов (палитра) предположительно задаётся файлом "MENUE.DAT" и полностью не определён.
Изображение каждого предмета всегда начинается с набора байтов "FF 00 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40" (18 байтов) и укладывается в 257 байтов включительно. Размер изображения 16*15 точек, без правой нижней точки. Всего 239 точек, каждую из которых задаёт один байт.
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 18 | Значение "FF 00 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40". |
| 0x0012 | 239 | Байты, определяющие точки изображения первого предмета и их цвета в соответствии с палитрой. |
| 0x0101 | 18 | Значение "FF 00 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40". |
| 0x0113 | 239 | Байты, определяющие точки изображения второго предмета и их цвета в соответствии с палитрой. |
| 0x0202 | ... | Далее последовательность повторяется. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Директория "TEXT"
Файлы "DEATH*.DAT"
Определяют тексты предсмертных фраз лидеров.
Номер в наименовании файлов привязан к идентификаторам персонажей, определенных в файлах "START.DAT" и "EN*", размещенных в директории "DATEN".
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 2 | Количество строк в тексте. |
| 0x0002 | 39 | Содержимое первой строки (завершается нулевым значением байта). |
| 0x0029 | 1 | Нулевое значение байта (00h). |
| 0x002A | 39 | Содержимое второй строки (завершается нулевым значением байта). |
| 0x0051 | 1 | Нулевое значение байта (00h). |
| 0x0052 | ... | Далее последовательность повторяется. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Файлы "INFO*.DAT"
Определяют тексты описаний лидеров.
Номер в наименовании файлов привязан к идентификаторам персонажей, определенных в файлах "START.DAT" и "EN*", размещенных в директории "DATEN".
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 2 | Количество строк в тексте. |
| 0x0002 | 39 | Содержимое первой строки (завершается нулевым значением байта). |
| 0x0029 | 1 | Нулевое значение байта (00h). |
| 0x002A | 39 | Содержимое второй строки (завершается нулевым значением байта). |
| 0x0051 | 1 | Нулевое значение байта (00h). |
| 0x0052 | ... | Далее последовательность повторяется. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Файлы "PROLOG*.DAT"
Определяют тексты подробных описаний глав (уровней) игры.
Номер в наименовании файлов на единицу меньше номера главы игры, к которому привязан пролог. Такое допущение вероятно связано с отображением содержимого (описания следующего уровня) сразу поле победы на текущем уровне.
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 2 | Количество строк в тексте. |
| 0x0002 | 39 | Содержимое первой строки (завершается нулевым значением байта). |
| 0x0029 | 1 | Нулевое значение байта (00h). |
| 0x002A | 39 | Содержимое второй строки (завершается нулевым значением байта). |
| 0x0051 | 1 | Нулевое значение байта (00h). |
| 0x0052 | ... | Далее последовательность повторяется. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
В игре строки отображаются с центрирование по середине экрана и, если весь текст не умещается по вертикале на одном экране, отображение выполняется на нескольких последовательных.
Файлы "STSEQ*.DAT"
Определяют игровые диалоги, включая тексты фразы и ссылки на портреты участников.
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 2 | Количество фраз в диалоге. |
| Первая фраза. | ||
| 0x0002 | 2 | Идентификатор лидера, определенный в файлах "START.DAT" и "EN*". |
| 0x0004 | 10 | Назначение байтов пока не разобрано (выглядят неиспользуемыми). |
| 0x000E | 2 | Количество строк в тексте фразы (далее N). |
| 0x0010 | 39 | Содержимое первой строки текста фразы (завершается нулевым значением байта). |
| 0x0037 | 1 | Нулевое значение байта (00h). |
| 0x**** | ... | Последовательность строк фразы повторяется N раз. |
| Вторая фраза. | ||
| 0x0002 + 14 + 40*N | 2 | Идентификатор лидера, определенный в файлах "START.DAT" и "EN*". |
| 0x0002 + 14 + 40*N + 2 | 10 | Назначение байтов пока не разобрано (выглядят неиспользуемыми). |
| 0x0002 + 14 + 40*N + 12 | 2 | Количество строк в тексте фразы (далее M). |
| 0x0002 + 14 + 40*N + 14 | 39 | Содержимое первой строки текста фразы (завершается нулевым значением байта). |
| 0x0002 + 14 + 40*N + 53 | 1 | Нулевое значение байта (00h). |
| 0x0002 + 14 + 40*N + 54 | ... | Далее последовательность повторяется. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Идентификаторы лидеров влияют на отображаемый в диалоге портрет и на перемещение курсора на соответствующего персонажа перед отображением его фразы. При отсутствии последнего курсор будет перемещен куда-то, а портрет отсутствовать.