Outpost 2 Stummoù Kinnig · bei.pm
Ar formatioù dastum skrid a zo en ur sell teknikel ouzh ar yezh dreist-holl eus Dynamix, Inc. ha Sierra Entertainment.
Ar yezh dreist-holl a zo hiziv en ur c'horf Activision Publishing, Inc.- / Activision Blizzard, Inc. ha hiziv e vez en Besitz gant Microsoft Corp..
An titouroù a zo bet aozet dre Reverse Engineering ha Datenanalyse evit ar soñj da archive ha da zerc'hel gant titouroù istorel.
N'eo ket bet implijet spekulioù privat pe kelenner.
Ar c'hoari a c'haller prenañ hiziv e gog.com evel ur download.
Ar reolennenn d'ober an danvez-mañ a ziskouez ma c'hloazenn war ar formaoù donedigez e-barzh ar jeu stratezh e-leizh "Outpost 2: Divided Destiny", a zo bet publiket e 1997 gant Sierra ha krouet gant Dynamix.
Me a zo bet o labourat evit an arsel da c'houde d'ar 01 a viz Du 2015 betek ar 14 a viz Du 2015, o labourat dreist-holl war an danvez eus ar jeu - ha penaos e vez implijet.
Evel ma'z eus bet ar c'houlennoù a c'houlenner, a zo bet kavet gant Dynamix - evel ma'z eo an darn vrasañ eus ar c'henstrolloù komerciel - n'eo ket bet krouet ar formaoù donedigez evit Outpost 2 hepken, met ivez implijet e broioù all evel ar rummad Mechwarrior (d'ober c'hoazh).
An eil, e c'heller lavarout ivez ez eo krouet an avañtur a zo e formaoù donedigez en ur c'houzañv an arouezioù peogwir e vez implijet ar reolenn a greiz an amzer a zo e gredenn JFIF ha RIFF.
Evitañ ar pennadoù ha ar formaoù donedigez, ez eus titourioù all da gaout war Petra eo petra?.
An danvez a zo lañset da vezañ anavezet evel Little Endian.
Da fin, e c'heller lavarout ez eo bet plijus bras an Reverse Engineering, e pegen e ne c'hall ket bezañ termaet.
Of course, e c'hello din ivez kelaouiñ da c'houzout e rankit mont da c'hoari ar jeu e-unan, abaoe e ro plijadurioù interesus.
Enskrivadur
Ar formadoù data a vez implijet gant Outpost 2 a zo un dazont a JFIF / PNG - an data bloaz a zo tost d'an 8 Byte Header. Setu e vank din da dokumentiñ an headeroù spesifik en o lec'h, ha ne dokumentin nemet an divergentioù.
Ar format a zo da gaout da c'hortoz ; an data gwirion a zo ennañ:
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Krouidigez Koadennoù | Ennañ an информацию diwar-benn petra a c'hortoz er blok data követant. Gwirionnoù known:
|
0x0004 | uint(24) | Kargadur-bloc | Aotrenner an ar goulennoù diwar-benn pe ouzhpenn (e Byte) eo an dachenn don-mañ. Setu, ar data gwirion a zo komprenet - n'eo ket ennañ an 8 byte a zo e-header. |
0x0007 | uint(8) | Bannielioù? | N'eo ket anavezet petra eo an dorn-mañ e gwirionez. En ar volumioù, an niver-mañ a vez dieub 0x80, e raktres all a vez dieub 0x00. Talvoudekaet ez eus e c'hallfe bezañ un dorn a flagoù. |
Kozhioù
Ar volummen a zo ur c'hontener data evit ar c'hoari, e gwirionez evel ur furm arkhiv, evel ar Tarball da skouer. En Outpost 2, ar furm a zo ken ar c'hwezhioù peurliesañ - n’eo ket ur c’hast. Ne glever ket, met gallout a ra an holl re-se bezañ simulet dre an anvioù file a ziskouez.
Ur volum a zo enni ar head volum hag ur bern blokioù volum, a zo anvet d'an fichioù resis.
"Volummen" eo ar fichioù gant ar fin 'vol'
er c'heflusker c'hoari.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 56 | 4f | 4c | 20 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | V | O | L | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Fichioù Hud | |
0x0004 | uint(24) | Kresk an blok | |
0x0007 | uint(8) | Bannielioù |
Pennad Volum
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 68 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | h | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Fichioù Hud | |
0x0004 | uint(24) | Kresk an blok | |
0x0007 | uint(8) | Bannielioù |
An Trezel Volume ne ra ket an draoù implij.
E servij da vezañ ur c'hlok.
Er gentañ data e-barzh an Trezel Volume e c'hall bezañ an Trezel Volume; goude-se e c'hall bezañ an titouroù diwar-benn an Trezel.
Mennoù Volom
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 69 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | i | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Fichioù Hud | |
0x0004 | uint(24) | Kresk an blok | |
0x0007 | uint(8) | Bannielioù |
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 73 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | s | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Fichioù Hud | |
0x0004 | uint(24) | Kresk an blok | |
0x0007 | uint(8) | Bannielioù | |
0x0008 | uint(32) | Kantad an payload | Indiquez penaos many bytes a zo a-dreuz ar data-mañ a zo gwir da vezañ data implijet. Ar re all, ar re a chom er listenn volumañ, a zo a-wezhioù da vezañ klevet evel garbage. Er fileoù a zo en un amzer diwezhañ, an 'data a chom' a zo 0x00, a c'hall bezañ un doare da c'houlenn a zo gant an droidigezhioù a-bouez en amzer a zo bet boulc'het ar c'hoari, da lâret eo, ne c'hell ket bezañ a ra an implij a zo graet evit ar bufferioù, abalamour ne c'hall ket bezañ a dra pe a dra, ma 'z eo ar data a zo bet implijet pe n'eo ket. |
0x000c | uint(8)[] | Lizenn an anvioù furmadoù | Setu un listenn 0-Byte-terminet eus anvioù file, a zev an ASCII-berzhioù nemetken - e-lec'h ma vez ar stumm data-mañ. N'eus ket ezhomm da welet re ziouer ar blok data-se pa vez parseet, abalamour ma vez an offests eus an anvioù file graet diouzh ar goulennoù voluma. |
Evit ar Volume Strings ez eus ur Lusenn eus an anvioù file, a zo e-barzh ar volume -se.
Informations diwar ar volom
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 69 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | i | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Fichioù Hud | |
0x0004 | uint(24) | Kresk an blok | |
0x0007 | uint(8) | Bannielioù |
Ar c'halonennioù voluma a gemer titouroù diorren eus ar c'hentañ. Setu, ez eus ouzhpenn ur seurt evezhiadenn FAT (FAT = File Allocation Table).
Ar niver a c'hastadoù a c'hwitet a zo divizet gant ment ar blocioù a ro ur c'hlok evit an orinenn - 14 Byte.
Ar c'hastadoù an orinenn a zo gant an doare da-heul :
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Anv ar ficherioù-Offset | Ro anavez pe e peleh 'offset' (!) e barzh al listenn an anvioù (Volume-Strings) e vez kavet an anv ar bajenn. Hag e vez liammet ouzh penn ar bloc dataoù. |
0x0004 | uint(32) | Ofis ar restr | Diskouez a ra peseurt offset a zo e-barzh ar volumed-file a-bezh ma'z eo ar file. |
0x0008 | uint(32) | Brasserezh ar fayl | Indik ar mod, penaos eo bras ar furm en byteoù. |
0x000c | uint(16) | Bannieloù? | Diskouez a ra diskulioù ouzhpenn diwar-benn kodenn ar ficher.
|
Blok Volum
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 56 | 42 | 4c | 48 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | V | B | L | H | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Fichioù Hud | |
0x0004 | uint(24) | Kresk an blok | |
0x0007 | uint(8) | Bannielioù |
En un blok volume ez eus ur c'hontener, ma vez ezhomm an amzerioù. Eñ a zo ennañ un nebeud - abalamour d'ar format blok - an tu d'ober ouzhpenn ha goude-se e vez kaset an dataoù implijet.
Tileoù
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 42 | 4d | 50 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | B | M | P | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Bytes Magic | |
0x0004 | uint(24) | Kresk-vezh | |
0x0007 | uint(8) | Mammennioù |
Ar Tiles a zo ur format grafik Bitmap spesifik da Outpost-2. Emañ int o taol e 13 Tilesets,
"e;wells"e; anvet (well0000.bmp
betek well0012.bmp
),
kaer e-barzh ar volum maps.vol.
E-touez an Tilesets / Wells ez eus ar pezh-mañ :
Anv | Ensavad |
---|---|
well0000.bmp | Ur grafik vras 32x32px, glas - mat evit teskañ ma'z eus ar loader-ruz e-barzh |
well0001.bmp | Ur grafik gant roc'h sklaer, menezioù war roc'h sklaer hag un niver a varioù eus kraterioù en roc'h sklaer |
well0002.bmp | Ur grafik gant 'Doodads' roc'h sklaer - se an elfenn, a c'haller lakaat evit digreskiñ (pe da zistreiñ, evel miriadoù) war roc'h sklaer, goude-se ur vegetation |
well0003.bmp | Ur grafik gant ur struktiur krustenel war roc'h sklaer |
well0004.bmp | Ur grafik gant roc'h du, menezioù war roc'h du hag un niver a varioù eus kraterioù en roc'h du |
well0005.bmp | Ur grafik gant 'Doodads' roc'h du - se an elfenn, a c'haller lakaat evit digreskiñ (pe da zistreiñ, evel miriadoù) war roc'h du |
well0006.bmp | Ur grafik gant ur struktiur krustenel war roc'h du, ha troioù etre roc'h sklaer ha du |
well0007.bmp | Ur grafik gant lava, gant 4-5 framioù anim da gentañ |
well0008.bmp | Ur grafik gant melen ha un niver a varioù eus kraterioù en melen |
well0009.bmp | Ur grafik gant 'Doodads' melen - se an elfenn, a c'haller lakaat evit digreskiñ (pe da zistreiñ, evel miriadoù) war melen |
well0010.bmp | Ur grafik gant 48 tro evit melen da roc'h sklaer ha du |
well0011.bmp | Ur grafik gant kaperioù polar ar map, gant roc'h du evel douar |
well0012.bmp | Ur grafik gant kaperioù polar ar map, gant roc'h sklaer evel douar |
Ez eo ar c'hinnig da vont war-raok evit un implij mat, na raet ket an tiles en un doare a-raok evit en em c'hast, abalamour ma 'z eo ret labourat ouzh an donnadoù evit ar c'hloz/hañv - ha kalz kalz a donnadoù a c'hallfe bezañ.
Ar tiles a zo grafik 8bpp gant ur palette indexet en 32x32 pixel, a zo kejet a-berzh. E kement tileset a c'hall bezañ muioc'h.
Ar prantad pennañ a zo kempennet e 2 rumm: head
ha data
.
Teuliad Arzhur
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Bytes Magic | |
0x0004 | uint(24) | Kresk-vezh | |
0x0007 | uint(8) | Mammennioù | |
0x0008 | uint(32) | Version / Gloioù? | Gwelet a reer e c'hall bezañ un teulioù diwar an doare format; er holl oberennoù a zo ennon, e oa ar value |
0x000c | uint(32) | Ledan (Awenadur horizontal) | Diskouez a ra penaos eo bras an dachenn skeudenn (er pixel). Er pobloù a-bouez e Outpost 2 e vefe da gortoz an niver |
0x0010 | uint(32) | Uzh (Uzh an vertikal) | Diskouez a ra penaos uhelañ eo ar file skeudenn (e pixel). En holl wells eus Outpost 2, ez eo da gortoz ar value |
0x0014 | uint(32) | Pezhioù liv? | Ar frouezh-mañ n'eo ket anavezet. Ma'z eus en holl fichierioù dizoloet an danvez |
0x0018 | uint(32) | Dibab liv 2? | An n'ezhomm ket gouzout petra a dalv an dra-se. Gallout a rae bezañ ul 'ziel'-lennad-kolor. |
Ar wech-mañ e vo un file palez en format RIFF d'an doare standard. An droidigezh resis a weler - evel ma aparez an paletoù el lec'hioù all - en Paletoù.
Donnees Tiles
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Bytes Magic | |
0x0004 | uint(24) | Kresk-vezh | |
0x0007 | uint(8) | Mammennioù |
Enfin, e teulet ar data pixel, eus an tu glaz-ugent, liammet e linenn da dreuz d'ar re diavaez.
Ar gwerz data e-barzh ar grafikoù a vez 8bpp-Bitmaps, a c'hortoz ar renk e palet renk.
Ar c'henstroll gêm a c'hlod ar tiles *nebeud* en demand.
Se a ra da c'hortoz a-ratozh an deiz ha noz, gant 32 rannañ tiles disheñvel. E giz-se, e c'haller goulenn 'un tamm' diwar ar gwerzh-digoriñ. N'int ket bet gouest da glask ar gwerzhoù sur, klask a ran war ar rummad kinnig
v *= (daylight / 48) + 0.25;
gant ar data HSV eus an pixel, ma 'z e daylight ur gwerz a 0-31 ha v ur gwerz etre 0-1. Hag ivez, e ranker sellet ouzh an aod, ma'z eus ur moud 16 tiles d'ober dindan da zevezh ha d'ar reter (a servij da spawne an unednoù a zo en disheñvel).
Agrenn ouzhpenn, e c'haller sellet ouzh an deiz ha noz, a oar dre ar c'henstroll gêm, da lavarout e c'haller hepken un archer a map da zevel.
Ur c'henstroll deiz ha noz gellout da vezañ evel-se :
PRT
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 43 | 50 | 41 | 4c | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | C | P | A | L | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Magic Bytes | |
0x0004 | uint(24) | Kamm-dreuzh paletenn | Roet, e-lec'h ar stumm blok urzh, an niver a paletenn a c'hall bezañ kavet er file-mañ - nann an hirder ar blok e byte. |
0x0007 | uint(8) | Bannielioù | Mar a zo da c'houzout, Flagioù. N'eus ket a Flagioù a zo gouestlet din ; abalamour ma n'eus nemet ar c'hontroloù a zo |
Penaos e c'haller deskiñ petra eo ar PRT
a zo, n'am eus ket soñj; gallout a ra bezañ 'Palette ha Ressource Table' - abalamour ma'z eo ar fichiers-mañ - kavet evel op2_art.prt e maps.vol - ur pezh a zo, pe evit aozañ e c'hallfe se zo ur sklaerenn gwelloc'h.
Ar ficher-mañ a zo ur roll paletten, ur tabel diwar-benn an bitmap all a zo implijet, an holl enskrivadurioù animatiñ, ha setu ivez un niver a donderioù anvet. Emañ o vevañ e-barzh ar format kontener diazezet, abalamour n'eus ket an holl resisadurioù a vev e se sistem.
Ar strollad CPAL
(a c'hall bezañ e vret 'paletten-kontener') a zo unan a gaver nemet paletten, o kinnig penaos 'zo 1052 byte-bras 8-bit paletten' a zo amzer.
Ar c'hontrol 1052 byte n'eo ket ur c'hontrol da zerc'hat, abalamour ma c'hall ar format paletten bezañ disheñvel. Eo anveet mat evit ar stumm data, ma vez roet Outpost 2.
Glaz ouzh ar roll paletten, e-lec'h ma c'haller deskiñ ur pennad kinnig, kavet e teu da vevañ d'ar roll bitmap; ar roll animatiñ a zeu ivez a-raok.
An daou a vez digoret gant un uint(32) (pe c'hoazh uint24+uint8 flagoù?) o kinnig an niver a resisadurioù.
Paletoù
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 50 | 41 | 4c | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | P | A | L | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Kadorioù Mistiche | |
0x0004 | uint(24) | Pellenn paletenn | Ro an niver a paleted er file-mañ - nann an hirder bloc'h en byte - en ur glask ouzh ar format brokus. |
0x0007 | uint(8) | Stellennadoù | Mar plij, evel just, Flagoù. Me n'out ket o klask Flagoù; rak an holl vautoù am eus soñjet a zo |
Ar gounidoù palet a zo sklaer da c'houlenn.
Eo eul liamm etre ur pennad hag ur segmant data.
Heder Paletten
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Kadorioù Mistiche | |
0x0004 | uint(24) | Pellenn paletenn | Ro an niver a paleted er file-mañ - nann an hirder bloc'h en byte - en ur glask ouzh ar format brokus. |
0x0007 | uint(8) | Stellennadoù | Mar plij, evel just, Flagoù. Me n'out ket o klask Flagoù; rak an holl vautoù am eus soñjet a zo |
0x0008 | uint(32) | Pajenn format palet? | A vije desket pe seurt verzion paletenn a ra an palet. Seul paletenn Outpost2 a zo da gentañ gant verzion |
Donnezen Paletten
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Kadorioù Mistiche | |
0x0004 | uint(24) | Kresk-liennoù | |
0x0007 | uint(8) | Stellennadoù |
Ar section data a gemer al lec'hioù pallet disheñvel. Ar niver a lec'hioù pallet a zeu eus an hirder block / 4.
Ar c'hwi a lec'hioù a zo gant an tiod kinniget-mañ ;
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | 04 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(8) | Ruz-komponent | Roet a ra an delennoù ruz eus ar couleur |
0x0001 | uint(8) | Kembrez-berzh | Roet an divod gwen an liñsan |
0x0002 | uint(8) | Komponent bleu | Ro an delennoù glas eus ar renk |
0x0003 | uint(8) | Dianav - Lakaoued? | Ne c'houzañv ket petra a dalv ar vale-mañ, abalamour ma'z eo d'an doare |
War an ar paletenn, ne ve ebet da lavar, ez eo an arouezioù da c'houzout evit paletenn an animadoù :
- Ar renk kentañ zo DIBAB transparant, pegen ma 'z eus ur value ebarzh.
-
Ar paletenn-kas 1-24 a vez desket evel liv ar c'hleñved en ar paletenn 1-8.
Pehini a zo ar livioù a zo dirak c'hleñved 1, ne 'z eus ket aoun din.
Me a gred ez eo an livioù re rest hardcoded.
Bitmapoù
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Largenn kempredet | Roet eo an ledander ar rigoù data pixel e bita - abalamour ma'z int iziliñ d'ar reolen 4 bita. Hag eo aes da ziskouez ur rigoù disheñvel. Perak e vez stummet ar vau-mañ en ur mod disheñvel, pa c'hallfe bezañ kempennet, ne vank ket a dug. |
0x0004 | uint(32) | Offset | Rag aozañ an offset ar rumm kentañ er bitmap |
0x0008 | uint(32) | Uhelder | Roet an uhelder azhioù an ulioù en pixel |
0x000c | uint(32) | Larged | Roaz an ledander ar skeudenn en pixelioù |
0x0010 | uint(16) | Typ | Diskouez a ra an doare eus ar skeudenn. Amañ e kavan an dudi a c'hall bezañ ur bitmask:
|
0x0012 | uint(16) | Palette | Diskrivit, peseurt palet a zo da implijout eus ar PRT-file |
An d'data-struktur PRT-file-mañ a ziskouez penaos eo bet sevel ar bitmaps a vez implijet evit ar sprites. Ar bitmaps-mañ a servent andid as ur ranndi, diwar bennañ e c'hall bezañ meur a re a ziskouez ur framm animatour evit ur sprite.
Ar data skeud a zo ennañ e
op2_art.BMP en doa ar c'hargad.
Penaos e c'hall ar BMP-mañ bezañ ganti un (furchal a-us) RIFF-Bitmap-header,
n'eo ket sklaer. Posubl e c'hall outpost 2 implij ar system-APIs evit kargañ ar skeudennoù,
evel ma vez ouzhpennet ar header-se diouzh an amzer hag ar c'hardadoù a c'hell bezañ adstummat.
Ar data pixel a zo en BMP-file a zo er plac'h Offset + ar uint32-Offset, a c'haller kavout en BMP-file en adres 0x000A (RIFF-Bitmap-data-offset), ha d'ober ur roll a zeus e kêr a zo a-benn ar c'houlz a-drugarezh a-hed a-hend-all.
Grafikoù monochrom 1bpp a c'hall bezañ skignet evel ma vez ar liv 0 ur transparence holl, hag ar liv 1 ur c'hwezh transparant du/gwenn, abalamour ma vez implijet ar grafikoù monochrom da gentañ evit ar shadows karr hag ar savadurioù en animatiñ.
Dre-se e c'haller krouiñ meur a skeudenn.
Animadegoù
Bremañ e teuomp da rumm ar c'hentañ ezhomm en divizionoù e-barzh formatoù donedigezh Outpost 2:
Ar c'hinnig.
Ar rolloù kinnig a zeu gant ul pennad global, a zo arveret evit gwirioù an data, a gendalc'h. Goude-se e teu ar c'hinnig konkrid, a zo un doare da treiñ e 3 ranniñ:
-
Kinnig
Ur c'hinnig a zo ar rummad uhelañ; e kinnig c'hinnig ur unité, un ti pe ur 'kinnig partikel' (dilud, amzer, explozion) e un doare resis. -
Frame
Ur frame a zo un d'image unvan e-barzh ur c'hinnig. Ur c'hinnig a c'hall bezan ul frame pe meur a frame. -
Subframe
Ur subframe a zo an titouroù diwar-benn penaos e rank un bitmap resis bezañ skignet e un doare resis e un doare gentañ ur frame. Ur frame a c'hall bezan ul subframe pe meur a subframe.
Goude-se e teu an diforc'hioù kinnig klasket.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | Niver an emgefrezhioù | Pegeit a zo d'ober gant ar c'henwerzhioù animasion |
0x0004 | uint(32) | Niver ar c'hadennadoù | Pe hoeveel a rae bezañ a-bezh |
0x0008 | uint(32) | Niver ar subframes | Pegeit subframes a zo da vezañ e total |
0x000c | uint(32) | Niver an dorioù dibar | Pe combien a zo "dizoloioù dibar" e-barzh. |
Animadur
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(32) | An dorn 1 | Inforzhioù an nann-anv |
0x0004 | uint(32) | Kuzhadoù Danvez: Liennoù | Kas ar c'hentañ kleiz (e piksel) eus ar Bounding Box. |
0x0008 | uint(32) | Kalon Pemp: Uhel | Roñ ouzh ar penn kentañ uhelañ (e piksel) eus ar Bounding Box. |
0x000c | uint(32) | Kuzh-vurzh: Leston | Roaz an lartadoù (e piksel) an Bounding Box. |
0x0010 | uint(32) | Teuliad: Uhelder | Roer ar uhelder (en Pixel) eus ar Bounding Box. |
0x0014 | uint(32) | Aotret: X | Ro d'an dañv kentañ horizontal eus an animadur |
0x0018 | uint(32) | Offset: Y | Diskouez ar c'hreiz vev a-benn an animadur |
0x001c | uint(32) | Anar 2 | Infos an n'eus ket bet klevet |
0x0020 | uint(32) | Niver ar c'hadennadoù | Roet e vez, petra o devez ar framoù animadur er animadur-mañ |
0x0024 | uint(32) | Niver Windows | Diskouez perzhioù an niver a venestr a vo implijet pa vez stummet |
Ar data eus ar c'hentañ rumm, ar c'hendiviz, a zo alies data administrativ - Ar Boundingbox a zav da c'hwiadenn ar c'hordenn autour an dachenn/kevrenn, pa vez an dachenn-se dibabet ha kinnig a ra ivez petra a c'hall bezañ kliked.
Ar Offset a ziskouez alies an "poull gentañ"; ar poull a c'hall bezañ adkavet evel-just pe adkaozet war ar c'hordennioù er jeu. Gallout a ra bezañ lavaret mathematically : ar Offset a zav da c'hwiadenn ar kordennenn.
Evit ar Windows, e vez ivez, evel ar Offset, 4 uint(32)-vleadoù evit pep Window, a ziskouez un dachenn a c'hall bezañ implijet evit subframes disheñvel. E-keit ma ne vez ket ur c'hardad kinniget evit ar Bitmap, ne c'hall ket sevel e-barzh ar Windows.
Fraj
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(8) | Niver an subframe ha Toggle evit Diblant 1, 2 | Ar c'hant-mañ a zo:
|
0x0001 | uint(8) | Anav 1 ha Toggle evit Optional 3, 4 | Arc'hant-mañ a zo:
|
0x0002 | uint(8) | Dibabit 1 | Anav |
0x0003 | uint(8) | Dibabit 2 | Anav |
0x0004 | uint(8) | Opsioun 3 | Anav |
0x0005 | uint(8) | Dibabit 4 | Anav |
Subframe
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | karakter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Dibab | Tipez data | Anv | Evezhiadenn |
---|---|---|---|
0x0000 | uint(16) | Id Bitmap | Rannit petra bitmap a vo implijet evit ar subframe-mañ |
0x0002 | uint(8) | An dorn 1 | Ne ouzer ket - met me a c'houlenn kalz, ez eus a blijadur da skrivañ diwar-benn ur priotizadur render (Z-Layer) a zo amañ. |
0x0003 | uint(8) | Subframe-Id | Roet a ra ez eus e pelec'h e vezomp er subframe |
0x0004 | sint(16) | Offset - Horzhevel | Diskouezit e lec'h ma vo lezet an subframe e-barzh an frame, pe penaos e vefe kaset ar bitmap da greun e-kerzh ar pixelioù |
0x0006 | sint(16) | Offset - Vertikal | Diskouezit e-lec'h ma 'z eus pal an subframe er fram, pe penaos e vez karget an bitmap er c'hwezh dre vras. |
Ma c'hallomp bremañ sevel frammoù disheñvel, ha ivez animioù komplekse, da skouer da ur animadur tomm, an animadur gant an Index 500, diskouezet.
Animasion 500
Animation 500 a montret penaos e vez degaset un Plymouth-Transporter, leun a-berzh a draoù biasa, ha kaset e-barzh. Setu un doare eus ar few animadoù a implij an aozadur Windowing.
Ha setu penaos e c'haller krouiñ an animation a-bezh.
Helañ, ez eus c'hwezhioù gant ar c'harnioù uhelañ, abalamour ma n'eo ket bet setu ar bit a-bouez er gouelenn grafik.
Setu c'hwezh a-wech all, animadoù splann a zo er c'hrog:
Kaozeadenn Implijout
Bremañ e vez ezhomm ar c'hontrol-implij eus ar c'hoari, hag a zo en un metal furmet-displeg.
Penaos, ivez e vez diskouezet n'eo ket ret d'ar Dynamix en em c'hrouiñ ar c'halz; n'eo ket sioul an tu d'ober gant ar c'hontrolioù User32 ha GDI32 a ro Windows - brasañ a-wezhioù e vez implijet an doujañs war ar jodioù eus User32.
Adalek an dra-se, e c'haller da skouer, dre ober gant ar programm Resource Hacker a zo bet krouet gant Angus Johnson evel ur Freeware, pe - ma 'z oc'h o klask implij ar Wine e Linux / Mac OS - dre ar wrestool a zo en icoutils.
Anv ar file | Konteniñ |
---|---|
Outpost2.exe | En deus nemet ar icon eus ar c'hoari, a ziskouez ar stummoù o c'hortoz New Terra |
op2shres.dll | En deus, du-hont, ar grafikoù evit ar c'hontroled, evel ar frammioù, ar boutonioù, ar radio-boutonioù hag ar checkboxioù, ivez ar c'houskioù diabarzh, ar skeudennoù a lakar en istor-mission ha ar grafikoù diabarzh evit ar menu-bras |
out2res.dll | En deus ar dekor ar fenestr a-hed ar c'hoari, ar iconioù evit metal biasañ ha spesial, ar skeudenn kargañ, ar grafikoù evit ar c'houlzioù, ha furcher grafikoù cursor all, ouzhpenn ar re animet e-barzh ar roll c'hoari |