Outpost 2 Ƙa'idodin Fayil · bei.pm
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.
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:
|
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.
|
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 |
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 |
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 |
0x0014 | uint(32) | Launin zurfi? | Ma'anar wannan ƙimar ba ta bayyana ba. Domin yana dauke da ƙimar |
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.
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:
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 |
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 |
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 |
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 |
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 |
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.
بِتْمَابْس
عر | 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. |
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:
|
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.
تحريكات
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:
-
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. -
Frame
Frame shine hoto guda daya a cikin animatoci. Animatoci na iya dauke da frame guda daya ko fiye. -
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:
|
0x0001 | uint(8) | Babu sani 1 da Toggle don zaɓi 3, 4 | Wannan ƙimar ta ƙunshi:
|
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:
مُحَاوَرَة سُتُرَة
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 |