Палитры · bei.pm

Опубликовано 19.11.2015·Обновлено 13.02.2025·Русский
Этот текст был автоматизированно переведен с помощью OpenAI GPT-4o Mini.

Форматы файлов, описанные на этой странице, основаны на техническом анализе интеллектуальной собственности Dynamix, Inc. и Sierra Entertainment.
Интеллектуальная собственность сегодня является частью активов Activision Publishing, Inc. / Activision Blizzard, Inc. и в настоящее время находится в собственности Microsoft Corp..

Информация была собрана с помощью обратного проектирования и анализа данных с целью архивирования и обеспечения совместимости с историческими данными.
Не использовались никакие собственнические или конфиденциальные спецификации.

Игра в настоящее время доступна для покупки в виде загрузки на gog.com.

Адр x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF симв.
0x0000 50 50 41 4c -- -- -- -- -- -- -- -- -- -- -- -- P P A L . . . . . . . . . . . .
Смещение Тип данных Наименование Объяснение
0x0000 uint(32) Магические байты
0x0004 uint(24) Длина палет

В отличие от обычного блочного формата, указывает количество палет, найденных в этом файле, а не длину блока в байтах.

0x0007 uint(8) Флаги

Вероятно, как обычно, флаги.

Однако мне ничего не известно о флагах; поскольку все известные мне значения соответствуют 0x00, вполне возможно, что количество палитр просто является uint(32).

Информация о паллетах очень проста для восприятия.
Она состоит из заголовка и сегмента данных.

Заголовок палет

Адр x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF симв.
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
Смещение Тип данных Наименование Объяснение
0x0000 uint(32) Магические байты
0x0004 uint(24) Длина палет

В отличие от обычного блочного формата, указывает количество палет, найденных в этом файле, а не длину блока в байтах.

0x0007 uint(8) Флаги

Вероятно, как обычно, флаги.

Однако мне ничего не известно о флагах; поскольку все известные мне значения соответствуют 0x00, вполне возможно, что количество палитр просто является uint(32).

0x0008 uint(32) Версия формата палет?

Вероятно, определяет, какой версии формата палет соответствует палитра.

Все палитры Outpost2, как кажется, имеют версию 0x01.

Данные по палетам

Адр x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF симв.
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Смещение Тип данных Наименование Объяснение
0x0000 uint(32) Магические байты
0x0004 uint(24) Длина блока
0x0007 uint(8) Флаги

Раздел данных включает в себя отдельные записи палет. Количество записей палет определяется как длина блока / 4.

Каждая из записей имеет следующий простой формат;

Адр x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF симв.
0x0000 -- -- -- 04 -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Смещение Тип данных Наименование Объяснение
0x0000 uint(8) Красная компонента

Указывает на долю красного цвета

0x0001 uint(8) Зеленый компонент

Указывает долю зеленого цвета

0x0002 uint(8) Синий компонент

Указывает на долю синего цвета

0x0003 uint(8) Неизвестно - Флаги?

Неясно, что означает это значение, так как оно, по всей видимости, в основном 0x04.

Что касается палитр, то следует отметить, что для палитр, используемых в анимациях, действуют следующие правила:

  • Первый цвет ВСЕГДА прозрачный, независимо от указанного значения.
  • Записи палитры с 1 по 24 считаются цветами игрока в палитрах с 1 по 8.
    Откуда берутся цвета, отличные от цвета игрока 1, мне неясно.
    Я предполагаю, что остальные цвета закодированы.

Справочная палитра