Death or Glory/DAT
Директория "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 | Назначение байтов пока не разобрано. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Директория "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 | ... | Далее последовательность повторяется. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Идентификаторы лидеров влияют на отображаемый в диалоге портрет и на перемещение курсора на соответствующего персонажа перед отображением его фразы. При отсутствии последнего курсор будет перемещен куда-то, а портрет отсутствовать.