Плитки · bei.pm
Форматы файлов, описанные на этой странице, основаны на техническом анализе интеллектуальной собственности 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 | 42 | 4d | 50 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | B | M | P | . | . | . | . | . | . | . | . | . | . | . | . |
Смещение | Тип данных | Наименование | Объяснение |
---|---|---|---|
0x0000 | uint(32) | Магические байты | |
0x0004 | uint(24) | Длина блока | |
0x0007 | uint(8) | Флаги |
Тайлы представляют собой специфический для Outpost-2
формат графики в битмапе. Они охватывают 13 тайлсетов,
называемых "колодцами" (well0000.bmp
до well0012.bmp
),
которые находятся внутри объема maps.vol.
При этом тайлсеты / колодцы содержат следующее:
Имя файла | Содержимое |
---|---|
well0000.bmp | Графика размером 32x32 пикселя, синего цвета - идеально подходит для тестирования, работает ли ваш загрузчик изображений |
well0001.bmp | Содержит светлые камни, горные хребты на светлом камне и бесчисленные варианты кратеров удара на светлом камне |
well0002.bmp | Содержит элементы 'Doodads' светлого камня - то есть элементы, которые могут быть размещены для разбавления (или специально в качестве структуры, например, стен) на светлом камне, включая растительность |
well0003.bmp | Содержит коркообразную структуру на светлом камне |
well0004.bmp | Содержит темные камни, горные хребты на темном камне и бесчисленные варианты кратеров удара на темном камне |
well0005.bmp | Содержит элементы 'Doodads' темного камня - то есть элементы, которые могут быть размещены для разбавления (или специально в качестве структуры, например, стен) на темном камне |
well0006.bmp | Содержит коркообразную структуру на темном камне, а также переходы между светлым и темным камнем |
well0007.bmp | Содержит лаву, включая по 4-5 кадров анимации |
well0008.bmp | Содержит песок и бесчисленные варианты кратеров удара на песке |
well0009.bmp | Содержит элементы 'Doodads' песка - то есть элементы, которые могут быть размещены для разбавления (или специально в качестве структуры, например, стен) на песке |
well0010.bmp | Содержит по 48 переходов от песка к светлому и темному камню |
well0011.bmp | Содержит полярные шапки карты, с темным камнем в качестве фона |
well0012.bmp | Содержит полярные шапки карты, со светлым камнем в качестве фона |
Рекомендуется для точного выполнения не рендерить тайлы заранее для кэширования, так как данные для цикла день/ночь еще должны быть обработаны - и возникло бы слишком много данных.
Тайлы представляют собой графики с глубиной цвета 8 бит на пиксель с индексированной палитрой размером 32x32 пикселя, которые расположены друг под другом. Однако в таком созданном тайлсете может быть значительно больше
Главный контейнер состоит из 2 секций: head
и data
.
Заголовок плитки
Адр | 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 | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Смещение | Тип данных | Наименование | Объяснение |
---|---|---|---|
0x0000 | uint(32) | Магические байты | |
0x0004 | uint(24) | Длина блока | |
0x0007 | uint(8) | Флаги | |
0x0008 | uint(32) | Версия / Флаги? | Здесь может быть указана версия формата файла; во всех доступных мне файлах значение было |
0x000c | uint(32) | Ширина (горизонтальное разрешение) | Указывает, насколько широк файл изображения (в пикселях). Для всех скважин из Outpost 2 здесь следует ожидать значение |
0x0010 | uint(32) | Высота (Вертикальное разрешение) | Указывает, насколько высок файл изображения (в пикселях). Для всех колодцев в Outpost 2 здесь ожидается значение |
0x0014 | uint(32) | Глубина цвета? | Значение этого параметра неизвестно. Поскольку во всех проверенных файлах содержится значение |
0x0018 | uint(32) | Глубина цвета 2? | Значение этого параметра неизвестно. Возможно, это 'целевое' цветовое разрешение. |
После этих данных будет представлена палитра в стандартизированном формате RIFF. Точное описание можно найти - так как палитры встречаются и в других местах - по адресу Палитры.
Данные плитки
Адр | 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) | Флаги |
В конце концов, следуют чистые пиксельные данные, начиная с верхнего левого угла и движущиеся по строкам к нижнему правому углу.
Значение данных для графиков, которые обычно представлены в формате 8bpp-битмап, соответствует индексу цвета в цветовой палитре.
Игровой движок, вероятно, рисует тайлы по запросу.
Это, среди прочего, связано с циклом дня и ночи, который имеет 32 градации отдельных тайлов. При этом, судя по всему, от значения яркости отнимается 'немного'. Точные значения пока не удалось определить, я работаю на основе расчётов
v *= (daylight / 48) + 0.25;
с данными HSV пикселей, где daylight — это значение от 0 до 31, а v — значение от 0 до 1. Кроме того, следует учитывать, что на карте по бокам есть граница из 16 тайлов (она служит для невидимого появления юнитов).
Кроме того, цикл дня и ночи, похоже, обновляет только одну колонку карты за игровой цикл.
Ускоренный цикл дня и ночи выглядит следующим образом: