Outpost 2 Ụdị Faịlụ · bei.pm

Aha a bụ ederede a kwadoro site na OpenAI GPT-4o Mini.

Ụdị faịlụ e kwuru na ibe a dabere na nyocha teknụzụ nke ihe onwunwe nke Dynamix, Inc. na Sierra Entertainment.
Ihe onwunwe a bụ akụkụ nke Activision Publishing, Inc.- / Activision Blizzard, Inc.-mass na ugbu a n Owned by Microsoft Corp..

A na-ejikwa ozi a na Nhazi Nzọụkwụ na Analụ Ntụle maka ebumnuche nke ịchekwa na ịrụ ọrụ ọnụ na data akụkọ.
E nweghị ihe ọmụma pụrụ iche ma ọ bụ nke nzuzo eji.

A na-enweta egwuregwu a ugbu a na gog.com dịka nbudata.

Artwork nke egwuregwu

Nke a bụ ihe ndị edere na akwụkwọ a na-egosi nghọta m banyere ụdị data na egwuregwu atụmatụ oge "Outpost 2: Divided Destiny", nke Sierra si na 1997 kwụsịrị na Dynamix mepụtara.

M soro na nyocha nke data nke egwuregwu a site na 01 Novemba 2015 ruo 14 Novemba 2015.

Dị ka ozi m chọpụtara, Dynamix - dịka ọtụtụ ụlọ ọrụ azụmahịa - emepụtaghị ụfọdụ ụdị data kpọmkwem maka Outpost 2, kama jiri ha na mmepe ndị ọzọ dịka usoro Mechwarrior (nke a gbanwere).
Maka na nke a, a na-achọpụta na ike ọhụụ nke ụdị data na-adịkarị n'ala ma na-adaberekarị na echiche ndị ogologo oge sitere na ụdị a na-ahụkarị dịka JFIF na RIFF.

Iji tụlee tebụl na ụdị data, enwere ozi ndị ọzọ dị na Kedu ihe bụ ihe? dị.
Data ndị a akọwapụtara ebe a bụ nke a na-ahụkarị dị ka Little Endian.

N'ikpeazụ, enwere ike ikwu na mmegharị azụ na-enye ọṅụ nke ukwuu, ọbụlagodi na ọ bụghị zuru ezu.
O doro anya na m ga-akwado ịkpọ egwuregwu ahụ n'onwe gị, n'ihi na o nwere usoro egwuregwu na-atọ ụtọ.

Bido

Ụdị data nke Outpost 2 ji arụ ọrụ nwere ụdị ihe yiri JFIF / PNG - ihe ndị dị na data nwere akwụkwọ ozi 8 Byte na-ahụkarị. N'ikwu ya n'ụzọ dị mfe, a gaghị m edegara akwụkwọ ozi ndị a na ebe ha kwesịrị ịdị, kama m ga-edekọ naanị mgbanwe ndị ọ bụla.

Ụdị ahụ bụ n'ozuzu ya; data ndị a na-eji eme ihe dị na ya:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Ngwongwo

O nwere ozi gbasara ihe a ga-atụ anya na blọkụ data na-esote.

Ụdị ndị a ma ama:

  • 0x204C4F56 ('VOL '):
    Volume
  • 0x686C6F76 ('VOLH'):
    Volume-Header
  • 0x736C6F76 ('VOLS'):
    Volume-Strings
  • 0x696C6F76 ('VOLI'):
    Volume-Informationen
  • 0x4B4C4256 ('BLCK'):
    Volume-Block
  • 0x504D4250 ('PBMP'):
    Grafikdaten
  • 0x4C415050 ('PPAL'):
    Farbpalette
  • 0x4C415043 ('CPAL'):
    Farbpaletten-Container
  • 0x64616568 ('head'):
    Header
  • 0x61746164 ('data'):
    Nutzdaten
0x0004 uint(24) Ogologo Blọk

O nwere ozi gbasara etu ukwuu (na Byte) blọk data na-esote si dị.

Nke a bụ naanị data nke a na-eji - a naghị etinye 8 Header-Byte n'ime ya.

0x0007 uint(8) Mkpụrụ旗?

Amaghị ihe blok a kpọrọ na-eme.

N'ịdị ndị a, ọnụ ọgụgụ a na-adịkarị 0x80, na faịlụ ndị ọzọ na-adịkarị 0x00. Nke a na-egosi na ọ bụ set nke flag.

Ngwugwu

Volume bụ akpa data maka egwuregwu, dị ka ụdị nchekwa data dịka Tarball. Ọ dịkarịa ala na Outpost 2, usoro a na-ahụ naanị faịlụ - ọ bụghị folda. O yikarịrị ka a ga-eji aha faịlụ kwesịrị ekwesị mee ihe a ga-ahụ.

Volume nwere isiokwu Volume na ọtụtụ akụkụ Volume, nke na-anọchite anya faịlụ ndị a kpọrọ akpọrọ.

"Volumes" bụ faịlụ nwere njedebe 'vol' na ndabere egwuregwu.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Bytes
0x0004 uint(24) Obosara ogologo
0x0007 uint(8) Ekwentị

Isi nke Volume

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Bytes
0x0004 uint(24) Obosara ogologo
0x0007 uint(8) Ekwentị

Volume Header anaghị ewere data ọ bụla.
O na-arụ ọrụ dị ka otu akpa.

Na mbụ data dị na Volume Header kwesịrị ịbụ Volume Strings; nke a na-esochi ozi banyere Volume.

Ogwe Ọrụ

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Bytes
0x0004 uint(24) Obosara ogologo
0x0007 uint(8) Ekwentị
Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Bytes
0x0004 uint(24) Obosara ogologo
0x0007 uint(8) Ekwentị
0x0008 uint(32) Ibu Onye Mbata

Na-egosi otu nọmba Bytes nke data ndị a bụ data bara uru n'ezie.

Data ndị fọdụrụ na ndepụta nke Volume-Strings bụ doro anya na a ga-atụle ha dịka garbage.

Na faịlụ ndị nwere ụbọchị ikpeazụ, data ndị a 'fọdụrụ' bụ 0x00, nke nwere ike igosi na e nwere nsogbu na toolchain n'oge mmepe nke egwuregwu ahụ, nke pụtara na onye mmepe jụrụ ijide n'aka na a haziri buffers nke ọma, n'ihi na enweghị mmetụta na egwuregwu ma data ahụ bụ nke a haziri ma ọ bụ na ọ bụghị.

0x000c uint(8)[] Ndepụta Aha Faịlụ

Nke a bụ ndepụta nke aha faịlụ nke nwere 0-byte terminus, nke na - ọ dịkarịa ala n'ime akụkụ ndị a na-enye data - na-echere naanị ASCII akara.

Ọ dịghị mkpa iji nyochaa data a nke ọma mgbe ị na-eme parsing, n'ihi na n'ime ozi ndị dị na volụm, a na-ezo aka kpọmkwem na offsets nke aha faịlụ.

N'ịbụ Volume Strings, ọ bụ ndepụta nke aha faịlụ nwere ịnọ n'ime volume ahụ.

Ozi banyere Volume

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Bytes
0x0004 uint(24) Obosara ogologo
0x0007 uint(8) Ekwentị

Thông tin Volume na-ewepụta ozi ndị ọzọ gbasara faịlụ. Nke a bụ n'ụzọ ụfọdụ ụdị FAT ndebanye aha (FAT = File Allocation Table)

Ọnụ ọgụgụ faịlụ na-apụta site na size block kewara site na ogologo ndebanye aha - 14 Byte.

Ndebanye aha dị iche iche nwere usoro ndị a:

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Aha faịlụ-ndabere

Na-egosi na nke a bụ offset (!) n'ime ndepụta aha faịlụ (Volume-Strings) ebe aha faịlụ nke faịlụ ahụ nọ.

Na-ezo aka na mmalite nke blọk data eji.

0x0004 uint(32) Faịlụ-Offset

Na-egosi ebe nke ahụ dị n'ime faịlụ nke volume niile.

0x0008 uint(32) Nha faịlụ

Na-egosipụta otú nnukwu faịlụ ahụ si dị na byte.

0x000c uint(16) Akwụkwọ nsọ?

O yiri ka e nwere ozi ndị ọzọ gbasara njikọ faịlụ.

  • 0x03 na-edobe, ma ọ bụrụ na faịlụ ahụ bụ nke a na-emechi. Ebe a, a na-eji osisi Huffman eme ihe.
  • 0x80 na-adịkarị mgbe niile.

Ọkpụrụkpụ Volume

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Bytes
0x0004 uint(24) Obosara ogologo
0x0007 uint(8) Ekwentị

Na volume block bụ akpa, nke na-anata faịlụ. O nwere naanị otu oge ọzọ - n'ihi usoro block - na-eme ka ihe faịlụ ahụ nwee ndabere na n'ikpeazụ, data ndị a na-eji ya na-esochi.

Nkụkụ

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 50 42 4d 50 -- -- -- -- -- -- -- -- -- -- -- -- P B M P . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Byte
0x0004 uint(24) Ogologo Block
0x0007 uint(8) Akwụkwọ mkpụrụedemede

Tiles bụ ụdị Bitmap eserese akọwapụtara maka Outpost-2. Ha na-agbaso Tilesets 13, a na-akpọ ha "wells" (well0000.bmp ruo well0012.bmp), nke dị n'ime volium maps.vol.

Tilesets / Wells nwere ihe ndị a:

Aha faịlụ Ọtụ
well0000.bmp Ihe oyiyi dị 32x32px, na-acha anụnụ anụnụ - dị mma dịka nnwale, ma ọ bụ ihe na-egosi ma ọ bụrụ na onye ọrụ nwere ihe na-ebupụta ya
well0001.bmp Na-enwe nkume ọkụ, ugwu na nkume ọkụ na ọtụtụ ụdị ihe mgbaàmà na nkume ọkụ
well0002.bmp Na-enwe 'Doodads' nke nkume ọkụ - ya bụ, ihe ndị a na-etinye na nkume ọkụ maka ịme ka ebe ahụ dịkwuo mfe (ma ọ bụ n'ikpeazụ dịka usoro, dịka mgbidi) , gụnyere osisi
well0003.bmp Na-enwe usoro nke a na-ahụ na nkume ọkụ
well0004.bmp Na-enwe nkume ojii, ugwu na nkume ojii na ọtụtụ ụdị ihe mgbaàmà na nkume ojii
well0005.bmp Na-enwe 'Doodads' nke nkume ojii - ya bụ, ihe ndị a na-etinye na nkume ojii maka ịme ka ebe ahụ dịkwuo mfe (ma ọ bụ n'ikpeazụ dịka usoro, dịka mgbidi)
well0006.bmp Na-enwe usoro nke a na-ahụ na nkume ojii, yana ụkwụ n'etiti nkume ọkụ na nkume ojii
well0007.bmp Na-enwe lava gụnyere 4-5 nke ọ bụla nke ihe nkiri nke lava ahụ
well0008.bmp Na-enwe sand na ọtụtụ ụdị ihe mgbaàmà na sand
well0009.bmp Na-enwe 'Doodads' nke sand - ya bụ, ihe ndị a na-etinye na sand maka ịme ka ebe ahụ dịkwuo mfe (ma ọ bụ n'ikpeazụ dịka usoro, dịka mgbidi)
well0010.bmp Na-enwe 48 ụkwụ n'ozuzu site na sand ruo nkume ọkụ na nkume ojii
well0011.bmp Na-enwe ọnụ mmiri polar nke map, na nkume ojii dịka ala
well0012.bmp Na-enwe ọnụ mmiri polar nke map, na nkume ọkụ dịka ala

O kachasị mma maka ịmepụta nke ọma, ka e nwee ike ịghara ịme ka Tiles bụrụ nke a na-arụ ọrụ tupu oge eruo iji chekwaa ha, n'ihi na a ga-emepụta data maka usoro ụbọchị/nọchite anya - ma ọtụtụ data ga-apụta.

Tiles bụ ihe oyiyi 8bpp nwere paleti nke a họọrọ nke nwere 32x32 pixel nhazi, nke a na-edepụta n'usoro. N'ogbe Tiles dị otú a, enwere ike inwe ọtụtụ ihe ọzọ.

Nkụzi isi nwere akụkụ 2: head na data.

Isi Tiles

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Byte
0x0004 uint(24) Ogologo Block
0x0007 uint(8) Akwụkwọ mkpụrụedemede
0x0008 uint(32) Version / Akwukwo?

O nwere ike ịbụ nke a bụ nkwupụta ụdị faịlụ; na faịlụ niile m nwere, ọ bụ 0x02 ka edere ebe a

0x000c uint(32) Obosara (Ncheta nke kwụ ọtọ)

Na-egosi otu obosara faịlụ onyonyo si dị (n'ịtụ pixel).

N'ozuzu, na wells niile nke Outpost 2, a ga-atụ anya na uru a bụ 0x20 ma ọ bụ 32.

0x0010 uint(32) Ike (Ntụgharị kwụ ọtọ)

Na-egosi otú elu faịlụ onyonyo si dị (na pixel).

Na wells niile nke Outpost 2, a ga-atụ anya na ọnụahịa a bụ 0x20 ma ọ bụ 32.

0x0014 uint(32) Ọdịdị agba?

Mpụta nke uru a amaghi.

Ka ọ dị, n'ihi na ọ nwere uru 8 n'ime faịlụ ndị a nyochara, ọ ga-abụ na ọ bụ ihe gbasara ịdị omimi agba.

0x0018 uint(32) Ụdị agba 2?

Ụzọ nke uru a bụ ihe na-amaghị.

O nwere ike ịbụ 'Ebumnuche' agba omimi.

N'ịbụ ndị a, a ga-enwekwa faịlụ palet nke dị na usoro RIFF a haziri ahazi. Nkowa zuru ezu dị na - ebe palet ndị a na-apụta na ebe ndị ọzọ - n'okpuru Paleti.

Data Tiles

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Byte
0x0004 uint(24) Ogologo Block
0x0007 uint(8) Akwụkwọ mkpụrụedemede

N'ikpeazụ, ndị na-ahụ anya na-abịa na edezi pixel, site n'ịzọ na elu ekpe ruo n'ala nri.
Ọnụ ahịa data nke eserese ndị a na-adịkarị ka 8bpp-bitmaps bụ nke dabara na index nke agba na palette agba.

Pixeldata na-amalite na elu ekpe ma kwụsịrị na ala nri.

Ngwá ọrụ egwuregwu na-eme ka Tiles *n'ikwu eziokwu* na-achọ.
A na-ahụ nke a n'ikwu na ọ bụ n'ihi mgbanwe ụbọchị na abalị, nke nwere 32 nkọwa nke Tiles. A na-ewepụ "ntakịrị" site na uru ìhè. E wezụga, a ka na-anaghị enweta uru ziri ezi, ana m arụ ọrụ na ntọala mgbakọ

v *= (daylight / 48) + 0.25;

na data HSV nke pixel, ebe daylight bụ uru site na 0-31 ma v bụ uru n'etiti 0-1. N'ịzọpụta nke a, a ga-ewere na na Map, e nwere mgbidi nke Tiles 16 n'akụkụ aka ekpe na aka nri (nke a na-eje ozi maka ịmepụta otu n'ịchaghị).

N'ịgbakwunye, ọ na-adị ka mgbanwe ụbọchị na abalị na-eme ka ọ bụrụ naanị otu ogidi nke Map na-emelite na oge egwuregwu ọ bụla.
Nke a bụ otú mgbanwe ụbọchị na abalị a na-emegharị ọsọ ọsọ si dị:

Ngwakọta nke mgbanwe ụbọchị na abalị

PRT

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 43 50 41 4c -- -- -- -- -- -- -- -- -- -- -- -- C P A L . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Ibu Mmaghị
0x0004 uint(24) Ogologo palet.

Nye, n'ịtụgharị na usoro nkịtị nke blọk, ọnụ ọgụgụ pallets dị na faịlụ a - ọ bụghị ogologo blọk n'ịkịtị.

0x0007 uint(8) Akwukwo mba

O yikarịrị ka, dịka ọ na-adịkarị, Flags.

Ma, amaghị m banyere Flags ọ bụla; ebe niile m maara bụ 0x00, ọ ga-ekwe omume na ọnụ ọgụgụ palettes bụ naanị uint(32).

M na-amaghị ihe PRT pụtara kpọmkwem; o kwere omume na ọ bụ 'Palette and Ressource Table' - n'ihi na faịlụ a - nke a hụrụ dịka op2_art.prt na maps.vol - bụ nke dị otú a, ma ọ bụ na nke a ga-akọwa ọrụ ya nke ọma.

Faịlụ a nwere ndepụta nke palettes, tebụl nke bitmap niile a na-eji, nkọwa niile nke mmegharị na ọtụtụ data amaghị ama. Ọ na-eso usoro ihe ọ bụla a na-eji eme ihe n'oge gara aga, n'agbanyeghị na ndị na-edekọ data niile na-esoghị usoro a.

Nke CPAL (nwere ike ịpụta na ọ bụ Paletten-Container) na-agụnye naanị data palettes, na-egosi otu ọtụtụ n'ime palettes 8-bit nwere 1052 byte bụ nke dị na ya.

Nkọwa nke 1052-byte adịghị ka iwu, n'ihi na usoro palette nwere ike inwe nha palettes dị iche iche. Nke a na-ezo aka naanị na data a na-ebupụta na Outpost 2.

Na ndepụta palettes, ndepụta bitmap na-esochi ozugbo ma na-enweghị isiokwu mmalite, na ndepụta nke mmegharị na-esochi ozugbo.
Ma abụọ a na-amalite na uint(32) (ma ọ bụ ọzọ uint24+uint8 flags?) na-egosi ọnụ ọgụgụ nke ndekọ data.

Paleti

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 50 50 41 4c -- -- -- -- -- -- -- -- -- -- -- -- P P A L . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Bytes
0x0004 uint(24) Ogologo paletị

Na-atụle n'ụzọ dị iche na usoro okirikiri nkịtị, na-egosi ọnụ ọgụgụ nke pallets dị na faịlụ a - ọ bụghị ogologo nke okirikiri na byte.

0x0007 uint(8) Mkpụrụndị 旗

O yiri ka, dịka ọ na-adịkarị, Flags.

Ma, anaghị m ama flags ọ bụla; ebe ọ bụ na niile m maara bụ 0x00, ọ ga-ekwe omume na ọnụ ọgụgụ palette bụ naanị uint(32).

Ọrụ ọmụma pallet dị mfe ịgụ.
A na-eme ha site na isi na otu data.

Isi Pallet

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Bytes
0x0004 uint(24) Ogologo paletị

Na-atụle n'ụzọ dị iche na usoro okirikiri nkịtị, na-egosi ọnụ ọgụgụ nke pallets dị na faịlụ a - ọ bụghị ogologo nke okirikiri na byte.

0x0007 uint(8) Mkpụrụndị 旗

O yiri ka, dịka ọ na-adịkarị, Flags.

Ma, anaghị m ama flags ọ bụla; ebe ọ bụ na niile m maara bụ 0x00, ọ ga-ekwe omume na ọnụ ọgụgụ palette bụ naanị uint(32).

0x0008 uint(32) Version nke usoro palet?

Na-atụgharị uche, nke bụ ụdị palet nke palet ahụ na-eso.

All Outpost2 palet nwere ike ịnwe ụdị 0x01.

Data Pallet

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Mma Bytes
0x0004 uint(24) Ogologo Block
0x0007 uint(8) Mkpụrụndị 旗

N'ịkpọtụrụ data, ngalaba ahụ na-anabata ọdịnaya pallet dị iche iche. Ọnụgụ nke ọdịnaya pallet na-apụta site na ogologo blọk / 4.

Odịnaya dị iche iche nwere usoro dị mfe dịka ndị a;

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 -- -- -- 04 -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(8) Iji agba uhie

Na-egosi akụkụ agba uhie nke agba ahụ

0x0001 uint(8) Ntọala akwụkwọ ndụ

Na-egosi pasent nke akwụkwọ ndụ na agba

0x0002 uint(8) Mkpụrụ ndụ anụ mmiri na-acha anụnụ anụnụ

Na-egosi pasent nke anụnụ anụnụ na agba

0x0003 uint(8) Amaghị m - Ndị na-atụgharị?

Ọ bụ ihe na-ebutekarị mkpọrọgwụ, ihe a pụtara n'echiche, n'ihi na ọ na-egosi 0x04.

Na paleti, e nwere naanị ihe ndị ọzọ a ga-ekwu, n'ịbụ na paleti a na-eji maka ihe nkiri nke a bụ iwu ndị na-arụ ọrụ:

  • Color mbụ bụ NA-ECHICHE, n'agbanyeghị ihe ọ bụla e nyere n'ebe ahụ.
  • Paneti 1-24 na-ewere dịka agba onye egwuregwu na paneti 1-8.
    Ebe agba si n'aka onye egwuregwu 1 ziri ezi, adịghị m akọwa ya.
    M na-atụ anya na agba ndị ọzọ bụ hardcoded

Ntụle Paleti

Bitmaps

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Emeziwanye obosara

Na-enye obosara nke pixel data ahịrị na Byte - n'ihi na a na-edobe ha na 4-Byte oke.

Nke a na-eme ka ọ dị mfe ịga n'ihu na ahịrị onyonyo nke a họọrọ.

O why na a na-echekwa uru a n'icheta, ọ bụ ezie na a ga-enyocha ya, adịghị atụ uche.
O nwere ike ịbụ mmezi maka koodu render.

0x0004 uint(32) Ọfset.

Na-egosi offset nke ahịrị mbụ na bitmap

0x0008 uint(32) Elu

Na-egosi ịdị elu nke onyonyo na pixel

0x000c uint(32) Obosara

Na-egosi obosara nke onyonyo n'ịkpụrụ pixel

0x0010 uint(16) Ụdị

Na-enye ụdị ihe osise. O yiri ka nke a bụ bitmask:

  • 0x04 bụ nke edepụtara ma ọ bụrụ na ọ bụ 1bpp eserese.
  • 0x40 bụ nke edepụtara ma ọ bụrụ na ọ bụ eserese nke chọrọ imezu Windowing
0x0012 uint(16) Palette

Na-akọwa nke palette si na faịlụ PRT ga-eji

Nke a bụ usoro data nke faịlụ PRT na-egosi etu e si hazie bitmaps ji arụ ọrụ maka sprites. Bitmaps ndị a na-arụ ọrụ ka otu akụkụ, nke ọtụtụ nwere ike ịbụ n’otu frame nke sprite njikọta.

Nke a bụ data foto nke dị na op2_art.BMP na ndekọ egwuregwu.
Ọ bụrụ na faịlụ bitmap a nwere (n'ozuzu ezi) RIFF-bitmap header, ọ bụ ihe na-adịghị mfe ịghọta. O yikarịrị ka Outpost 2 na-eji sistemu API iji bulite eserese, site na iwepụ header a n'oge na-adịghị anya ma ndị kwesịrị ekwesị, na-agbanwe ahịrị ahụ.

Data pixel dị na faịlụ BMP na ebe a na-emepụta Offset + uint32-Offset, nke a na-ahụ na faịlụ BMP na adres 0x000A (RIFF-bitmap-data-offset), na nweta - ma na-emezigharịa site na nhazi ahịrị site n'elu ekpe gaa n'ala.

Eserese monochrome 1bpp nwere ike ịgụnye n'ụzọ dị otú a, na agba 0 bụ n'efu kpamkpam, na agba 1 bụ oyi akwa nke ojii/acha odo odo, n'ihi na eserese monochrome nwerekarị eji arụ ọrụ ụgbọ ala na ụlọ na ihe ngosi n'ọrụ.

Nke a pụtara na enwere ike ịwụnye ọtụtụ eserese.

Modu ụlọ echebe (Plymouth)

Ntọala akwụkwọ ngosi

Ugbu a, anyị na-abịa na klaasị eze nke usoro n'ime usoro data Outpost 2:
Ndị animation.

Ọnọdụ animation na-amalite na header zuru ụwa ọnụ, nke bụ isi maka nkwenye data. Ka ọ na-esochi, ọdịnaya nke animation bụ ihe a ga-akọwa na ọkwa atọ:

  1. Animation
    Animation bụ ihe kachasị elu; ọ na-anọchi anya animation nke otu, ụlọ ma ọ bụ 'animation partikel' (mmalite kịrịkịrị, ihu igwe, mgbawa) n'otu ọnọdụ pụrụ iche.
  2. Frame
    Frame bụ otu ihe onyonyo n'ime animation. Animation nwere ike ịnwe otu ma ọ bụ ọtụtụ Frames.
  3. Subframe
    Subframe bụ ozi banyere na a ga-ese bitmap pụrụ iche n'okpuru ụfọdụ ọnọdụ na ọnọdụ pụrụ iche nke Frame. Frame nwere ike ịnwe otu ma ọ bụ ọtụtụ Subframes.

N'ikpeazụ, a ga-esochi kpọmkwem nkọwa animation.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Ogo animations.

Ole ole ndekọ ihe nkiri dị na ya

0x0004 uint(32) Ọnụọgụgụ Frames

Olee ọnụ ọgụgụ nke frames niile kwesịrị ịdị na ya

0x0008 uint(32) Nọmba subframes

Ogologo subframes ole ka a ga-enwe n'ozuzu

0x000c uint(32) Ọnụ ọgụgụ nhọrọ nke ndebanye.

Ole ntọala "nhọrọ nke a chọrọ" dị.

Nkà na-emegharị

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0020 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(32) Amaghị ama 1

Ozi amaghi ama

0x0004 uint(32) Kpọmkwem Igwe: N'aka ekpe

Na-egosi mmalite nke aka ekpe (na Pixel) nke Bounding Box.

0x0008 uint(32) Bounding Box: Elu

Na-egosi mmalite elu (na pixel) nke Bounding Box.

0x000c uint(32) Bounding Box: Obosara

Nkọwa obosara (na pixel) nke Bounding Box.

0x0010 uint(32) Bounding Box: Elu

Na-enye elu (n'ịkwado Pixel) nke Bounding Box.

0x0014 uint(32) Offset: X

Na-egosi etiti nke mmegharị ahụ n'ogo kwụ ọtọ

0x0018 uint(32) Offset: Y

Na-enye etiti kwụ ọtọ nke mmemme ahụ

0x001c uint(32) Amaghị 2

Ozi a na-amaghị

0x0020 uint(32) Ọnụọgụgụ Frames

Na-egosi ọnụọgụgụ ndị na-emegharị na animation a nwere

0x0024 uint(32) Ọnụọgụ Windows

Na-egosi otu ọtụtụ windo ka etinyere na eserese

Ndị data nke ọkwa kachasị elu, nke animation, bụ ndị na-ahụ maka nchịkọta data - Boundingbox na-egosi coordinates nke akara gburugburu ụgbọ ala/ụlọ, mgbe a họpụtara ya ma na-egosikwa nke ọma mpaghara nke a ga-pịa.

Offset na-achọpụta "isi ihe"; isi ihe nke a ga-eji na-agbakwunye ma ọ bụ wepụ na coordinates nke egwuregwu. Ọ bụrụ na ị na-ekwu okwu n'ọtụtụ, offset na-anọchi anya isi coordinates.

Na Windows, dịka offset, bụ (n'ofe Windows) 4 uint(32)-ụdị data, nke na-egosi mpaghara a ga-eji maka subframes. N'èzí Windows, ma ọ bụrụ na a tụrụ anya ya maka bitmap, a naghị ekwe ka e were ya.

Ụdị

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(8) Nọmba subframe na Toggle maka nhọrọ 1, 2

Olee otu a na-eme:

  • 0x7F (Bitmask): Ọnụọgụ subframes ndị a na-eji na frame a
  • 0x80: Ozi banyere ma Optional 1 na 2 dị
0x0001 uint(8) Amaghị 1 na Toggle maka Nhọrọ 3, 4

Uru a nwere:

  • 0x7F (Bitmask): Amaghị m - Ekwenyere m nke ọma na nke a bụ ọnụ ọgụgụ gameticks ndị na-apụnara, ruo mgbe a ga-egosi ihe ọzọ na ibe
  • 0x80: Ozi banyere ma Optional 3 na 4 dị
0x0002 uint(8) Nhọrọ 1

Amaghị

0x0003 uint(8) Nhọrọ 2

Amaghị

0x0004 uint(8) Nhọrọ 3

Amaghị

0x0005 uint(8) Nhọrọ 4

Amaghị

Subframe

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF edo
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Ọnọdụ Ụdị data Aha Nkọwa
0x0000 uint(16) Bitmap-ID

Na-egosi bitmap nke ga-eji maka subframe a

0x0002 uint(8) Amaghị ama 1

Adịghị mma - mana echere m na ọ bụ nke a na-eme ka a nyochaa (Z-Layer) nke a na-ekwu okwu banyere.

0x0003 uint(8) Subframe-Id

Na-egosi n'ịbụ ebe anyị nọ na subframe

0x0004 sint(16) Oghere - N'ịdị ogologo

Na-egosi ebe a ga-etinye subframe n'ime frame, ma ọ bụ otu ọtụtụ pixels bitmap ga-emekwa ka ọ kwapụ horizontally.

0x0006 sint(16) Offset - N'elu na ala

Kpọpụta ebe n'ime ihe oyiyi ahụ ka a ga-etinye subframe, ma ọ bụ otu ọtụtụ pixels ka a ga-emegharị bitmap ahụ n'ịhụ ụzọ n'ogo.

N'ịbụ nke a, anyị nwere ike ijikọta otu ebe, yana animation zuru ezu, ebe a na-egosi ya na animation siri ike, animation nwere index 500

Ngwaọrụ 500

Animation 500 na-egosi otu Plymouth-transport nwere ngwongwo njirimara nkịtị, na-apụ. Nke a bụ otu n'ime ọtụtụ animation na-eji ọrụ Windowing.

N'ụzọ dị otú a, a pụrụ ijikọta animation niile.
N'ikwu eziokwu, enwere nsogbu na ọkwa elu nke ngwongwo, n'ihi na ọ bụ ebe a ka bit kwesịrị ekwesị na ozi ụdị eserese adịghị etinye.

N'ebe a, e nwere ụfọdụ ndị ọzọ, nke ọma na-emeghe anya sprites si na egwuregwu:

Rendering nke Animation 500 na-egosi

Animation 500 ruru eru

Plymouth ụlọ ọrụ

Eden ọdụ ụgbọ elu

Eden ụlọ ọgwụ

SCAT

Plymouth ọdụ ụgbọ elu

Easteregg:
Ọjị ọdụ

Easteregg:
Dans nkịta

Nchepụta Onye ọrụ

Ugbu a, ihe a na-achọ bụ User-Interface nke egwuregwu, nke edere na metal nke a na-agbapụ.

Ma ọbụna ebe a, a na-ahụ na Dynamix enweghị mkpa ịmepụta ihe ọhụrụ; ebe a, ọ bụghị naanị na a na-eji User32 na GDI32 APIs nke Windows nyere - karịsịa, a na-eji njikwa akụrụngwa nke User32.

Nke a nwere ike ịpụta site na mmemme dị ka nke Angus Johnson mepụtara dị ka Freeware, Resource Hacker, ma ọ bụ - ma ọ bụrụ na ị na-atụ ụjọ iji Wine na Linux / Mac OS - site na iji wrestool nke dị na icoutils wepụ ya.

Aha faịlụ Ọnụahịa
Outpost2.exe Na-ejide naanị ihe ngosi nke egwuregwu ahụ, nke na-egosi ọdụ ụgbọ elu n'ihu New Terra
op2shres.dll Na-ejide na mgbakwunye na eserese maka njikwa dịka mgbochi, bọtịnụ, bọtịnụ radyo, na igbe nhọrọ, kwa ndabere mkparịta ụka, onyonyo nke na-esonyere ederede ọrụ akụkọ, na eserese ndabere nke menu isi
out2res.dll Na-ejide ihe ịchọgharị windows n'ime egwuregwu, ihe ngosi maka ígwè nkịtị na pụrụ iche, ihuenyo na-akwado, eserese maka mkparịta ụka yana ibe eserese cursor, tinyere ihe nkiri ndị ọzọ n'ime ndekọ egwuregwu