Outpost 2 Dátufyrimyndir · bei.pm

Hesa tekstur bleiv automatisk týddur við OpenAI GPT-4o Mini.

Formatini, sum lýst er á hesi síðu, byggja á tekniskum greining av ávøttum iðnaði frá Dynamix, Inc. og Sierra Entertainment.
Ávøtt iðnaður er í dag partur av Activision Publishing, Inc.- / Activision Blizzard, Inc.-eignini og er nú í egn til Microsoft Corp..

Upplýsingarnar eru savnaðar við Reverse Engineering og Datanalysu við tíði at arkivera og tryggja samsvar við historiskar upplýsingar.
Ikki er brúkt aðrar privat ella trúnaðar spesifikatiónir.

Spælið kann nú keypast sum niðurlating á gog.com.

Konstverk úr spelet

Nei følgjandi greinarrøð dokumenterar míni upplýsingar um dátutypurnar í realtíðar-strategispelet "Outpost 2: Divided Destiny", sum varð útgivið av Sierra í 1997 og utviklað av Dynamix.

Eg havi arbeitt við at greina dátur úr spelet - og hvussu tær verða nýttar - frá 1. november 2015 til 14. november 2015.

Í upplýsingunum, sum eg havi fingið so langt, er at siga, at Dynamix - líkt og so mong onnur kommersiel virksemi - ikki hevur utviklað nakrar dátutypur serliga til Outpost 2, men hevur eisini brúkt tær í aðrar utviklingar, so sum Mechwarrior-seriuna (breytt).
Óansæð hetta er eisini at leggja dent á, at nýskapanarkrafturin í dátutypunum er relativt avmarkaður og ofta byggir á longri staðfestar konceptir úr vanligum typum sum JFIF og RIFF.

Til at túrar um tabellur og dátutypur eru aðrar upplýsingar at finna undir Hvat er hvat?.
Upplýsingarnar her eru í almenna lókinum at skilja sum Little Endian.

Avslutandi má sigast, at Reverse Engineering var ein sera skemtilig uppliving, eisini sjálvt um tað ikki er fullkomið.
Sjálvandi kann eg eisini bara mæla til, at tú spælir spelet sjálvur, tí tað hevur áhugaverdar spælarmeganikkar.

Inngangur

Dati, sum verður brúkt í Outpost 2, hava eina uppbygging, sum minnir um JFIF / PNG - deildirnar hava altíð eina 8 byte hedar. Tí spari eg meg fyri at dokumentera einstøku heðarnar á teimum serligu støðunum og dokumentera bert avvik.

Formatin er altíð hesin; søguligu nyttudaturnar eru so innbýttar í tað:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Magisk Bitar

Inniheldur upplýsingar um, hvat vit kunnu vænta í næsta dátublaði.

Kend virði:

  • 0x204C4F56 ('VOL '):
    Volum
  • 0x686C6F76 ('VOLH'):
    Volum-Header
  • 0x736C6F76 ('VOLS'):
    Volum-Strings
  • 0x696C6F76 ('VOLI'):
    Volum-Informasjónir
  • 0x4B4C4256 ('BLCK'):
    Volum-Block
  • 0x504D4250 ('PBMP'):
    Grafikkønir
  • 0x4C415050 ('PPAL'):
    Litpaletta
  • 0x4C415043 ('CPAL'):
    Litpalett-container
  • 0x64616568 ('head'):
    Header
  • 0x61746164 ('data'):
    Nýtudata
0x0004 uint(24) Block-lengd

Inniheldur upplýsingarnar um, hvussu stór (í Byte) data blokkin er niðri.

Her er talan um beinleiðis nýtsludata - 8 header-byte eru ikki við í hesum.

0x0007 uint(8) Føtt?

Hetta er ókent, hvat hesin blokk í veruleikanum nýtist til.

Í volumunum er hesin virði ofta 0x80, í øðrum skrám ofta 0x00. Hetta bendir á, at tað er um eitt flagg-set at tala.

Vøttir

Volumini eru ein dátupakk fyri spelet, líkt einum arkivformat, so sum Tarball. Í minsta lagi í Outpost 2 kennir formatini bert til dátufailar - eingi mappar. Sannlíkt ber til at simulera hetta við at brúka svarandi datunøtt.

Eitt volume består av volume-headerinum og fleiri volume blokkum, sum svara til serligu dátufailarnar.

"Volumes" eru dátufailarnar við endingini 'vol' í speletmyndini.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Magisk Býtir
0x0004 uint(24) Block-lengd
0x0007 uint(8) Føttur

Vøtturhettur

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Magisk Býtir
0x0004 uint(24) Block-lengd
0x0007 uint(8) Føttur

Volume Header'in einki nýtsluupplýsingar í sær.
Hann tænir bert sum ein íløgukassi.

Fyrsta dátan í Volume Header'in eru Volume Strings; eftir tað koma so Volume-upplýsingarnar.

Vøttur Strengar

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Magisk Býtir
0x0004 uint(24) Block-lengd
0x0007 uint(8) Føttur
Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Magisk Býtir
0x0004 uint(24) Block-lengd
0x0007 uint(8) Føttur
0x0008 uint(32) Payload-lengd

Sigur um, hvussu nógv bytes av teimum fylgjandi dátu veruliga eru nýtslu dátur.

Restin av dátu í listanum yvir volume-strengar er tilsynar at meta sum skrot.

Í skrám við seinni datum eru hesi 'restandi dátu' 0x00, sum kann vísa á bris í verktygjum under utviklingina av spølunum, tað vil siga, at ein utviklari fyrst nógv seint hevur hugsað um rættan inicialisering av buffruni, tí tað hevur ongan ávirkan á spælið, um dátu eru inicialiseraðar ella ikki.

0x000c uint(8)[] Dátunøtt-listi

Hetta snýr seg um eina 0-byte-tíðindalista av filanøttum, sum - í minnsta lagið í hesum dátueindinum - bert væntar ASCII-tekin.

Ikki er neyðugt at gera eina nærri útgreining av hesum dátublaði, tá ið vit parsara dátunar, tí í voluminformasjonunum verður beinleiðis vísað til offsets av filanøttunum.

Í Volume Strings er talan um ein lista av fílunøttum, sum eru við í volume.

Vøttur upplýsingar

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Magisk Býtir
0x0004 uint(24) Block-lengd
0x0007 uint(8) Føttur

Volume-upplýsingarnar taka við fleiri ítøkiligum upplýsingum um skrárnar. Hetta er á ein hátt ein slags FAT-skráseting (FAT = File Allocation Table).

Útrokningin av skránum kemur frá blokkstørrelsen deilt við lengdin av skrársetingunum - 14 byte.

Hver einstaka skrárseting hevur hendan uppbygning:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Dátunøtt-Offset

Vísir til, hvar í listanum av filanøttum (Volume-Strings) filanavnið á filinum finst.

Hetta er relatert til byrjanina av nytta data blokkinum.

0x0004 uint(32) Dátuflýtur

Vísir á, hvar í heildar volume-failini tíðindini liggja.

0x0008 uint(32) Fíla-stødd

Vísir, hvussu stór føroyska filurin er í byte.

0x000c uint(16) Føtt?

Vístir seg, at tað eru ávísar álítandi upplýsingar um fíla kodaing.

  • 0x03 er sett, tá ið fílin er komprimeraður. Her verður tykni, ið er Huffmann-træ, brúkt.
  • 0x80 serliga er altíð sett.

Vøttur Blokkur

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Magisk Býtir
0x0004 uint(24) Block-lengd
0x0007 uint(8) Føttur

Ein volumeblokkur er ein kassi, sum tekur móti skrám. Hann inniheldur bara einaferð til - vegna blokkformatin - avskipaða skrásstøddina, og síðani fylgja beinleiðis brúkaradatar.

Flisar

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 50 42 4d 50 -- -- -- -- -- -- -- -- -- -- -- -- P B M P . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Trollibytar
0x0004 uint(24) Block-longd
0x0007 uint(8) Fjøldur

Tile-ini eru eitt serligt Bitmap-grafikformat fyri Outpost-2. Teir strika seg yvir 13 tilesets, kallað "wells" (well0000.bmp til well0012.bmp), sum eru inni í volumini maps.vol.

Tilesets / Wells innihalda hetta:

Fílunavn Innihald
well0000.bmp Ein 32x32px stór, blá grafikk - ideal at testa, um egni myndavøtturin virkar
well0001.bmp Inniheldur ljósar steinar, fjallabrekku á ljósum steinum og óteljandi variantir av árinum í ljósum steinum
well0002.bmp Inniheldur ljósar-steinar-'Doodads' - tað er element, sum kunnu setast til at liva upp (ella medvitað sum struktúr, sum til dømis múrar) á ljósum steinum, eisini vegetation
well0003.bmp Inniheldur eina krustuliga struktura á ljósum steinum
well0004.bmp Inniheldur myrkar steinar, fjallabrekku á myrkum steinum og óteljandi variantir av árinum í myrkum steinum
well0005.bmp Inniheldur myrkar-steinar-'Doodads' - tað er element, sum kunnu setast til at liva upp (ella medvitað sum struktúr, sum til dømis múrar) á myrkum steinum
well0006.bmp Inniheldur eina krustuliga struktura á myrkum steinum, so velur millum ljósum og myrkum steinum
well0007.bmp Inniheldur lava, við 4-5 rammum animering av sama
well0008.bmp Inniheldur sand og óteljandi variantir av árinum í sandi
well0009.bmp Inniheldur sand-'Doodads' - tað er element, sum kunnu setast til at liva upp (ella medvitað sum struktúr, sum til dømis múrar) á sandi
well0010.bmp Inniheldur 48 velur av sandi til ljósum og myrkum steinum
well0011.bmp Inniheldur pólkappurnar á kortinum, við myrkum steinum sum undirlag
well0012.bmp Inniheldur pólkappurnar á kortinum, við ljósum steinum sum undirlag

Hetta er ráðiligt fyri eina nákvæma framleiðslu, at tiles ikki verða rendrað áðrenn, fyri at kunna cache'a teir, tí at dátan fyri dag/náttarlagið má enn verða bearbeidd - og tað vil skapa nógv nógv data.

Tile'ini eru 8bpp-grafikkur við indexeraðari palettu, hvør við 32x32 pikslar uppløtt, sum standa saman. Í einum so framkomnum tileset kunnu tó nógv meira

Høvuðskontainarin er bygdur upp av 2 seksjónum: head og data.

Tíggjur Hevur

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Trollibytar
0x0004 uint(24) Block-longd
0x0007 uint(8) Fjøldur
0x0008 uint(32) Versjón / Flagdir?

Hetta kann vera ein útgávuuppgerð av dateformatinum; í øllum mínum fáum skrám stóð her virðið 0x02

0x000c uint(32) Breidd (Horisontalur upplýsing)

Vísir, hvussu breitt myndafílan er (í pikslar).

Í øllum brunnunum frá Outpost 2 verður her væntað, at gildið 0x20 ella 32 er.

0x0010 uint(32) Hædd (Lóðræt úrslit)

Vísir hvussu høgt myndarfílin er (í pixlum).

Við øllum Wells frá Outpost 2 verður her væntað at vera virði 0x20 ella 32.

0x0014 uint(32) Litdjúbd?

Merkingin av hesum virði er ókendur.

Fordi hann í øllum kannaðu fílar hevur virðið 8, kundi tað verið ein litdjúpdarmerking.

0x0018 uint(32) Farvadybdi 2?

Merkingin av hesum virði er ókendur.

Kanska er talan um eina 'mál'-litdjúpd.

Afturat hesum upplýsingum fer ein pallfíl við standardiseruðum RIFF-formati. Náttúran av spesifikasjónini kann finnast - tí pallarnir eisini eru aðrastaðni - á Pallir.

Tíðindini um flisarnar

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Trollibytar
0x0004 uint(24) Block-longd
0x0007 uint(8) Fjøldur

Aftur fylgir tað beinleiðis pixeldaturnar, frá vinstru-uppi línuliga móti høgru-neðri.
Datavirðið hjá teimum grafikkunum, sum vanliga eru 8bpp-bitmaps, svarar til indeksin av litinum í litpalettuni.

Pixeldaturnar byrja uppi til vinstru og enda niðri til høgru.

Spil-Engine'in málar Tiles *kanska* on-demand.
Hetta tykist millum annað at vera tengt til dag-náttarsyklusin, sum hevur 32 stig av einstøkum Tiles. Her verður greitt frá, at eitt 'lítið' verður dregið frá ljósverdi. Nákvæmar virði eru framvegis ikki komin fram, eg arbeiði útfrá útreikningargrunni

v *= (daylight / 48) + 0.25;

við HSV-datum av pikslar, har daylight er eitt virði frá 0-31, og v er eitt virði millum 0-1. Afturat hesum er at taka í mánað, at á kortinum eru enn 16 Tiles til vinstru og høgru (hesi tæna til ósjónliga spawning av einingum).

Afturat hesum tykist dag-náttarsyklusin bert at uppdatera eina kolonu á kortinum hvørja ferð í einum gamecycle.
Ein skundaður dag-náttarsyklus sær tí út soleiðis út:

Visualisering av dag-náttarsyklusinum

PRT

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 43 50 41 4c -- -- -- -- -- -- -- -- -- -- -- -- C P A L . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Magisku Bitar
0x0004 uint(24) Palett-longd

Vísti, ímóti vanligu blokkformatinum, taluna av pallum sum finnast í hesi fílu - ikki longdina av blokknum í byte.

0x0007 uint(8) Fjøldar

Vóni, sum vanligt, flagg.

Vit kenna tó ikki naka flagg; tí at allar tær vit kenna, svara til 0x00, kundi tað eisini verið møguligt, at palettatalið er einfaldiliga ein uint(32).

Hvat PRT nøyaktiliga stendur fyri, er mær ikki kunnugt; hugsaði um til dømis 'Palette and Resource Table' - tí tað snýr seg um hesa filina - at finna sum op2_art.prt í maps.vol - sum er ein slíkur, ella hetta kundi lýst funktiónina væl.

Henda filin inniheldur eina lista av palettum, eina tabellu yvir allar brúktar bitmap-ar, allar animatiónsdefineringar og enn eina røð av ókendum upplýsingum. Hon fylgir fram til núverandi containerformatinum leyst, tí ikki allar dataskrivi fylgja hesum skemanu.

CPAL-sektionen (stendur kanska fyri palettukontainer) umfatttur bert palettudatuna, við at vísa, hvussu mong av teimum vanligu 1052 byte stórum 8-bit palettum eru til staðar.

1052-byte angivin verður ikki mettað sum bindandi, tí palettuformatini kunnu potensielt hava ymiskar palettustøddir. Hon er bert galdandi fyri datalagerið, sum Outpost 2 verður útgivin við.

Eftir palettulistarnar fylgir beint og uttan inntøkuheader, longu listin av bitmap-ar; líka so beint fylgja so animatiónslistarnar.
Bæði verða byrjað við einum uint(32) (ella aftur uint24+uint8 flagg?) sum inniheldur talvuna av dataskrivum.

Palettir

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 50 50 41 4c -- -- -- -- -- -- -- -- -- -- -- -- P P A L . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Mágiska Bitar
0x0004 uint(24) Palettalengd

Vísir, ímóti vanligu blokkarformati, talið av pallum, sum finnast í hesi fil, - ikki longdina av blokkinum í byte.

0x0007 uint(8) Merki

Vónandi, sum vanligt, Flags.

Vit kenna tó ikki nakað av Flags; tí at allir vit kenna til eru 0x00, hevði tað eisini verið møguligt, at palettatalið bara var ein uint(32).

Palettupplýsingarnar eru very einfaldar at lesa.
Teir eru gjørdir av einum header og einum data-segmenti.

Palettuhøvd

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Mágiska Bitar
0x0004 uint(24) Palettalengd

Vísir, ímóti vanligu blokkarformati, talið av pallum, sum finnast í hesi fil, - ikki longdina av blokkinum í byte.

0x0007 uint(8) Merki

Vónandi, sum vanligt, Flags.

Vit kenna tó ikki nakað av Flags; tí at allir vit kenna til eru 0x00, hevði tað eisini verið møguligt, at palettatalið bara var ein uint(32).

0x0008 uint(32) Palettustødd-útgáva?

Definera helst, hvønn palettformat-version paletten fylgir.

Allar Outpost2-palettir tykjast at hava version 0x01.

Palettadátur

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Mágiska Bitar
0x0004 uint(24) Block-lengd
0x0007 uint(8) Merki

Datasektionen taka ímóti einstøku pallhúsini. Talvan av pallhúsum kemur fram úr blokk-longdini / 4.

Einstøku innlættini hava hesa, einfaldan uppbygning;

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 -- -- -- 04 -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(8) Reyd-komponentur

Vísir á reyða partin av litinum

0x0001 uint(8) Grøna komponentan

Vísir grøna partin av litinum

0x0002 uint(8) Bláa komponenta

Vísir bláu partin av litinum

0x0003 uint(8) Ókendur - Føtt?

Hetta er ógreitt, hvat hesin virðið merkir, tí tað sær út til at vera grundgeiran 0x04.

Til palettarnar er bert at siga, at fyri animationir brúktar palettir gilda hesar reglur:

  • Fyrsta liturin er ALTID transparent, óansæð hvørjin verdi er givin har.
  • Palett-innskot 1-24 skulu metast sum spælaralitir í palettum 1-8.
    Hvar litirnir koma frá uttan frá spælara 1 er mær ógreitt.
    Eg ætla, at restin av litunum er hardcoded.

Palett-viðvíking

Bitmaps

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Rættað breidd

Vísir breiddina av píkseldatulinjum í byte - tí hetta er stillað til 4-byte mark.

Tí er tað skjót at hoppa til eina ávísan myndarlinju.

Hví hesin virði verður goymdur særstakliga, hóast hann kundi blivi útroknaður, er ógreitt.
Kanska er talan um eina optimalisering fyri render-kóðan.

0x0004 uint(32) Offset

Vísir avbrotnið hjá fyrstu línuni í bitmapinum

0x0008 uint(32) Hædd

Vís høgdin á myndini í pikslar

0x000c uint(32) Brett

Vísir breiddina av myndini í pikslar

0x0010 uint(16) Slag

Vísir til slagið av myndini. Her tykist tað at vera um ein bitmasku:

  • 0x04 er sett, um tað er um ein 1bpp-grafik at tala.
  • 0x40 er sett, um tað er um ein grafik, sum má umseta vindeyð.
0x0012 uint(16) Palett

Definerer, hvussu paletten úr PRT-failinum skal brúkast

Henda data-strukturin í PRT-failinum vísar til, hvussu bitmappirnir, sum verða nýttir til sprites, eru bygdir. Hesir bitmappir eru einliðandi partur, har fleiri verða samansett til ein animaferð í einum sprite.

Teir konkretu mynddata eru afturímóti at finna í op2_art.BMP í spælinum mappa.
Hví henda bitmap-failin hevur ein (fyrr mest rættan) RIFF-bitmap-header, er ógreitt. Kanska brúkar Outpost 2 system-API'ir at hlaða grafikkarnar, har hesin header verður temporært ílagdur og viðkomandi, breytandi felti verða yvirskrivað.

Pixeldaturnar eru í BMP-failinum á tilfari Offset + uint32-Offset, sum er at finna í BMP-failinum á adresu 0x000A (RIFF-bitmap-data offset), til finna - og svarar aftur til línuliga uppsetningin frá vinstra aftur til høgru niðri.

Monokrome 1bpp-grafikkir kunnu verða málaðar, soleiðis at litur 0 er fullkomin transparens, meðan litur 1 er hálvtransparantur svart/grátt, tí monokromu grafikkirnar vanliga verða nýttar til kjøretøyi og bygningaskuggar í animatiónunum.

Hetta ger, at man longu kann seta nógv grafikkir saman.

Vøttað búmodule (Plymouth)

Animationir

Nú koma vit til kongaklassan í disiplinunum innan Outpost 2 dataformata:
Animationirnar.

Animationslistarnar byrja við einum globalum header, sum fyrst og fremst tænir til dátuverifikation. Eftir fylgja tær konkrettu animationsdefinitiónirnar, sum eru uppbygd í 3 stig:

  1. Animation
    Ein animation er hægsta instans; hon vísir eina animation av einari eining, einari bygning ella einari 'partikulanimation' (kometaskot, veður, eksplosjón) í einum ávísum útgangsstøðu.
  2. Frame
    Eitt frame er eitt einstakt mynd innan eina animation. Ein animation kann hava eitt ella fleiri frames.
  3. Subframe
    Eitt subframe er upplýsing um, at ein ávís bitmap skal verða málað undir ávísum dømum á eina ávíst støðu av einari frame. Ein frame kann hava eitt ella fleiri subframes.

Eftir hetta koma tær serligu animationsdefinitiónirnar beint eftir.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Fjøldin av animatiónum

Hvussu nógv animatiónsdata eru til staðar

0x0004 uint(32) Fjøldin av rammunum

Hvussu mong rammið á heildina skuldu vera til staðar

0x0008 uint(32) Fjall av underrammum

Hvussu nógv subframes skulu vera til taks í alt?

0x000c uint(32) Tal av valfríum inntøkum

Hvussu nógvar "valfríar innskot" eru til staðar.

Animatión

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0020 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(32) Ókenda 1
0x0004 uint(32) Avmarkingin: Vinstra

Gefur til vøttin byrjan (í pikslar) av Bounding Box.

0x0008 uint(32) Grøttur: Ovan.

Vísir á ovasta byrjan (í pikslar) av Bounding Box.

0x000c uint(32) Støttukassi: Breidd

Vísir breiddina (í pikslar) av Bounding Box.

0x0010 uint(32) Avmarkingarbox: Hædd

Vísir hæddina (í pixlum) av Bounding Box.

0x0014 uint(32) Offset: X

Vísir miðdepilin í hásvøttinum av flettinum

0x0018 uint(32) Offset: Y

Vísir miðpunktin í vertikala av teimum animatiónini

0x001c uint(32) Ókendir 2
0x0020 uint(32) Fjøldin av rammunum

Vísir hvussu mong animatiónsrammar eru í hesi animatión

0x0024 uint(32) Fjøldin av vindeygum

Vísir, hvussu nógv vindeyga skulu brúkast tá ið tú teiknar

Upplýsingarnar í ovasta lagnum, animatiónini, eru fyrst og fremst stjórnarupplýsingar - Boundingbox vísir til koordinaturnar hjá merkinum rundan um bil/bygning, nær tað er valt, og gevur eisini vísing til, hvørjar økir skulu vera klikkbar.

Offsetið avger fyrst og fremst "nullpunktið"; punktin, sum skal leggjast at, ella dragast frá spølini-internu koordinatum. Man kundi eisini sagt matematiskt: offsetið vísir her til koordinatursupruni.

Her eru vindeytini, eins og við offsetinum, 4 uint(32)-virði fyri hvørt vindeyti, som vísa eina øki, sum er brúkt fyri einstakar subframes. Uttan fyri vindeytini, so leingi sum tað er ætlað fyri bitmapina, má ikki málast.

Ramm

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(8) Undirramma fjøld og Togl fyri Valfrítt 1, 2

Hesin virðið inniheldur:

  • 0x7F (Bitmask): Talvan av subframes, sum verða brúkt í hesum frame
  • 0x80: Upplýsingar um, um Valfrí 1 og 2 eru til staðar
0x0001 uint(8) Ókent 1 og Toggle fyri Valfrí 3, 4

Hesin virðið inniheldur:

  • 0x7F (Bitmasku): Ókendur - Eg haldi sterkt, at hetta er talið av Gameticks, sum ganga, til næsta Frame verður víst
  • 0x80: Upplýsing um, um Optional 3 og 4 eru til staðar
0x0002 uint(8) Valfrítt 1

Ókendur

0x0003 uint(8) Valfrí 2

Ókendur

0x0004 uint(8) Valfrítt 3

Ókendur

0x0005 uint(8) Valfrítt 4

Ókendur

Undirramma

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tekin
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Data slagi Heiti Forklaring
0x0000 uint(16) Bitmap-ID

Vísir til, hvussu Bitmap skal brúkast fyri hesa undirrammu

0x0002 uint(8) Ókenda 1

Er tað ókunnugt - eg haldi tó sterkt, at hetta snýr seg um ein render-prioritet (Z-lag).

0x0003 uint(8) Subframe-Id

Vístir hvar í subframe vit eru

0x0004 sint(16) Offset - Lóðrætt

Vísir, hvar inni í rammanum undirramman skal setast, ella hvussu nógvum pikslar bitmapin skal flytast lóðrætt.

0x0006 sint(16) Offset - Vertikalt

Gevur upp, hvar innanfyri rammuna undirramman skal setast, ella hvussu nógv pikslar bitmapin skal flytast niður í vøttinum.

Vit kunnu nú seta saman einstaka frames, so væl sum fullar animationer, her vísast ein dømi av eini meira komplisert animation, animationina við index 500.

Animator 500

Animation 500 vísir, hvussu ein Plymouth-transportør, sum er læddur við vanligum malm, verður leyslagdur. Hetta er ein av fáu animationunum, sum nýtir vinduvirkna.

Soleiðis kann man samanseta alla animationina.
Óheppiliga er tað enn eitt trupulleiki við ovastu lastlúkuna, tí at her er tað svarandi bit í grafikktypupplýsingunum ikki sett.

Her eru eisini nakrar aðrar, vøttandisliga animeraðar sprites úr spølunum:

Rendering av Animation 500 illustrerað

Animation 500 liðug samansett

Plymouth Byggifabrikk

Eden Rúmport

Eden Sjúkrahús

SCAT

Plymouth Rúmport

Easteregg:
Jólamaðurin

Easteregg:
Dans Hundur

Brúkaragrind

Nú manglar enn brúkaragrunnin til spelet, sum er hildin í einum børstaðum metal-útbúgving.

Men eisini her er greitt, at Dynamix ikki mátti uppfinna hjólið aftur; her verða ekki bara beinleiðis nýtt API'ini frá Windows, User32 og GDI32 - serliga verður eisini ressursumanagementið hjá User32 brúkt.

Hetta kann til dømis útvørðast við hjálp av programum sum tað frá Angus Johnson, sum er frítt tilfar, Resource Hacker, ella - um tú skalt brúka Linux / Mac OS og einki ynskir at brúka Wine - við hjálp av wrestool, sum er í icoutils.

Filnavn Innihald
Outpost2.exe Inniheldur bert ikonið fyri spelet, sum vísir rúmdarstøðina framman fyri New Terra
op2shres.dll Inniheldur umframt grafikk fyri stýringar, so sum umfatningar, knøttir, radioknøttir og avkoyringar, eisini dialog-bakgrundir, fylgismyndir fyri søgu-missiónstekstirnar og bakgrundsgrafikk fyri høvuðsmenuið
out2res.dll Inniheldur in-game vindeyrsmálning, ikoni fyri vanligt og serligt metall, lasti-skjá, grafikk fyri dialogar og aðrar músar-grafikkir, viðauka til tær animatorisku í spilsbókini