Outpost 2 mbongui ya fayili · bei.pm

Tango oyo, ezaleli ya OpenAI GPT-4o Mini, emonisi.

Ébomi ya ba fichier oyo elobami na esanga oyo ebimaka na ndakisa ya bokomi ya mindondo ya Dynamix, Inc. mpe Sierra Entertainment.
Bokomi ya mindondo ezali lelo na part ya Activision Publishing, Inc.- / Activision Blizzard, Inc. mpe ezali na maboko ya Microsoft Corp..

Mokuse ya ba ntina ekozali na Reverse Engineering mpe Données analyse mpo na makambo ya archivage mpe interopérabilité na ba données ya kala.
Ezali te kosalela ba spécifications ya bokonzi to ya solo.

Mokolo oyo, jeu ekoki kokatwa na gog.com lokola téléchargement.

Nzoto ya mposo

Likambo oyo ezali kotala makambo nazali koyeba na ba format ya data na mposa ya sika "Outpost 2: Divided Destiny", oyo ebandaki na 1997 na Sierra mpe ekelaki na Dynamix.

Nakopela nguya kati ya 01 sanza ya Novambere 2015 tii na 14 sanza ya Novambere 2015 na etali ya koyeba makambo ya data ya mposo - mpe ndenge ya kopesa yango.

According to the information I have gathered so far, Dynamix - como ba entreprise kombo ya mabe - esalaki ba format ya data te pona Outpost 2, kasi ezalaki kolanda mpe na bapesi mosala mosusu lokola na sango ya Mechwarrior (ebongisami).
Na ntango moko, ezali kaka komona, ete innovation ya ba format ezali na limite mpe ezalaka na ba conception ya kala ya ba format oyo ezali na ndenge ya JFIF mpe RIFF.

Pona koyeba makambo ya ba table na ba format ya data, ezali na makambo mosusu na Nani oyo?.
Ba data oyo oyo ezali na nzela ya Little Endian.

Nkasi, nakoki koloba ete Reverse Engineering ebotaki malamu, ata soki eza te na bokateli ya 100%.
Nazali komona lisusu ete nazali na esengo ya komela mposo yango, mpo eza na ba mécanismes ya mposo ya mpenza.

Banda ya liboso

Format ya ba données oyo ezali kosalema na Outpost 2 elendisaka na JFIF / PNG - ba données ya solo ezali na 8 Byte Header na ntango nyonso. Yango wana, nazali kokanga te, mpe na esika ya sika nazali kopesa maloba ya ndenge na ndenge na ba Header.

Format ekokisi nyonso; ba données ya sika ezali na yango:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Bayi ya Magie

Ezali na nsango oyo etali yango nini ekosalela na data ya mabe ezali koya.

Makambo ayembi:

  • 0x204C4F56 ('VOL '):
    Volume
  • 0x686C6F76 ('VOLH'):
    Volume-Header
  • 0x736C6F76 ('VOLS'):
    Volume-Strings
  • 0x696C6F76 ('VOLI'):
    Volume-Informations
  • 0x4B4C4256 ('BLCK'):
    Volume-Block
  • 0x504D4250 ('PBMP'):
    Grafikdaten
  • 0x4C415050 ('PPAL'):
    Palette ya mibeko
  • 0x4C415043 ('CPAL'):
    Container ya palette
  • 0x64616568 ('head'):
    Header
  • 0x61746164 ('data'):
    Nutzdaten
0x0004 uint(24) Bolenge ya bloki

Eloko ezali na ntina ya ndenge nini (na Byte) etali bloc ya ba données oyo esengeli.

Ako ezali makambo ya ba données ya solo - ba 8 Header-Byte ezali te na yango.

0x0007 uint(8) Bande?

Ezali te kolanda, mpo na nini blok oyo ezali kosalela malamu.

Na ba Volumes, valeur oyo ezalaka na ntembe 0x80, na ba fichier mosusu ezalaka na 0x00. Yango etali, ezali na ntina ya flag-set.

Mibeko

VOLUMES ezali ba conteneurs ya données mpo na jeu, ndenge na ndenge na archive format lokola Tarball. Na Outpost 2, format yango ezali kolanda ndenge ya ba fichiers - te ba dossiers. Ekozala na mposa ya simuler yango na ba noms ya fichiers oyo ebongi.

Volume ezali na Volume-Header mpe na ba Volume Blocs mingi, oyo ezali na ba fichiers ya sika.

"Volumes" ezali ba fichiers oyo ezali na fin 'vol' na répertoire ya jeu.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Bits ya nzela
0x0004 uint(24) Mokolo ya block
0x0007 uint(8) Bendera

Nkolo ya Volume

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Bits ya nzela
0x0004 uint(24) Mokolo ya block
0x0007 uint(8) Bendera

Volume Header ezali na yango mpenza biloko ya kosalela te.
Ezali kaka lokola kontene.

Nako ya liboso na Volume Header ekozala ba Volume Strings; nsima ya yango ekobima ba Volume-Informations.

Banda ya Volume

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Bits ya nzela
0x0004 uint(24) Mokolo ya block
0x0007 uint(8) Bendera
Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Bits ya nzela
0x0004 uint(24) Mokolo ya block
0x0007 uint(8) Bendera
0x0008 uint(32) Mokolo ya payload

Yebisi na ndenge bytes ya ba données oyo ezali na esika ya vrai na yango.

Banda na yango, ba données oyo ezali na liste ya ba volume-strings ezali mpo na garbage.

Na ba fichier oyo ezali na date ya nsima, ba 'données oyo ebaki' ezali 0x00, oyo ekoki kolimbola mabe na toolchain na ntango ya kobongisa jeu, yango elingi koloba ete moko akomaki kosala na esika ya malamu na kokokisa ba buffers, mpo na esika eza na ntina te na jeu soki ba données ezali na kokokama to te.

0x000c uint(8)[] Mokanda ya masolo ya fayilo

Oyo ezali liste ya ba nom ya fichiers ya 0-Byte terminée, oyo - na nzela ya ndenge ya données oyo ezali na kati - ekoki kaka kozala na ba signes ASCII.

Esengeli te, na ntango ya koparser ba données, kotala yango na lolenge mosusu, mpo na ba informations ya volume esalaka referens ya ba offsets ya ba nom ya fichiers na ndenge ya mosika.

Na ba Volume Strings, ezali eklisti ya mibale ya ba fichier oyo ezali na kati ya volume.

Makambo ya Volume

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Bits ya nzela
0x0004 uint(24) Mokolo ya block
0x0007 uint(8) Bendera

Mosala ya volume ezalaka na mateya ya sika makasi na mitambo. Eza na ndenge moko ya FAT (FAT = File Allocation Table)

Namba ya mitambo ebandaka na mabe ya blok ozali kokitisa na mbala ya ba veris ya mitambo - 14 Byte.

Ba veris ya mitambo nyonso eza na lisangani oyo:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Nkombo ya fichier-offset

Kotalaka na esika ya offset (!) na kati ya liste ya noms des fichiers (Volume-Strings) oyo nom ya fichier ezali.

Ebimisaka na ntango ya ebongiseli ya ba données.

0x0004 uint(32) Offset ya fichier

Eyebisi na nani offset na kati ya biloko nyonso ya volume, esaleli yango na file oyo ezali.

0x0008 uint(32) Bokilo ya file

Koleka nzela ya file na byte.

0x000c uint(16) Bande?

Eloko ezali kolakisa bisengo ya ntango ya kodage ya fichier.

  • 0x03 eza na elikya, soki fichier ezali komprimé. Awa ezali kolanda moke ya Huffmann.
  • 0x80 ezali na elikya ntango nyonso.

Blok ya Volume

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Bits ya nzela
0x0004 uint(24) Mokolo ya block
0x0007 uint(8) Bendera

Na volume-block, ezali container moko, ekokisa ba fichier. Eza na ndenge moko - na ndenge ya block, ezali na ba taille ya fichier na mobali pe na nsima, ezalaka na ba données ya utilisation.

Nganga

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 50 42 4d 50 -- -- -- -- -- -- -- -- -- -- -- -- P B M P . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Mokusembo ya mayele
0x0004 uint(24) Mokolo ya blok
0x0007 uint(8) Bandere

Na Tiles ezali motindo ya bitmap ya grafika oyo eza ya Outpost-2. Ezali na Tilesets 13, oyo bayebani "wells" (well0000.bmp ti well0012.bmp), bango bazali na ndani ya volume maps.vol.

Mokolo wana, Tilesets / Wells ezali na yango:

Nom de fichier Contenu
well0000.bmp Une image bleue de 32x32px - idéale pour tester si votre chargeur d'images fonctionne
well0001.bmp Contient des roches claires, des chaînes de montagnes sur des roches claires et d'innombrables variantes de cratères d'impact dans des roches claires
well0002.bmp Contient des 'Doodads' sur roches claires - des éléments pouvant être placés pour aérer (ou intentionnellement comme structure, comme des murs) sur des roches claires, y compris de la végétation
well0003.bmp Contient une structure croûteuse sur des roches claires
well0004.bmp Contient des roches sombres, des chaînes de montagnes sur des roches sombres et d'innombrables variantes de cratères d'impact dans des roches sombres
well0005.bmp Contient des 'Doodads' sur roches sombres - des éléments pouvant être placés pour aérer (ou intentionnellement comme structure, comme des murs) sur des roches sombres
well0006.bmp Contient une structure croûteuse sur des roches sombres, ainsi que des transitions entre roches claires et sombres
well0007.bmp Contient de la lave avec 4 à 5 images d'animation
well0008.bmp Contient du sable et d'innombrables variantes de cratères d'impact dans le sable
well0009.bmp Contient des 'Doodads' sur sable - des éléments pouvant être placés pour aérer (ou intentionnellement comme structure, comme des murs) sur le sable
well0010.bmp Contient 48 transitions du sable vers des roches claires et sombres
well0011.bmp Contient les calottes polaires de la carte, avec des roches sombres comme sous-couche
well0012.bmp Contient les calottes polaires de la carte, avec des roches claires comme sous-couche

Ekoki na bonsomi mpo na komela malamu, kosala tiles te na libanda mpo na kokanga yango, mpo na ndenge ya mikolo/mokolo eza na mosala - mpe ba données mingi mpenza ekokisi.

Les tiles ezali ba grafiki 8bpp na palette ya indexée na 32x32 pixel résolution, oyo ezali kokamata na nzela ya moto. Na tile set oyo esalemi, soki ezali na ndenge mingi.

Conteneur principal ezali na 2 sections: head mpe data.

Makambo ya Makasi

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Mokusembo ya mayele
0x0004 uint(24) Mokolo ya blok
0x0007 uint(8) Bandere
0x0008 uint(32) Version / Bilanga?

Ekoki kozala likambo ya ndakisa ya format ya file; na biloko nyonso oyo nalingi, elaki awa nko 0x02

0x000c uint(32) Bokasi (Ezali na nzela ya seko)

Ezali komonisa ndenge ya bonzambe ya fichier ya image ezali (na pixel).

Na biloko nyonso ya Outpost 2, esengeli kozala na valeur 0x20 to 32.

0x0010 uint(32) Mokili (Mokonzi ya likolo)

Ezali na yango, ndenge ya kokoma ndenge nini esika ya bafoto ezali (na pixel).

Na ba wells nyonso ya Outpost 2, ekoki kozala na eloko 0x20 to 32 oyo ezali na likambo.

0x0014 uint(32) Loboko ya mibale?

Kopole ya ndenge oyo ezali te.

Lokola ezali na biloko nyonso oyo esaleli, ezali na kopesa 8, ekoki kozala na kolanda ya mibale ya milambo.

0x0018 uint(32) Boto ya mbala 2?

Ntina ya valeur oyo ezali kolobela te.

Ekoki kozala 'objectif'-kondima ya couleur.

Na ba ntina oyo, ezozala lisusu fiche ya palete oyo ezali na format ya RIFF ya kitoko. Ekomeli ya malamu ezali - mpo na palete ezalaka na banso - na Palete.

Mokanda ya Tiles

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Mokusembo ya mayele
0x0004 uint(24) Mokolo ya blok
0x0007 uint(8) Bandere

Nako, bikela ya pixel ezali kolanda, ezali na ngala ya likolo-kasi na ngala ya mobulu.
Vale ya données na ba grafiki oyo, oyo ezalaka na forme ya 8bpp-Bitmaps, ezali na index ya couleur na palette ya couleur.

Bikela ya pixel ebandaka na likolo-kasi mpe efinaka na mobulu ya ngala.

Engin ya jeu ezali kosakola tiles na *soki* na ntango ya kofanda.
Ezali kolobela, na kati ya bakanisi, na cycle ya mokolo na butu oyo ezali na 32 ba niveau ya tiles. Na yango, ekomama ete ezali kokamwa na valeur ya lumière na 'mokolo moko' ezali komisiwa. Ba valeurs ya solo esalemaki te, nazali kosala na base ya calculation

v *= (daylight / 48) + 0.25;

na ba données ya HSV ya pixels, où daylight ezali valeur ya 0-31 mpe v ezali valeur ya 0-1. Mpe lisusu, ezali na ntina ya kolakisa ete na map ezali na mbala moko 16 tiles na mabelé na mabele (oyo ezali mpo na kobimisa ba unités na nzela ya kokanga).

Mokolo na butu cycle ezali kolakisa na gamecycle moko na kolakisa kaka mbala moko ya map.
Cycle ya mokolo na butu oyo ekosala na mposo ezali lokola oyo:

Vizualisation ya cycle ya mokolo na butu

PRT

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 43 50 41 4c -- -- -- -- -- -- -- -- -- -- -- -- C P A L . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Bayi ya Makasi
0x0004 uint(24) Bongo ya palete

Eyokani, na ndenge ya ndenge na ndenge ya bloc ya kitoko, ezalaka nombolo ya palet oyo ezali na file oyo - te nzela ya bloc na ba byte.

0x0007 uint(8) Bendera

Na likambo ya solo, ndenge na ndenge, ba-Flags.

Na ngai, nalingi te ba-Flags; mpo na ndenge nyonso oyo nayebi, ba-valeurs nyonso ezali 0x00, ekoki mpe kozala na lolenge ya ndenge na yango, ete nzela ya ba-palettes ezalaki kaka uint(32).

Nani PRT realmente ezali, nazali te na nzela ya koyeba; ezalaka na libanda lokola 'Palette na Ressource Table' - mpo na ete fichier oyo - oyo ezali na op2_art.prt na maps.vol - ezali ndenge yango, to esengeli kolobela malamu mikolongi oyo.

Fichier oyo ezalaka na liste ya palete, table ya biloko nyonso oyo esalemi na Bitmaps, nyonso ya définition ya animations mpe soki eza mingi ya ba données oyo ezalaka na bobola. Esubaka na format ya container oyo esalemi, kasi te, mpo ezalaka na ba enregistrements nyonso oyo esalemi na format yango.

CPAL sektion (ekoki kozala mpo na container ya palete) ezali kaka kofungola ba données ya palete, na kolobela, combien ya ba palete ya 8-Bit oyo ezalaka na 1052 byte.

Ngai 1052-byte eza na kati te na nzela ya kokamwa, mpo na format ya palete ekoki kozala na ba palete ya ndenge moko. Eza kaka mpo na ba données oyo, oyo Outpost 2 ekozala na yango.

Na nsima ya ba listes ya palete, ezali mpenza na nsima na nzela ya nzela, ya liste ya Bitmaps; ndenge moko na nsima ezali na liste ya animations.
Bayebani na yango na uint(32) (to soki ezali uint24 + uint8 flag?) oyo eza na nombre ya ba enregistrements.

Palete

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 50 50 41 4c -- -- -- -- -- -- -- -- -- -- -- -- P P A L . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Mokolo ya maboko
0x0004 uint(24) Liso ya palete

Ya, na mpona ndenge ya sika ya format ya bloc, kolakisa nzela ya ba palet oyo ezali na fichier oyo - te, ezali te nzela ya bloc na byte.

0x0007 uint(8) Banderoles

Malamu, ndenge ya sika, ba flags.

Nazali na ntina te na ba flags; mpo na ba valeur nyonso nayebi ezali 0x00, ekoki mpe kozala ete nombre ya palett esengeli kokoma kaka uint(32).

Informations na ba palettes ezali kolanda ntango moke.
Ezali na header moko mpe na data segment moko.

Ntoma ya Paleti

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Mokolo ya maboko
0x0004 uint(24) Liso ya palete

Ya, na mpona ndenge ya sika ya format ya bloc, kolakisa nzela ya ba palet oyo ezali na fichier oyo - te, ezali te nzela ya bloc na byte.

0x0007 uint(8) Banderoles

Malamu, ndenge ya sika, ba flags.

Nazali na ntina te na ba flags; mpo na ba valeur nyonso nayebi ezali 0x00, ekoki mpe kozala ete nombre ya palett esengeli kokoma kaka uint(32).

0x0008 uint(32) Version ya palete?

Ekoki kolakisa na boboto, ndenge nini format ya palete ezali kolanda.

Ba palete nyonso ya Outpost2 ezali na version 0x01.

Bokelani ya palete

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Mokolo ya maboko
0x0004 uint(24) Mokolo ya block
0x0007 uint(8) Banderoles

Sezione ya ba données ekozwela ba entrée ya palet moko na moko. N° ya ba entrée ya palet ezali na ndenge ya block / 4.

Ba entrée moko na moko ezali na ndenge oyo, ya sika te;

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 -- -- -- 04 -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(8) Komponenta ya mabele ya pulupe

Ezali kolakisa portion ya mbala ya moke ya pɛpɛ ya mɛrɛ

0x0001 uint(8) Komponente ya zulu

Ezali kolakisa part ya nzete ya couleur

0x0002 uint(8) Komponente ya mbala moke

Eloko moke ya banzela ya mvula

0x0003 uint(8) Eza te - Banderole?

Ezali na mokuse, ezali na likambo ya kolanda, mpo na nini esengo oyo ezali, ndenge ezali na ndenge ya 0x04.

Nako na palet, ezali na nkombo ya kosala, etali palet oyo ekozala na animation, bokoki koyeba ete mibeko ezali:

  • Mokolo ya liboso ezali TOZALI na transparence, ata soki nini esalemi na yango.
  • Ezali na palet 1-24, na palet 1-8 ezali komonana lokola couleur ya joueur.
    Mokolo ya ba couleur oyo ezali esika ya joueur 1, nazali na mposa ya koyeba.
    Nabondeli, ba couleur oyo oyo esengeli ete ezali hardcoded.

Palet-Referenzi

Bitmaps

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Mokolo ya mbala

Eyebisa ndenge ya banzela ya pixele na byte - mpo na yango bazali na bato ya 4-byte.

Na yango, ezali na esengo ya kokanga nzela moko ya image.

Mbala oyo motango oyo ekoki kokangama, ndenge na ndenge, ezali na mposa te.
Mbala mosusu, ezali na nse ya esengo mpo na code ya render.

0x0004 uint(32) Offset

Ezali kofuta ya ligne ya liboso na bitmap

0x0008 uint(32) Bokeli

Kabola ya eloko na pixel

0x000c uint(32) Loyembo

Yebisa moke mabele ya bongo na pixele

0x0010 uint(16) Typ

Eloko ya mbala ezali koloba. Na yango, ekomi lokola bitmask:

  • 0x04 ezalaka na motema soki ezali na 1bpp-grafiki.
  • 0x40 ezalaka na motema soki ezali na grafiki oyo esengeli koyekola Windowing
0x0012 uint(16) Palete

Ekoteli, eloko ya palette oyo ekozala na motindo ya PRT

Esimbi ya PRT ekomaka ndenge ya bitmaps oyo esalaka na sprites. Bitmaps yango ezali kati na eloko moko, oyo bazalaka na yango mingi mpo na frame ya animation ya sprite.

Mokolo ya malamu ya biloko ezali na op2_art.BMP na esika ya jeu.
Mpo na nini esimbi ya bitmap yango ezali na (na ndenge ya malamu) RIFF-bitmapheader, ezali na litomba. Likambo ya nsima, Outpost 2 ekoki kosalela API ya système mpo na kolanda biloko ya grafiki, na ndenge oyo header yango ezali kozala na mombongo kasi na bibanda ya ndenge yango ekosangisa.

Mokolo ya pixeldata ezali na BMP-file na ebonga Offset + uint32-Offset, oyo ezali na BMP-file na adrese 0x000A (RIFF-bitmap-data offset), kasi ekosangisa na ndenge ya libanda ya likolo tolinga na likolo ya esika ya mbala.

Biloko ya monochrome 1bpp ekoki kokatisa na ndenge oyo: ezali na couleur 0, lukasa ya mpasi, mpe couleur 1 ekoki kosala kaka elanga ya sika/mokolo, mpo na biloko ya monochrome ezali kosalela mpo na sombra ya makambo na animations.

Nako ekoki ko seka na biloko mingi.

Module ya ba logements ya esika (Plymouth)

Mikano ya motion

Tango tozali na nini ya nkóko ya misala na kati ya ba Outpost 2 format ya ba données:
Ba animation.

Ba liste ya animation ebandaka na header ya global, oyo ezali mpo na verification ya données. Nde, ekokisaka ba définition ya animation, oyo ezali na nzela ya 3 niveau:

  1. Animation
    Animation ezali instance ya nsima; ezalaka ndenge ya animation ya unité, ya bâtiment to 'particule-animation' (coup de comète, temps, explosion) na esika ya seko.
  2. Frame
    Frame ezali eloko moko na kati ya animation. Animation ekoki kozala na frame moko to mingi.
  3. Subframe
    Subframe ezali information oyo ezali koloba ete bitmap moko ekosalema na nkini moko na esika moko ya frame. Frame ekoki kozala na subframe moko to mingi.

Nde, ezali na ba définition ya animation.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Mokolo ya ba-animation

Mbala nini ya bisika ya animation ezali na bango

0x0004 uint(32) Mokolo ya ba frames

Mbala nini ba frames nyonso ezali na yango?

0x0008 uint(32) Namba ya subframe

Mbala nini ba subframes nyonso bakoki kozala

0x000c uint(32) Nombolo ya ba-entrées ya optionnel

Na ndenge nini "bakaraka ya kotala" ezali na yango.

Animation

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0020 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(32) Ekombo te 1

Biloko ya malamu te

0x0004 uint(32) Bokengeli: Na ntango ya mabele

Eza na ntango ya liboso (na pixel) ya Bounding Box.

0x0008 uint(32) Bokeli ya nzoto: Malamu

Ezali komonanaka ya likolo (na pixel) ya Bounding Box.

0x000c uint(32) Bokeli ya masanga: Bato

Eyebisa moke (na pixel) ya Bounding Box.

0x0010 uint(32) Bokeli ya mabele: Banga

Oyo ezali kolakisa bokoko (na pixel) ya Bounding Box.

0x0014 uint(32) Offset: X

Eza na mokitani ya horizontal ya animation

0x0018 uint(32) Offset: Y

Eyebisa centre ya animation na nzela ya makasi

0x001c uint(32) Eza te 2

Ntina ya ntina te

0x0020 uint(32) Mokolo ya ba frames

Eloko na, ndenge ya animasyo ezali na bisika ya animasyo na yango

0x0024 uint(32) Ekombo ya Windows

Elenga ndenge nionso ya bafungoli oyo esengeli kozala na ngonga ya kosalela

Banzela ya sika, ya animation, ezali na makambo ya ntango ya liboso - Boundingbox elobeli ba koordina ya moke ya banzela ya motokisi/nganda, soki yango eseleki mpe ebandeli na nse ya elanga esengeli kosala.

Offset ezali kolanda "point zéro"; point oyo ebongi na ba koordina ya jeu, to kosuka. Okanisi na matema: offset elobeli awa koordina ya bantoma.

Banzela ezali, lokola offset, na (banzela nyonso) mibale ya 4 uint(32)-valeurs, ezali kolobela eteni oyo esengeli mpo na banzela ya subframes. Na sika ya banzela, soki eza mpo na bitmap, ekoki te kolanda.

Cadre

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(8) Nombolo ya subframe mpe Toggle ya Optional 1, 2

Ntángo oyo ezali na:

  • 0x7F (Bitmask): Ebandeli ya subframes oyo ezali na frame oyo
  • 0x80: Détails ezali mpo na soki Optional 1 na 2 ezali na
0x0001 uint(8) Ntango 1 na Toggle mpo na Optional 3, 4

Valor oyo ezali na:

  • 0x7F (Bitmasque): Eza na ntembe - Nalingi koloba na motema moke, ete ezali na ndenge ya gameticks, oyo elakisi, mpo na koleka, nsima ya frame ya mpona ekokisi
  • 0x80: Nzela ya koyeba soki Optional 3 na 4 ezali.
0x0002 uint(8) Optional 1

Te na zali na makambo

0x0003 uint(8) Kopolo 2

Te na zali na makambo

0x0004 uint(8) Optional 3

Te na zali na makambo

0x0005 uint(8) Optional 4

Te na zali na makambo

Subframework

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF karaktere
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Ntángo ya données Nkombo Bolanzo
0x0000 uint(16) Bitmap-Id

Ekoma yango, elobi soki bitmapi nini ekosala mpo na subframe oyo.

0x0002 uint(8) Ekombo te 1

Ezali na makambo te - nakosala na esengo, nakoki kokanisa ete ezali likambo ya priorite ya rendere (Z-Layer).

0x0003 uint(8) Subframe-Id

Ezali na ndenge ya kolakisa, na subframe nini tozali

0x0004 sint(16) Offset - Hozontal

Eyebisa ndenge ya kokota na kati ya frame, soki esengeli kobimisa subframe, to mpona ndenge mingi ya pixels oyo bitmap ekosengeli kokwea na nzela ya libanda.

0x0006 sint(16) Offset - Vertikale

Komi yango, wapi na kati ya frame subframe ekosengela koyekwa, to na mikolo mingi nini bitmap ekosengelaka kokende na likolo to na nse.

Na yango, tozali na possibilité ya kolakisa ba frames moko, mpe mpe animations nyonso, na ndenge ya koyeba, na ndakisa ya animation ya kitoko, animation oyo ezali na index 500, kolakisa

Animation 500

Animation 500 ezali kolanda ndenge ya Plymouth-transporteur, oyo ezalaka na errz ya ntina, ezali kokweya. Ezali moko ya ba-animation ya moke oyo ezali kosalela fonctionnalité ya Windowing.

Na ndenge wana, tokoki kobongola animation nyonso.
Mokoli, ezali na problème moko na likolo ya lades, mpo na bit oyo ezali na graphic type information ezangi koyekola.

Mpo na yango, ezali na ba sprite moko ebele, ya malamu koleka oyo ezali na jeu:

Rendering ya Animation 500 ezali komonisa

Animation 500 ezali kobongolama

Plymouth Édifice-Fabrique

Eden Port Spatial

Eden Centre Médical

SCAT

Plymouth Port Spatial

Easteregg:
Père Noël

Easteregg:
Dans Chien

Interface ya mosala

Ngai soki nasili, naino ezali ko zala na interface ya utilisateur ya jeu, oyo ezali na metal ya mbala-look.

Nani mpe epayi ya ntango, ezali komonana ete Dynamix asengeli te kosala libongo; na yango, ezali te kokanga nsima ya ba API ya User32 mpe GDI32 oyo Windows esengeli - malamu, ezali mpe kosalela gestion ya ressources ya User32.

Ezali na ndenge ya kokanga yango na programa lokola oyo Angus Johnson asalaki ndenge ya Freeware Resource Hacker, to - soki oza na Linux / Mac OS mpe otika kokoma na Wine - na ndenge ya kosala na icoutils oyo eza na wrestool.

Kombo ya fayl Nzela
Outpost2.exe Ezali kaka na ikoni ya jeu, oyo elakisi esika ya sika New Terra
op2shres.dll Ezali na mbala ya grafiki mpo na bitumbu lokola ba bordures, ba bouton, ba radio-button mpe ba checkbox, mpe mpe na ba fond ya dialogue, ba mpeki ya sika mpo na ba texte ya mission mpe grafiki ya fond ya menu ya liboso
out2res.dll Ezali na dekorasyon ya fenetre ya jeu, ba ikoni mpo na metali ya ndenge na ndenge mpe ya kitoko, ekangami ya likambo, ba grafiki mpo na dialogue mpe mbala mosusu ya grafiki ya cursor, yambo na ba animés na fichier ya jeu