Death or Glory/RLC
Общее
RLC-файл представляет собой точечное графическое изображение, использующее заданный набор цветов, определяемый VGA-палитрой. В игре одновременно всегда использует только один такой файл, который определяет цвета других графических элементов, отображаемых на экране, в том числе цвета используемых знаков из файла шрифта.
Вначале файла хранится палитра цветов и далее точки изображения, разбитого на отдельные вертикальные блоки.
Содержимое файлов
| Смещение | Длина | Комментарий |
|---|---|---|
| 0x0000 | 720 | Каждые три байта определяют один цвет в соответствии с правилами VGA-палитры (всего доступно 256 цветов). |
| 0x0300 | 4 | Назначение байтов пока не разобрано. |
| 0x0304 | 2 | Горизонталь изображения, количество точек. |
| 0x0306 | 2 | Вертикаль изображения, количество точек. |
| 0x0308 | 2 | Назначение байтов пока не разобрано. |
| 0x030A | 2 | Горизонталь (ширина) блока изображения, количество точек. |
| 0x030C | 2 | Количество байтов блока изображения (далее N). |
| 0x030E | N | Байты, определяющие точки блока изображения и их цвета в соответствии с палитрой. |
| 0x030E + N | 2 | Горизонталь (ширина) блока изображения, количество точек. |
| 0x030E + N + 2 | 2 | Количество байтов блока изображения (далее M). |
| 0x030E + N + 4 | M | Байты, определяющие точки блока изображения и их цвета в соответствии с палитрой. |
| 0x030E + N + 4 + M | ... | Далее последовательность повторяется. |
, смещение и длина считаются в байтах (шт.). Смещение - шестнадцатеричная система исчисления, длина - десятичная система исчисления.
Последовательность отображения значений байтов, определяющих точки блоков изображения, - горизонтально слева направо и при достижении ширины блока выполняется сдвиг на одну точку вниз и переход к левому краю блока. Каждый блок начинается с верхнего ряда со сдвигом от левого края изображения на сумму горизонталей (ширин) ранее заданных блоков.
Если левый бит байта точки определен в значении "0", то байт задает цвет одной точки (в соответствии с палитрой). Если левый бит содержит "1" - байт задает количество одинаковых точек, идущих друг за другом (без левого бита получается от 1 до 127 точек), цвет которых определен значением следующего байта.
Ограничения формата пока разобрать не удалось.