Палітри · 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, мені не зовсім зрозуміло.
    Я припускаю, що решта кольорів закодовані.

Посилання на палітри