Wiki

Clone wiki

p12simtran / fmt_savex_dat

Формат файла SAVEx.DAT

Файлы содержат сохранённое состояние игры и имеют имена SAVE1.DAT .. SAVE6.DAT. Файлы располагаются в папке с исполняемым файлом.

Все целочисленные данные указаны в формате Little Endian. Все строки в однобайтовой кодировке cp1251 (на деле ANSI). Там где указана строка с длиной - строка хранится как длина (uint32) + строка.

Содержимое файла:

  • номер части в игре (uint32)
  • повтор номера части в игре (uint32)
  • 30 байт - текстовая отметка времени, дополенная нулевыми байтами
  • скриншот (17496 байт, описание ниже)
  • 216 нулевых байт
  • количество объектов, увеличенное на 3 (uint32)
  • записи об объектах и сценах (описание ниже)
  • количество объектов в инвентаре (uint32)
  • список объектов в инвентаре (uint16)
  • название текущей сцены (строка с длиной)
  • положение на экране персонажа 1 (x = uint32, y = uint32)
  • положение на экране персонажа 2 (x = uint32, y = uint32)
  • количество диалоговых опкодов (uint32)
  • записи о диалоговых опкодах (формат хранения аналогичен формату опкодов в DIALOGUE.FIX)
  • номер ресурса присвоенного курсору (uint32)
  • тип курсора (описание ниже, uint32)
  • номер объекта-курсора (описание ниже, uint32)
  • номер ресурса присвоенного персонажу 1 (uint32)
  • номер ресурса присвоенного персонажу 2 (uint32)
  • 32 байта 0xFF

Скриншот

Скриншот имеет размеры 108 на 81 точек. При это на каждую точку отводится 2 байта. Цвет хранится в формате rrrrrggg gggbbbbb. В окне загрузки отображается только 107 из 108 точек по ширине. Крайний правый столбец состоит из черного.

Объекты и сцены

Структура:

  • имя объекта или сцены (строка с длиной)
  • алиас объекта (строка с длиной, NAMES.INI)
  • свойство 1 (int32)
  • статус (uint8)
  • ресурс (int32)
  • Z-параметр (int32)
  • X-смещение (int32)
  • Y-смещение (int32)
  • видимость (int32)
  • интерактивность (int32)
  • анимация (int32)

См. также Свойства объекта.

В файле SCRIPT.DAT не содержится никакого начального состояния. Любые изменения обусловлены применением операций над объектами (опкоды).

Курсор

Для хранения активного курсора используются два поля. Первое поле содержит тип выбранного действия:

  • 0 смотреть (ресурс по умолчанию 5002)
  • 1 идти (ресурс по умолчанию 5003)
  • 2 использовать (ресурс по умолчанию 5004)
  • 3 взять (ресурс по умолчанию 5005)
  • 4 говорить (ресурс по умолчанию 5006)
  • 5 персонаж 2 (Чапай, ресурс по умолчанию 5007)
  • 6 объект из инвентаря

Если активирован режим объект из инвентаря - то номер объекта хранится во втором поле, в ином случае поле содержит -1 (0xFFFFFFFF).

Updated