Outpost 2 Ƙa'idodin Fayil · bei.pm

Wannan rubutun an fassara shi ta atomatik ta hanyar OpenAI GPT-4o Mini

Format ɗin fayil ɗin da aka bayyana a wannan shafin yana dogara ne akan binciken fasaha na hakkin mallaka daga Dynamix, Inc. da Sierra Entertainment.
Hakkin mallaka a yau yana cikin mallakar Activision Publishing, Inc. / Activision Blizzard, Inc. kuma a halin yanzu yana hannun Microsoft Corp..

An tattara bayani ta hanyar Reverse Engineering da Data Analysis don manufar ajiya da haɗin kai tare da bayanan tarihi.
An yi amfani da kowanne takamaiman bayanai na musamman ko na sirri.

A halin yanzu, ana iya sayen wasan a gog.com a matsayin saukarwa.

Hoton wasan

Wannan jerin abubuwa yana ɗauke da bayanan da na samo game da tsarin bayanai a cikin wasan dabarun lokaci guda "Outpost 2: Divided Destiny", wanda Sierra ta fitar a shekarar 1997 kuma Dynamix ta haɓaka.

Sana'a ta taƙaice daga ranar 01 ga Nuwamba 2015 zuwa ranar 14 ga Nuwamba 2015 na mai da hankali kan nazarin bayanan wasan - da kuma abin da za a yi da su.

Daga bayanan da na samo har zuwa yanzu, akwai alama cewa Dynamix - kamar yawancin kamfanoni na kasuwanci - ba ta ƙirƙiri wasu tsarukan bayanai musamman don Outpost 2 ba, amma ta yi amfani da su a wasu ci gaba kamar jerin Mechwarrior (an canza su).
Ba tare da la'akari da haka ba, ana iya lura cewa ƙarfin kirkirar tsarin bayanai yana da iyaka kuma galibi yana ginu ne akan tsare-tsare da suka dade daga tsarin da aka saba kamar JFIF da RIFF.

Domin fassara teburori da tsarin bayanai, akwai karin bayani a ƙarƙashin Menene menene? a shirye.
Bayanan da aka bayar an fahimci su a matsayin Little Endian gaba ɗaya.

A ƙarshe, za a iya cewa aikin dawo da tsarin yana da matuƙar jin daɗi, kodayake ba cikakke ba ne.
Hakan yana nufin zan iya ba da shawarar a yi wasan kai tsaye, saboda yana bayar da kyawawan dabarun wasa.

مقدّمة

Abubuwan da Outpost 2 ke amfani da su suna da tsarin da ya yi kama da JFIF / PNG - kowanne daga cikin bayanan yana da babban 8 Byte a ciki. Don haka, zan yi hanzari wajen rubuta babban a wuraren da suka dace kuma zan rubuta kawai bambance-bambance a can.

Tsarin koyaushe haka ne; ainihin bayanan amfani suna cikin sa:

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) بایت‌های جادوئی

Yana ƙunshe da bayani game da abin da za a tsammani a cikin na gaba bayanan bayanai.

Sanannun ƙimar:

  • 0x204C4F56 ('VOL '):
    Ƙarfin
  • 0x686C6F76 ('VOLH'):
    Ƙarfin-Header
  • 0x736C6F76 ('VOLS'):
    Ƙarfin-Strings
  • 0x696C6F76 ('VOLI'):
    Bayani akan Ƙarfin
  • 0x4B4C4256 ('BLCK'):
    Ƙarfin-Block
  • 0x504D4250 ('PBMP'):
    Bayani akan zane
  • 0x4C415050 ('PPAL'):
    Farbenpalette
  • 0x4C415043 ('CPAL'):
    Container na Farbenpaletten
  • 0x64616568 ('head'):
    Header
  • 0x61746164 ('data'):
    Bayani na amfani
0x0004 uint(24) Tsawon Blok

Yana dauke da bayani akan girman (a Byte) wannan shahararren bayanai.

A nan, ana nufin ainihin bayanan amfani - ba a haɗa Byte na 8 na shugaban ba.

0x0007 uint(8) Tashoshin?

Ba a san ainihin amfanin wannan block ɗin ba.

A cikin Volumes, yawanci wannan ƙimar 0x80 ce, a wasu fayiloli kuma yawanci 0x00 ne. Wannan na nuna cewa yana yiwuwa yana da alaƙa da saiti na flag.

حَجْمَات

A cikin Volumes, akwai wani akwatin bayanai na wasan, kamar yadda aka saba a cikin tsarin ajiyar bayanai kamar Tarball. A kalla a cikin Outpost 2, tsarin yana dauke da fayiloli kawai - ba tare da manyan fayiloli ba. Yana yiwuwa a iya kwaikwayon waɗannan ta hanyar sunayen fayil da suka dace.

Wani Volume yana kunshe da Volume-Header da kuma blokoki da yawa na Volume, waɗanda suka dace da fayilolin ainihi.

"Volumes" sune fayilolin da ke da ƙarshen 'vol' a cikin kundin adireshin wasan.

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) بِتَاتِ سِحْرِيَّة
0x0004 uint(24) Tsawon Blok
0x0007 uint(8) فلاگس

Shafin Volume

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) بِتَاتِ سِحْرِيَّة
0x0004 uint(24) Tsawon Blok
0x0007 uint(8) فلاگس

Header na Volume ba ya ƙunshe da kowanne bayanan amfani.
Yana aiki ne kawai a matsayin kwandon ajiya.

A matsayin na farko na bayanai a cikin Header na Volume, yakamata a sami Volume Strings; sannan bayanan Volume zasu biyo baya.

Yanayin Volume

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) بِتَاتِ سِحْرِيَّة
0x0004 uint(24) Tsawon Blok
0x0007 uint(8) فلاگس
عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) بِتَاتِ سِحْرِيَّة
0x0004 uint(24) Tsawon Blok
0x0007 uint(8) فلاگس
0x0008 uint(32) Tsawon Payload

Yana nuna yawan Bytes na bayanan da ke ƙasa da gaske su ne bayanan amfani.

Ragowar bayanan daga jerin ƙwaƙwalwar Volume suna bayyana a matsayin garbage.

A cikin fayiloli tare da kwanan wata na gaba, waɗannan 'ragowar bayanan' sune 0x00, wanda zai iya nuna rashin inganci tare da kayan aikin yayin haɓaka wasan, wato, wani mai haɓaka ya kula da daidaitawar buffering da kyau ne kawai a baya, saboda ba ya shafi wasan ko bayanan an saita su ko a'a.

0x000c uint(8)[] Jerin sunayen fayiloli

Wannan yana nufin wani jerin sunayen fayil guda 0-Byte-terminated, wanda - a kalla a cikin wannan bangaren bayanai - kawai yana nuna alamar haruffan ASCII.

Bai zama dole a yi cikakken nazari kan wannan bangaren bayanan yayin da ake fassara bayanan ba, saboda a cikin bayanan Volume, an riga an ambaci offsets na sunayen fayil din kai tsaye.

Volume Strings suna nufin jerin sunayen fayiloli da ke cikin wannan volume.

Bayani akan Volume

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) بِتَاتِ سِحْرِيَّة
0x0004 uint(24) Tsawon Blok
0x0007 uint(8) فلاگس

Bayani kan girman yana dauke da karin bayani kan fayiloli. Wannan yana nufin a wani bangare, wani nau'i ne na shigar da jerin FAT (FAT = Teburin Raba Fayil).

Yawan fayiloli yana fitowa daga girman block da aka raba da tsawon shigarwar jerin - 14 Byte.

Ko wanne shigarwa na jerin yana da irin wannan tsarin:

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) داتينامان-اوفست

Ya bayyana a wane offset (!) a cikin jerin sunayen fayil (Volume-Strings) ake samun sunan fayil din.

Yana danganta da farawa na block na bayanan amfani.

0x0004 uint(32) مَوْقِع فَايْل

Yana nuna inda fayil din yake a cikin dukkanin fayil ɗin girma.

0x0008 uint(32) فَايل مَسَاحَة

Yana nuna girman fayil din a cikin Byte.

0x000c uint(16) Tutar?

Yana bayyana karin bayani game da lambar fayil.

  • 0x03 an saita idan fayil din ya kasance mai rikewa. A nan ana amfani da itacen Huffmann.
  • 0x80 yana bayyana koyaushe a saita.

Gidan Kudi

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) بِتَاتِ سِحْرِيَّة
0x0004 uint(24) Tsawon Blok
0x0007 uint(8) فلاگس

A cikin Volume-Block, ana nufin wani akwati ne, wanda ke karɓar fayiloli. Ya ƙunshi kawai sake - saboda tsarin Block - girman fayil ɗin da kuma bayan haka, bayanan amfani suna biye da shi kai tsaye.

تَلايِس

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 50 42 4d 50 -- -- -- -- -- -- -- -- -- -- -- -- P B M P . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) بایت ماجیک
0x0004 uint(24) دَورَ بَلَك
0x0007 uint(8) فلاگس

Kan tiles suna da tsarin hoto na Bitmap na musamman ga Outpost-2. Suna wucewa akan tilesets 13, wanda ake kira "wells" (well0000.bmp zuwa well0012.bmp), wanda suke cikin volum maps.vol.

Daga cikin tilesets / wells suna dauke da abubuwa masu zuwa:

Sunan Fayil Abun ciki
well0000.bmp Wani zane mai launin shuɗi mai girman 32x32px - mai kyau don gwada ko mai ɗaukar hoto na hoto yana aiki
well0001.bmp Yana ƙunshe da duwatsu masu haske, tsaunuka a kan duwatsu masu haske da kuma nau'ikan ƙari daga wuraren faɗawa a cikin duwatsu masu haske
well0002.bmp Yana ƙunshe da 'Doodads' na duwatsu masu haske - wato abubuwa da za a iya sanya su don shimfiɗa (ko a sanadiyyar tsarin, kamar ganuwa) a cikin duwatsu masu haske, ciki har da tsirrai
well0003.bmp Yana ƙunshe da wani tsari mai kama da kankara a kan duwatsu masu haske
well0004.bmp Yana ƙunshe da duwatsu masu duhu, tsaunuka a kan duwatsu masu duhu da kuma nau'ikan ƙari daga wuraren faɗawa a cikin duwatsu masu duhu
well0005.bmp Yana ƙunshe da 'Doodads' na duwatsu masu duhu - wato abubuwa da za a iya sanya su don shimfiɗa (ko a sanadiyyar tsarin, kamar ganuwa) a cikin duwatsu masu duhu
well0006.bmp Yana ƙunshe da wani tsari mai kama da kankara a kan duwatsu masu duhu, da kuma canje-canje tsakanin duwatsu masu haske da duhu
well0007.bmp Yana ƙunshe da lava wanda ke haɗawa da kowane 4-5 Frames na motsi na sa
well0008.bmp Yana ƙunshe da yashi da kuma nau'ikan ƙari daga wuraren faɗawa a cikin yashi
well0009.bmp Yana ƙunshe da 'Doodads' na yashi - wato abubuwa da za a iya sanya su don shimfiɗa (ko a sanadiyyar tsarin, kamar ganuwa) a cikin yashi
well0010.bmp Yana ƙunshe da kowane 48 canje-canje daga yashi zuwa duwatsu masu haske da duhu
well0011.bmp Yana ƙunshe da kankara na taswira, tare da duwatsu masu duhu a matsayin harsashi
well0012.bmp Yana ƙunshe da kankara na taswira, tare da duwatsu masu haske a matsayin harsashi

Yana da kyau a tabbatar da cewa ba a yi rendering na Tiles kafin lokaci ba don a iya adana su, saboda bayanan don zagayowar rana/da dare har yanzu suna bukatar gyara - kuma za a tara bayanai masu yawa.

Tiles suna da 8bpp-grafik tare da jerin launuka na index da ke da girman 32x32 pixels, wanda aka tsara a jere. A cikin irin wannan Tileset, akwai yiyuwar karin

Mai babban kwantena yana dauke da sassa guda biyu: head da data.

Jigon Taya

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) بایت ماجیک
0x0004 uint(24) دَورَ بَلَك
0x0007 uint(8) فلاگس
0x0008 uint(32) Version / Tutar?

Wannan na iya zama bayani kan sigar tsarin fayil; a duk fayilolin da na samu, an rubuta darajar 0x02 a nan

0x000c uint(32) Fadin (Kwantin hanzari)

Yana nuna faɗin hoton fayil ɗin (a cikin pixels).

A dukkanin wells na Outpost 2, ana sa ran wannan ƙimar 0x20 ko 32.

0x0010 uint(32) Hauhaw (Tsawon Ƙuduri)

Yana nuna yawan girman hoton (a cikin pixel).

A cikin dukkan Wells na Outpost 2, ana sa ran wannan ƙimar 0x20 ko 32.

0x0014 uint(32) Launin zurfi?

Ma'anar wannan ƙimar ba ta bayyana ba.

Domin yana dauke da ƙimar 8 a dukkanin fayilolin da aka duba, yana iya zama yana nufin bayani akan zurfin launi.

0x0018 uint(32) Zazzabi launi 2?

Ma'anon wannan ƙima ba a sani ba.

Wataƙila yana nufin 'gudun' zurfin launi.

Bayan waɗannan bayanan, za a sami fayil ɗin palette wanda ke cikin tsarin RIFF da aka tsara. Takamaiman ƙayyadaddun abubuwa suna nan - saboda palettoci suna bayyana a wasu wuri - a ƙarƙashin بَلاَتِين.

Bayani kan Tiles

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) بایت ماجیک
0x0004 uint(24) دَورَ بَلَك
0x0007 uint(8) فلاگس

A ƙarshe, bayan haka akwai bayanan pixel da aka bayyana, daga hagu sama a layi zuwa dama ƙasa.
Kimar bayanan a cikin hoton da aka saba da 8bpp-Bitmaps yana dacewa da alamar launi a cikin paletin launi.

Bayanan pixel suna farawa daga hagu sama kuma suna ƙarewa a ƙasa dama.

Engin wasan na tsara Tiles *tabbas* bisa ga bukata.
Wannan yana yiwuwa saboda tsarin dare da rana, wanda ke da matakan 32 na Tiles daban-daban. A cikin wannan, ana rage 'kadanu' daga darajar haske. Ba a iya tantance ainihin ƙima ba, ina aiki bisa ga ƙididdiga

v *= (daylight / 48) + 0.25;

tare da bayanan HSV na pixels, inda daylight ke da ƙima daga 0-31 kuma v yana da ƙima tsakanin 0-1. Hakanan, ya kamata a lura cewa a taswirar akwai gefen Tiles 16 a hagu da dama (wanda yake don ɓoyayyen haihuwar ƙungiyoyi).

Bugu da ƙari, tsarin dare da rana yana sabunta kowane ginshiƙi na taswira a kowane zagaye na wasa.
Wannan yana nufin tsarin dare da rana da aka hanzarta yana bayyana kamar haka:

Fassarar tsarin dare da rana

PRT

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 43 50 41 4c -- -- -- -- -- -- -- -- -- -- -- -- C P A L . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) بایتس ماجيك
0x0004 uint(24) girma na palette

Yana, sabanin tsarin block na al'ada, yana bayar da adadin pallets da za a samu a cikin wannan fayil - ba tsawon block din a cikin bytes ba.

0x0007 uint(8) فلاجز

Wata kila, kamar yadda aka saba, fiyaye.

Amma bana san wata fiyaya; tunda dukkanin darajar da nake da ita sun yi daidai da 0x00, yana yiwuwa ma adadin pallet din yana iya zama kawai uint(32).

Abin da PRT ke nufi ainihi ban san shi ba; amma yana yiwuwa ya kasance misali 'Jadawalin Palette da Kayan Aiki' - tun da wannan fayil ɗin - wanda ake samu a matsayin op2_art.prt a cikin maps.vol - na irin wannan ne, ko kuma hakan zai iya bayyana aikin sosai.

Wannan fayil ɗin yana ƙunshe da jerin palettes, jadawalin duka bitmap da aka yi amfani da su, dukkanin ƙa'idodin motsi da kuma wasu bayanai da ba a san su ba. Yana bin tsarin kwantena na baya-bayan nan a hankali, tun da ba duk bayanai ne ke bi wannan tsarin ba.

ɓangaren CPAL (wannan yana yiwuwa yana nufin kwantena na palettes) yana ƙunshe da bayanan palette kawai, yana nuna yawan 8-Bit-palettes masu girman 1052 Byte da aka saba a cikin su.

Bayani na 1052-Byte ba a ɗauka a matsayin mai tilasta ba, tun da tsarin palette na iya zama da girma daban-daban. Yana aiki ne kawai ga bayanan da Outpost 2 ke fitarwa.

Bayan jerin palettes, a nan da nan ba tare da shahararren header ba, jerin bitmaps yana biyo baya; haka kuma jerin motsi yana biyo bayan su.
Dukansu suna farawa tare da uint(32) (ko kuma sake uint24+uint8 flags?) wanda ke ƙunshe da adadin bayanai.

بَلاَتِين

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 50 50 41 4c -- -- -- -- -- -- -- -- -- -- -- -- P P A L . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) مَاجِك بَايْتس
0x0004 uint(24) ƙimar girmansu na paleti

Ya bayar da adadin pallet da ke cikin wannan fayil, maimakon tsawon block a cikin byte, sabanin tsarin block na yau da kullum.

0x0007 uint(8) فلاگس

Wata kila, kamar yadda aka saba, Flags.

Amma ba ni da masaniya game da Flags; tunda dukkanin ƙimomin da na sani sun kasance 0x00, yana yiwuwa ma adadin palet din yana iya zama kawai uint(32).

Bayani kan pallets yana da sauƙin karantawa.
Yana ƙunshe da header da kuma wani ɓangaren bayanai.

Kanfanin Pallet

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) مَاجِك بَايْتس
0x0004 uint(24) ƙimar girmansu na paleti

Ya bayar da adadin pallet da ke cikin wannan fayil, maimakon tsawon block a cikin byte, sabanin tsarin block na yau da kullum.

0x0007 uint(8) فلاگس

Wata kila, kamar yadda aka saba, Flags.

Amma ba ni da masaniya game da Flags; tunda dukkanin ƙimomin da na sani sun kasance 0x00, yana yiwuwa ma adadin palet din yana iya zama kawai uint(32).

0x0008 uint(32) Version na tsari na Paletten?

Yana bayyana wanda nau'in paleti da paletin yake bi.

Duk palet ɗin Outpost2 suna bayyana suna da nau'in 0x01.

Bayani kan Pallet

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) مَاجِك بَايْتس
0x0004 uint(24) Tsawon Block
0x0007 uint(8) فلاگس

Ƙungiyar bayanai na ɗaukar kowane shigar pallet ɗin. Yawan shigar pallet yana samun daga tsawon block / 4.

Kowane shigar na da wannan, mai sauƙin tsarin;

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 -- -- -- 04 -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(8) رُوت كُومبُونِنْت

Yana nuna kashi na ja a cikin launin

0x0001 uint(8) جزء ɗin ƙasa

Ya bayar da kaso na kore na launin

0x0002 uint(8) بلاو-كومپوننت

Yana nuna kaso na shuɗi a cikin launin

0x0003 uint(8) Ba a san ba - Tutar?

Ba a fayyace abin da wannan ƙima ke nufi ba, saboda yana bayyana a matsayin ainihin 0x04.

Don haka game da palet, abin da ya rage kawai a faɗa shine, wannan dokokin suna aiki ga palet da za a yi amfani da su don animations:

  • Launin farko koyaushe yana da shafawa, ko da wane darajar an bayar.
  • Shiga palet 1-24 ana ɗauka a matsayin launin 'yan wasa a palet 1-8.
    Yadda launukan suka fito daga waje na 'yan wasa 1 ba a bayyana ba.
    Ina tsammanin sauran launuka suna da hardcoded.

Tsarin palet

بِتْمَابْس

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) Fadin da aka tsara

Yana ba da faɗin faɗin layukan bayanan pixel a cikin byte - saboda suna daidaici ga iyakar 4-byte.

Saboda haka, yana yiwuwa a sauƙaƙe tashi zuwa wani takamaiman layin hoto.

Dalilin da yasa wannan ƙimar ke adanawa a cikin daban, duk da cewa ana iya ƙididdige ta, ba a bayyana ba.
Watakila wannan wata ingantawa ce ga lambar fassara.

0x0004 uint(32) أوفست

Yana ba da offset na layi na farko a cikin bitmap

0x0008 uint(32) اُوْلُوَة

Ka bayar da tsayin hoton a cikin pixels

0x000c uint(32) فَصَاحَة

Bayyana fadin hoton a cikin pikseli

0x0010 uint(16) نوع

Ya bayyana irin hoton da ake magana akai. A nan yana bayyana cewa yana da alaƙa da Bitmaske:

  • 0x04 yana samuwa, idan hoton yana da 1bpp.
  • 0x40 yana samuwa, idan hoton yana buƙatar aiwatar da Windowing
0x0012 uint(16) باليت

Ya bayyana wacce palette daga fayil din PRT za a yi amfani da ita

Wannan tsarin bayanai na fayil ɗin PRT yana nuna yadda aka tsara bitmaps da aka yi amfani da su don sprites. Wadannan bitmaps suna aiki a matsayin wani ɓangare guda, wanda daga cikin su da dama ake haɗawa don yin wani yanayin animation na sprite.

Tabbatar da hoton da aka yi amfani da shi yana ɓoye a cikin op2_art.BMP a cikin babban fayil na wasan.
Me ya sa wannan bitmap ɗin yana da header na RIFF-Bitmap (mai kusan zama daidai), ba a bayyana ba. Mai yiwuwa Outpost 2 yana amfani da APIs na tsarin don lodin hotuna, ta hanyar ɗaukar wannan header na ɗan lokaci da kuma maye gurbin filayen da suka dace da suke bambanta.

Bayyanann hoto suna cikin fayil ɗin BMP a matsayi Offset + uint32-Offset, wanda ake samunsa a cikin fayil ɗin BMP a adireshin 0x000A (RIFF-Bitmap-Datenoffset), don samun su - kuma suna nuna tsarin layi daga sama hagu zuwa dama ƙasa.

Hoton monochrome 1bpp ana iya zana su ta yadda launin 0 ke wakiltar cikakken bayyana, yayin da launin 1 ke wakiltar launin baki/guru mai ruwan sama, tun da hoton monochrome yawanci ana amfani da su don inuwa na motoci da gine-gine a cikin animations.

Domin haka, ana iya haɗa hotuna da yawa da aka riga aka yi.

Makamfanin zama mai kariya (Plymouth)

تحريكات

Yanzu zamu tafi zuwa babban ajin fannoni a cikin tsarin bayanan Outpost 2:
Animatoci.

Jerinjayen animatoci suna farawa da wani babban header wanda ya fi maida hankali ga tantance bayanai. Bayan haka, suna bin bayanan takamaiman animatoci, wanda aka raba su zuwa matakai 3:

  1. Animation
    Animatoci shine babban mataki; yana wakiltar animatoci na wani rukuni, wani ginin ko kuma 'animatoci na kwayoyin' (bugun kome, yanayi, fashewa) a cikin wani yanayi na musamman.
  2. Frame
    Frame shine hoto guda daya a cikin animatoci. Animatoci na iya dauke da frame guda daya ko fiye.
  3. Subframe
    Subframe shine bayani akan cewa wani takamaiman Bitmap a cikin wasu ka'idoji za'a zana shi a wani takamaiman matsayi na frame. Frame na iya dauke da subframes guda daya ko fiye.

Bayan haka, za'a tafi kai tsaye zuwa takamaiman bayanan animatoci.

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) Yawan abubuwan motsi

Nawa ne adadin bayanan shahararru da ke akwai

0x0004 uint(32) Adadin Frames

Yaya adadin frames da ya kamata a kasance a cikin gaba ɗaya

0x0008 uint(32) Adadin subframes

Nawa ne adadin subframes da ya kamata su kasance gaba ɗaya

0x000c uint(32) Yawan shigarwa na zaɓi

Yawan "zaɓaɓɓen shigarwa" da ke akwai.

Hanyoyin Hasken Wuta

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0020 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(32) Babu wanda ya sani 1

Bayanan da ba a sani ba

0x0004 uint(32) بندنگ بوق: لېنكس

Yana bayar da farawa hagu (a cikin pixel) na Bounding Box.

0x0008 uint(32) باکس ɗin iyaka: Sama

Ya bayar da farkon sama (a cikin pixels) na Bounding Box.

0x000c uint(32) بندنگ بۆکس: برېتة

Ya bayar da fadin (a cikin pixel) na Bounding Box.

0x0010 uint(32) باک نَفَس: جِهَت

Ya bayar da tsayin (a cikin pixels) na Bounding Box.

0x0014 uint(32) موجا: X

Ya nuna tsakiyar kwance na aikin motsi

0x0018 uint(32) Offset: Y

Yana nuna tsakiya a tsaye na animation

0x001c uint(32) Babu sani 2

Bayanan da ba a sani ba

0x0020 uint(32) Adadin Frames

Ya bayyana yawan frames na animation da ke cikin wannan animation

0x0024 uint(32) Yawan Windows

Yana nuna yawan tagogi da za a yi amfani da su a lokacin zane

Bayani na saman mataki, na zane-zane, yana da bayanan gudanarwa na farko - Boundingbox yana nufin wuraren da ke kewaye da alamar motar/ginin, Idan an zaɓi shi kuma yana kuma nuna wanne yanki ne za a iya danna.

Offset yana bayyana babban "sakin"; wuri wanda za a yi amfani da shi wajen lissafin kuma ko kuma a rage. Hakanan ana iya cewa a ilimin lissafi: offset yana nufin asalin kundayen lissafi.

Game da Windows, kamar yadda yake da Offset, kowane Window yana da 4 uint(32)-ƙima, wanda ke nuna yanki da za a iya amfani da shi don subframes masu zaman kansu. A waje da Windows, muddin an tsara shi don Bitmap, ba a ba da izinin zane.

Fure

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(8) تعداد سوبفريم و توغلي لاختياري 1، 2

Wannan ƙima tana ƙunshe da:

  • 0x7F (Bitmaske): Yawan Subframes da aka yi amfani da su a cikin wannan Frame
  • 0x80: Bayanin ko Optional 1 da 2 suna nan
0x0001 uint(8) Babu sani 1 da Toggle don zaɓi 3, 4

Wannan ƙimar ta ƙunshi:

  • 0x7F (Bitmask): Ba a san shi ba - Ina zaton sosai cewa wannan yana nufin adadin gameticks da za su wuce har sai an nuna frame na gaba
  • 0x80: Bayanin ko Optional 3 da 4 suna akwai
0x0002 uint(8) اختياري 1

Ba a san shi ba

0x0003 uint(8) Zaɓi na 2

Ba a san shi ba

0x0004 uint(8) زabi 3

Ba a san shi ba

0x0005 uint(8) اختياري 4

Ba a san shi ba

Subframe

عر x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF حروف
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
مَكَانَة نوع البيانات بەزاجن تَفْسِير
0x0000 uint(16) Bitmap-Id

Ya nuna wacce Bitmap za a yi amfani da ita don wannan Subframe

0x0002 uint(8) Babu wanda ya sani 1

Ba a san shi ba - amma ina zaton sosai cewa wannan yana da alaka da fifikon fassara (Z-Layer).

0x0003 uint(8) بەردەست-شناسه

Yana nuna inda muke a cikin subframe

0x0004 sint(16) مَسَافَة - هَوُزُونتَال

Yana bayyana inda a cikin firam din za a sanya subframe, ko kuma yawan pixels da za a motsa bitmap a tsaye.

0x0006 sint(16) أوفست - عمودي

Ya nuna inda a cikin firamin za a sanya subframe, ko kuma har yawan pixels da za a motsa bitmap a tsaye.

Ta wannan hanyar, yanzu zamu iya haɗa ƙananan frames da kuma cikakkun animations yadda ya kamata, a nan ga misali a kan wani tsari mai wahala, wanda shine animation tare da index 500, ana nuna shi

Hanyoyin motsi 500

Animation 500 ta nuna yadda ake fitar da wata Plymouth-Transporter da aka cika da ƙaƙƙarfan ƙarfe. Wannan na daga cikin ɗayan kadan na animations da ke amfani da fasalin Windowing.

Kuma haka za a iya haɗa cikakken animation.
Abin takaici, akwai wata matsala da babban tagar lodin, saboda a nan ba a sa abin da ya dace a cikin bayanin nau'in hoto ba.

Ga wasu ƙarin sprites masu kyau da aka yi wa animation daga wasan:

Hotunan fitar da Animation 500 suna bayyana

Animation 500 an gama haɗa shi

Ginin Plymouth

Port din Eden

Cibiyar Lafiya ta Eden

SCAT

Port din Plymouth

Easteregg:
Santa

Easteregg:
Dans Dog

مُحَاوَرَة سُتُرَة

Yanzu har yanzu akwai bukatar wajen amfani da wasan, wanda aka yi shi da karfe mai goge-kallo.

Amma har ma a nan yana bayyana cewa Dynamix ba ya bukatar sake kirkirar keken; a nan ba kawai ana amfani da User32 da GDI32-APIs da Windows ya samar ba - musamman ana kuma amfani da gudanar da albarkatu daga User32.

Wannan na iya zama misali ta hanyar shirye-shirye kamar wanda Angus Johnson ya haɓaka a matsayin Freeware Resource Hacker, ko - idan kana jin tsoron amfani da Wine a kan Linux / Mac OS - ta hanyar amfani da wrestool da aka haɗa cikin icoutils.

Sunan Fayil Abun ciki
Outpost2.exe Yana dauke da hoton alamar wasan, wanda ke nuna tashar sararin samaniya a gaban New Terra
op2shres.dll Yana dauke da hotuna na abubuwan sarrafawa kamar iyakoki, maballan, maballan rediyo da akwatunan zaɓi, har ma da bango na tattaunawa, hotuna masu tare da rubutun labarin gasa da hoton bango na babban menu
out2res.dll Yana dauke da kyawawan kayan ado na cikin wasa, hotuna na karfe na yau da kullum da na musamman, allon lodin, hotuna na tattaunawa da kuma wasu hoton maɓalli, tare da hotunan motsi a cikin kundin wasan