Плитки · 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 форматом
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 | Містить полярні шапки карти, з світлим камінням як основою |
Рекомендується для точної реалізації не рендерити тайли заздалегідь для кешування, оскільки дані для циклу день/ніч ще потрібно обробити - і виникне дуже-дуже багато даних.
Тайли - це 8bpp-графіки з індексованою палітрою розміром 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 тайлів зліва і справа (він служить для невидимого спавну одиниць).
Додатково, здається, що цикл день-ніч оновлює лише один стовпець карти за кожен ігровий цикл.
Прискорений цикл день-ніч виглядає наступним чином: