Płytki · bei.pm
Opisywane na tej stronie formaty plików opierają się na analizie technicznej własności intelektualnej Dynamix, Inc. oraz Sierra Entertainment.
Własność intelektualna jest obecnie częścią majątku Activision Publishing, Inc. / Activision Blizzard, Inc. i jest aktualnie w posiadaniu Microsoft Corp..
Informacje zostały zebrane poprzez inżynierię odwrotną oraz analizę danych w celach archiwizacji i interoperacyjności z danymi historycznymi.
Nie wykorzystano żadnych zastrzeżonych ani poufnych specyfikacji.
Gra jest obecnie dostępna do zakupu jako pobranie na stronie gog.com.
Adres | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znak | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 42 | 4d | 50 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | B | M | P | . | . | . | . | . | . | . | . | . | . | . | . |
Przesunięcie | Typ danych | Nazwa | Wyjaśnienie |
---|---|---|---|
0x0000 | uint(32) | Bajty Magiczne | |
0x0004 | uint(24) | Długość bloku | |
0x0007 | uint(8) | Flagi |
Tiles to specyficzny format grafiki bitmapowej dla Outpost-2. Obejmuje 13 zestawów tiles, zwanych "studniami" (well0000.bmp
do well0012.bmp
), które znajdują się w woluminie maps.vol.
Zestawy tiles / studnie zawierają następujące elementy:
Nazwa pliku | Treść |
---|---|
well0000.bmp | Grafika o wymiarach 32x32px w kolorze niebieskim - idealna do testowania, czy własny loader obrazów działa |
well0001.bmp | Zawiera jasne skały, łańcuchy górskie na jasnych skałach oraz niezliczone warianty kraterów uderzeniowych w jasne skały |
well0002.bmp | Zawiera 'Doodady' z jasnych skał - elementy, które mogą być umieszczane na jasnych skałach dla urozmaicenia (lub celowo jako struktura, jak np. mury), w tym roślinność |
well0003.bmp | Zawiera strukturę przypominającą skorupę na jasnych skałach |
well0004.bmp | Zawiera ciemne skały, łańcuchy górskie na ciemnych skałach oraz niezliczone warianty kraterów uderzeniowych w ciemne skały |
well0005.bmp | Zawiera 'Doodady' z ciemnych skał - elementy, które mogą być umieszczane na ciemnych skałach dla urozmaicenia (lub celowo jako struktura, jak np. mury) |
well0006.bmp | Zawiera strukturę przypominającą skorupę na ciemnych skałach oraz przejścia między jasnymi a ciemnymi skałami |
well0007.bmp | Zawiera lawę, w tym po 4-5 klatek animacji dla każdej z nich |
well0008.bmp | Zawiera piasek oraz niezliczone warianty kraterów uderzeniowych w piasku |
well0009.bmp | Zawiera 'Doodady' z piasku - elementy, które mogą być umieszczane na piasku dla urozmaicenia (lub celowo jako struktura, jak np. mury) |
well0010.bmp | Zawiera 48 przejść z piasku do jasnych i ciemnych skał |
well0011.bmp | Zawiera pokrywy polarne mapy, z ciemnymi skałami jako podłożem |
well0012.bmp | Zawiera pokrywy polarne mapy, z jasnymi skałami jako podłożem |
Jest to zalecane dla dokładnej realizacji, aby nie renderować kafli z wyprzedzeniem w celu ich buforowania, ponieważ dane dotyczące cyklu dnia/nocy muszą być jeszcze przetworzone - a danych byłoby naprawdę bardzo dużo.
Kafle to grafiki 8bpp z paletą indeksowaną o rozdzielczości 32x32 pikseli, które są ułożone w stos. W tak powstałym zestawie kafli może być jednak znacznie więcej
Główny kontener składa się z 2 sekcji: head
i data
.
Nagłówek Płytek
Adres | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znak | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Przesunięcie | Typ danych | Nazwa | Wyjaśnienie |
---|---|---|---|
0x0000 | uint(32) | Bajty Magiczne | |
0x0004 | uint(24) | Długość bloku | |
0x0007 | uint(8) | Flagi | |
0x0008 | uint(32) | Wersja / Flagi? | Może to być oznaczenie wersji formatu pliku; we wszystkich plikach, które posiadam, znajdowała się wartość |
0x000c | uint(32) | Szerokość (Rozdzielczość pozioma) | Określa, jak szeroki jest plik graficzny (w pikselach). W przypadku wszystkich studni w Outpost 2 wartość |
0x0010 | uint(32) | Wysokość (Rozdzielczość pionowa) | Określa wysokość pliku graficznego (w pikselach). Wszystkie studnie w Outpost 2 powinny mieć tu wartość |
0x0014 | uint(32) | Głębokość kolorów? | Znaczenie tej wartości jest nieznane. Ponieważ we wszystkich sprawdzonych plikach zawiera wartość |
0x0018 | uint(32) | Głębokość koloru 2? | Znaczenie tej wartości jest nieznane. Może to być głębokość koloru 'docelowego'. |
Zgodnie z tymi danymi, następnie dostępny będzie plik palety w standardowym formacie RIFF. Dokładna specyfikacja znajduje się - ponieważ palety pojawiają się także w innych miejscach - pod Palety.
Dane Płytek
Adres | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | znak | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
Przesunięcie | Typ danych | Nazwa | Wyjaśnienie |
---|---|---|---|
0x0000 | uint(32) | Bajty Magiczne | |
0x0004 | uint(24) | Długość bloku | |
0x0007 | uint(8) | Flagi |
W końcu następują surowe dane pikseli, od lewego górnego rogu, wierszami do prawego dolnego rogu.
Wartość danych w grafikach, które zazwyczaj występują jako bitmapy 8bpp, odpowiada indeksowi koloru w palecie kolorów.
Silnik gry prawdopodobnie rysuje kafelki *na żądanie*.
Wydaje się to być związane z cyklem dnia i nocy, który zna 32 stopnie poszczególnych kafelków. Wygląda na to, że od wartości jasności odejmowane jest 'trochę'. Dokładne wartości nie zostały jeszcze ustalone, pracuję na podstawie obliczeń
v *= (daylight / 48) + 0.25;
za pomocą danych HSV pikseli, gdzie daylight to wartość od 0 do 31, a v to wartość między 0 a 1. Należy również wziąć pod uwagę, że na mapie istnieje dodatkowo margines 16 kafelków po lewej i prawej stronie (służy to niewidzialnemu pojawianiu się jednostek).
Dodatkowo wydaje się, że cykl dnia i nocy aktualizuje tylko jedną kolumnę mapy w każdym cyklu gry.
Przyspieszony cykl dnia i nocy wygląda zatem następująco: