Пліткі · bei.pm

Апублікавана 19.11.2015·Аднавіна на 13.02.2025·Беларуская мова
Гэты тэкст быў аўтаматычна перакладзены з дапамогай OpenAI GPT-4o Mini.

Файлы фармата, апісаныя на гэтай старонцы, заснаваны на тэхнічным аналізе інтэлектуальнай уласнасці Dynamix, Inc. і Sierra Entertainment.
Інтэлектуальная ўласнасць сёння з'яўляецца часткай актываў Activision Publishing, Inc. / Activision Blizzard, Inc. і ў дадзены момант належыць Microsoft Corp..

Інфармацыя была сабрана праз Reverse Engineering і даныя аналізу з мэтай архівацыі і ўзаемадзеяння з гістарычнымі данымі.
Не былі выкарыстаны ніякія ўласніцкія або канфідэнцыйныя спецыфікацыі.

Гульню можна набыць у якасці загрузкі на 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 фармат графікі Bitmap. Яны распаўсюджваюцца на 13 тайлсетаў, называемых "крыніцамі" (well0000.bmp да well0012.bmp), якія знаходзяцца ў аб'ёме maps.vol.

Тайлсеты / Крыніцы ўключаюць у сябе наступнае:

Імя файла Змястоўнасць
well0000.bmp Графіка памерам 32x32px, сіняга колеру - ідэальна падыходзіць для тэсту работы вашага загружальніка малюнкаў
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) Версія / Сцягі?

Тут можа існаваць указанне версіі фармату файла; у ўсіх файлах, якія ў мяне ёсць, стаяў значэнне 0x02

0x000c uint(32) Шырыня (Гарызантальная разрозненаць)

Указвае, наколькі шырокі файл выявы (у пікселях).

Для ўсіх ям Outpost 2 тут варта чакаць значэнне 0x20 або 32.

0x0010 uint(32) Вышыня (Вертыкальная дазвол)

Указвае, наколькі высокая графічная файл (у пікселях).

У ўсіх крыніцах з Outpost 2 тут варта чакаць значэнне 0x20 або 32.

0x0014 uint(32) Глыбіня колеру?

Значэнне гэтага значэння невядома.

Паколькі ён у ўсіх правераных файлах утрымлівае значэнне 8, гэта можа быць паказчыкам глыбіні колеру.

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 тайлаў (які служыць для незразумелага спавнавання юнітаў).

Дадаткова, здаецца, што цыкл дня і ночы за адзін гульнявы цыкл абнаўляе толькі адну калонку мапы.
Паскораны цыкл дня і ночы выглядае так:

Візуалізацыя цыкла дня і ночы