Fliser · bei.pm
De filformater, der er beskrevet på denne side, er baseret på den tekniske analyse af intellektuel ejendom fra Dynamix, Inc. og Sierra Entertainment.
Den intellektuelle ejendom er i dag en del af Activision Publishing, Inc. / Activision Blizzard, Inc. og ejes i øjeblikket af Microsoft Corp..
Oplysningerne er indsamlet gennem Reverse Engineering og dataanalyse med henblik på arkivering og interoperabilitet med historiske data.
Der er ikke anvendt nogen proprietære eller fortrolige specifikationer.
Spillet kan i øjeblikket købes som download på gog.com.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | tegn | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 42 | 4d | 50 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | B | M | P | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datatype | Betegnelse | Forklaring |
---|---|---|---|
0x0000 | uint(32) | Magiske bytes | |
0x0004 | uint(24) | Block-længde | |
0x0007 | uint(8) | Flagger |
Tiles er et Outpost-2-specifikt
Bitmap-grafikformat. De strækker sig over 13 tilesets,
"wells" kaldet (well0000.bmp
til well0012.bmp
),
som findes inden for volumen maps.vol.
De indeholder følgende i tilesets / wells:
Filnavn | Indhold |
---|---|
well0000.bmp | En 32x32px stor blå grafik - ideel til at teste, om din egen image-loader fungerer |
well0001.bmp | Indeholder lyst sten, bjergkæder på lyst sten og utallige varianter af nedslagskratre i lyst sten |
well0002.bmp | Indeholder 'Doodads' af lyst sten - elementer, der kan placeres for at bryde op (eller bevidst som struktur, som f.eks. mure) på lyst sten, herunder vegetation |
well0003.bmp | Indeholder en skorpeagtig struktur på lyst sten |
well0004.bmp | Indeholder mørkt sten, bjergkæder på mørkt sten og utallige varianter af nedslagskratre i mørkt sten |
well0005.bmp | Indeholder 'Doodads' af mørkt sten - elementer, der kan placeres for at bryde op (eller bevidst som struktur, som f.eks. mure) på mørkt sten |
well0006.bmp | Indeholder en skorpeagtig struktur på mørkt sten samt overgange mellem lyst og mørkt sten |
well0007.bmp | Indeholder lava inklusiv hver 4-5 frames animation af samme |
well0008.bmp | Indeholder sand og utallige varianter af nedslagskratre i sand |
well0009.bmp | Indeholder 'Doodads' af sand - elementer, der kan placeres for at bryde op (eller bevidst som struktur, som f.eks. mure) på sand |
well0010.bmp | Indeholder hver 48 overgange fra sand til lyst og mørkt sten |
well0011.bmp | Indeholder de polare kapper af kortet, med mørkt sten som underlag |
well0012.bmp | Indeholder de polare kapper af kortet, med lyst sten som underlag |
Det er stærkt anbefalet for en præcis implementering ikke at forudrenderere tiles for at cache dem, da dataene til dag/nat-cyklussen stadig skal behandles - og der ville opstå meget, meget store datamængder.
Tiles er 8bpp-grafik med en indekseret palette med en opløsning på 32x32 pixels, som er arrangeret i et gitter. I et sådan tileset kan der dog være langt flere
Hovedcontaineren består af 2 sektioner: head
og data
.
Fliser Overskrift
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | tegn | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datatype | Betegnelse | Forklaring |
---|---|---|---|
0x0000 | uint(32) | Magiske bytes | |
0x0004 | uint(24) | Block-længde | |
0x0007 | uint(8) | Flagger | |
0x0008 | uint(32) | Version / Flag? | Dette kunne være en versionsangivelse af filformatet; i alle de filer, jeg har til rådighed, stod værdien |
0x000c | uint(32) | Bredde (Horisontal opløsning) | Angiver, hvor bred billedefilen er (i pixel). For alle brønde i Outpost 2 vil værdien her være |
0x0010 | uint(32) | Højde (Vertikal opløsning) | Angiver, hvor høj billedfilen er (i pixel). For alle brønde fra Outpost 2 vil værdien her være |
0x0014 | uint(32) | Farvedybde? | Betydningen af denne værdi er ukendt. Da den indeholder værdien |
0x0018 | uint(32) | Farvedybde 2? | Betydningen af denne værdi er ukendt. Det kan muligvis være en 'mål'-farvedybde. |
Efter disse oplysninger følger der en palettedat fil i det standardiserede RIFF-format. Den præcise specifikation findes - da paletterne også optræder andre steder - under Paletter.
Tiles data
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | tegn | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Datatype | Betegnelse | Forklaring |
---|---|---|---|
0x0000 | uint(32) | Magiske bytes | |
0x0004 | uint(24) | Block-længde | |
0x0007 | uint(8) | Flagger |
Endelig følger de rå pixeldata, fra venstre-øverst række for række mod højre-nederst.
Data værdien for de grafikker, der som regel findes som 8bpp-bitmap, svarer til farveindekset i farvepaletten.
Spil-motoren tegner fliserne *sandsynligvis* on-demand.
Dette ser blandt andet ud til at skyldes dag-nat cyklussen, som har 32 nuancer af enkelte fliser. Her bliver der åbenbart trukket 'lidt' fra lysstyrken. Nøjagtige værdier er endnu ikke blevet fastslået, jeg arbejder på beregningsgrundlaget
v *= (daylight / 48) + 0.25;
med HSV-dataene fra pixel, hvor daylight er en værdi fra 0-31 og v en værdi mellem 0-1. Derudover skal det tages i betragtning, at der på kortet er en kant på 16 fliser til venstre og højre (den tjener til usynligt at spawn enheder).
Derudover ser det ud til, at dag-nat cyklussen kun opdaterer én søjle af kortet pr. spilcyklus.
En accelereret dag-nat cyklus ser derfor sådan ud: