Растровые изображения · 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 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Смещение Тип данных Наименование Объяснение
0x0000 uint(32) Выравненная ширина

Указывает ширину строк пиксельных данных в байтах - так как они выровнены по границам в 4 байта.

Таким образом, быстро можно перейти к определенной строке изображения.

Почему это значение хранится отдельно, хотя его можно было бы вычислить, неясно.
Возможно, это оптимизация для кода рендеринга.

0x0004 uint(32) Смещение

Указывает смещение первой строки в битовой карте

0x0008 uint(32) Высота

Указывает высоту изображения в пикселях

0x000c uint(32) Ширина

Указывает ширину изображения в пикселях

0x0010 uint(16) Тип

Указывает тип изображения. Здесь, похоже, речь идет о битовой маске:

  • 0x04 установлен, если это графика с 1 битом на пиксель.
  • 0x40 установлен, если это графика, которая должна реализовывать оконный интерфейс.
0x0012 uint(16) Палитра

Определяет, какая палитра из файла PRT должна быть использована

Эта структура данных файла PRT указывает, как устроены битмапы, используемые для спрайтов. Эти битмапы служат отдельным компонентом, из которого собираются несколько кадров анимации спрайта.

Конкретные данные изображения скрываются в op2_art.BMP в игровом каталоге.
Почему этот файл битмапа имеет (в основном корректный) заголовок RIFF-битмапа, остается неясным. Возможно, Outpost 2 использует системные API для загрузки графики, временно заимствуя этот заголовок и перезаписывая соответствующие изменяющиеся поля.

Данные пикселей находятся в BMP-файле по позиции Offset + uint32-Offset, который можно найти в BMP-файле по адресу 0x000A (RIFF-данные смещения битмапа) и снова соответствуют построчной организации сверху слева направо вниз.

Монохромные графики 1bpp могут быть нарисованы так, что цвет 0 представляет полную прозрачность, а цвет 1 является полупрозрачным черным/серым, так как монохромные графики обычно используются для теней автомобилей и зданий в анимациях.

Таким образом, можно собрать множество графиков.

Защищенный жилой модуль (Плимут)