Outpost 2 Qaababka Faylasha · bei.pm
Qaababka faylka ee ku qoran boggan waxay ku saleysan yihiin falanqaynta farsamada ee hantida maskaxeed ee Dynamix, Inc. iyo Sierra Entertainment.
Hantida maskaxeed waxay maanta qayb ka tahay Activision Publishing, Inc./ Activision Blizzard, Inc. iyo hadda waxaa leh Microsoft Corp..
Macluumaadka waxaa lagu ururiyey iyadoo la adeegsanayo Injineernimada Dhabta ah iyo Falanqaynta Xogta si loo helo kaydinta iyo is dhexgalka xogta taariikhiga ah.
Looma isticmaalin wax qeexitaanno gaar ah ama qarsoodi ah.
Ciyaarta waxaa hadda lagu iibsan karaa bogga gog.com sida soo dejin.
Qoraalkan soo socda wuxuu diiradda saarayaa fahamkeyga ku saabsan qaababka xogta ee ciyaarta istiraatiijiyadda waqtiga-dhabta ah "Outpost 2: Divided Destiny", taasoo la sii daayay 1997 iyada oo ay soo saartay Sierra iyo ay horumarisay Dynamix.
Waxaan la kulmay falanqaynta xogta ciyaarta - iyo waxa laga sameyn karo - laga bilaabo 01-da Noofambar 2015 ilaa 14-ka Noofambar 2015.
Macluumaadka aan ilaa hadda helay, sida ay sheegayaan, Dynamix - sida shirkadaha ganacsi ee kale - ma aysan soo saarin qaababka xogta gaar ah oo loogu talagalay Outpost 2, laakiin sidoo kale waxay u isticmaaleen horumarinta kale sida taxanaha Mechwarrior (waxaa la beddelay).
Tani waxay muujinaysaa in awoodda hal-abuurka ee qaababka faylasha ay si weyn u xaddidan tahay waxaana badanaa lagu dhisaa fikradaha ka horeeya qaabab caadi ah sida JFIF iyo RIFF.
Si loo fasirto jadwalka iyo qaababka xogta, macluumaad dheeri ah ayaa laga heli karaa Maxay yihiin maxay?.
Xogta halkan lagu sheegay guud ahaan waxaa loo fahmi karaa inay tahay Little Endian.
Ugu dambeyntii, waxa la odhan karaa in injineerinka dib u habeynta uu aad u xiiso badan yahay, in kastoo aanan dhammaystirnayn.
Dabcan, waxaan sidoo kale kugula talinayaa inaad ciyaarta naftaada ciyaarto, maadaama ay bixiso farsamooyin ciyaar oo xiiso leh.
Hordhac
Qaab-dhismeedka xogta ee Outpost 2 ayaa la mid ah JFIF / PNG - xirmooyinka xogta kalena had iyo jeer waxay leeyihiin 8 Byte Header. Sidaas darteed, waxaan iska dhaafayaa inaan diiwaangeliyo headers-ka kaladuwan meelaha gaarka ah ee ku habboon, waxaanan kaliya diiwaangelinayaa kala duwanaanshaha halkaas.
Qaabka had iyo jeer waa kan soo socda; xogta dhabta ahna waxaa lagu dhex qarinayaa:
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Bite-yada sixirka | Waxay ka kooban tahay macluumaad ku saabsan waxa la filayo xogta xigta. Qiimayaasha la yaqaan:
|
0x0004 | uint(24) | Dhererka Block-ka | Waxay ka kooban tahay macluumaad ku saabsan cabirka (in Byte) ee bloogga xogta ee soo socda. Halkan waxaa loola jeedaa xogta lafteeda - 8-ka Header-Byte ma jiraan. |
0x0007 | uint(8) | Calaamadaha? | Waa aan la yaqaan waxa uu xayndaabkan dhab ahaantii u adeegayo. Qiyaasta waxaa badanaa lagu arkaa 0x80, faylal kale badana waxaa lagu arkay 0x00. Tani waxay muujinaysaa in ay tahay set calan. |
Mugga
Volumes waa weel xogeed oo loogu talagalay ciyaarta, waxayna la mid tahay qaab kaydinta sida Tarball. Ugu yaraan Outpost 2, qaabkani wuxuu kaliya aqoonsan yahay faylasha - ma jiro gal. Si kastaba ha noqotee, waxaa laga yaabaa in kuwaas lagu daydo magacyada faylasha ku habboon.
Volume wuxuu ka kooban yahay Volume-Header iyo dhowr Volume Blocks oo u dhigma faylasha gaarka ah.
"Volumes" waa faylasha leh dhamaadka 'vol'
ee galka ciyaarta.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 56 | 4f | 4c | 20 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | V | O | L | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Byte-yada Xariifka ah | |
0x0004 | uint(24) | Dhererka Block-ga | |
0x0007 | uint(8) | Calamada |
Qaybta Mugga
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 68 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | h | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Byte-yada Xariifka ah | |
0x0004 | uint(24) | Dhererka Block-ga | |
0x0007 | uint(8) | Calamada |
Heerka Volume-ka ma laha wax xog ah oo la isticmaalo.
Wuxuu u adeegaa kaliya sida weel.
Xogta ugu horeysa ee ku jirta Heerka Volume-ka waa inay noqdaan xadhigyada Volume; ka dibna waxaa ku xiga macluumaadka Volume-ka.
Xidhiidhada Mugga
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 69 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | i | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Byte-yada Xariifka ah | |
0x0004 | uint(24) | Dhererka Block-ga | |
0x0007 | uint(8) | Calamada |
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 73 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | s | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Byte-yada Xariifka ah | |
0x0004 | uint(24) | Dhererka Block-ga | |
0x0007 | uint(8) | Calamada | |
0x0008 | uint(32) | Dhererka Payload-ka | Muujinayaa tirada Bytes ee xogta soo socota ee dhab ahaan ah xogta la isticmaalo. Xogta haray ee liiska Volume-Strings waxay u muuqataa in loo tixgeliyo garbage. Faylasha taariikhda dambe leh, xogta 'haray' waa 0x00, taasoo muujin karta dhibaatooyin ku saabsan qalabka qalabka intii lagu jiray horumarinta ciyaarta, taasoo la micno ah in horumariyaha uu si dambe u daryeelay habaynta saxda ah ee kaydinta, maadaama aysan saameyn ku yeelanayn ciyaarta haddii xogtu la habeyn yahay ama aan la habeyn. |
0x000c | uint(8)[] | Liiska Magacyada Faylasha | Kani waa liis magacyada faylasha oo ah 0-byte-terminated, kaasoo - ugu yaraan qaybta xogta ee halkan ku jirta - kaliya u muuqda inuu sugaayo xarfo ASCII ah. Ma jiraan wax loo baahdo in si qoto dheer loo falanqeeyo xogtan marka la falanqeynayo, maadaama macluumaadka Volume-ka si toos ah loogu tixraacayo offsets-ka magacyada faylasha. |
Volume Strings waa liis magacyada faylasha ee ku jira volumka.
Macluumaadka Voluumka
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 69 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | i | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Byte-yada Xariifka ah | |
0x0004 | uint(24) | Dhererka Block-ga | |
0x0007 | uint(8) | Calamada |
Macluumaadka muggu wuxuu ka kooban yahay macluumaad faahfaahsan oo ku saabsan faylasha. Waxayna u egyihiin hab nooc ah diiwaanka faylka (FAT = File Allocation Table).
Tirada faylasha waxay ka timaadaa cabirka blokiga oo loo qaybiyo dhererka diiwaannada - 14 byte.
Diiwaannada kala duwan waxay leeyihiin qaab dhismeedkan:
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Magaca Faylka-Offset | Waxay tusinaysaa meesha ay ku taallo magaca faylka ee liiska magacyada faylasha (Xargaha Volume) iyadoo la adeegsanayo offset (!). Tani waxay tilmaamaysaa bilowga qaybta xogta. |
0x0004 | uint(32) | Faylka-Offset | Waxay muujineysaa meesha ay faylku ku yaallo gudaha faylka guud ee Volume-ka. |
0x0008 | uint(32) | Cabbirka Faylka | Waxay muujinaysaa sida weyn faylku yahay ee byte ahaan. |
0x000c | uint(16) | Calamada? | Waxay u egtahay inay bixiso macluumaad dheeri ah oo ku saabsan koodhka faylka.
|
Blok Volum
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 56 | 42 | 4c | 48 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | V | B | L | H | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Byte-yada Xariifka ah | |
0x0004 | uint(24) | Dhererka Block-ga | |
0x0007 | uint(8) | Calamada |
Volume-Block waa weel qaada faylasha. Waxay si kaliya u leh mar kale - sababo la xiriira qaabka blockiga - faylasha cabbirka iyo ka dibna waxay si toos ah u raacaan xogta la isticmaalo.
Tileyada
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 42 | 4d | 50 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | B | M | P | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Bytes-ka Sixirka | |
0x0004 | uint(24) | Dhererka Block-ka | |
0x0007 | uint(8) | Calamada |
Tiles-kani waa qaab-grafik Bitmap oo khaas u ah Outpost-2. Waxay ka kooban yihiin 13 Tilesets,
loo yaqaan "wells" (well0000.bmp
ilaa well0012.bmp
),
kuwaas oo ku dhex jira volume-ka maps.vol.
Tilesets / Wells waxay ka kooban yihiin waxyaabahan:
Magaca Faylka | Waxyaabaha |
---|---|
well0000.bmp | Garaaf buluug ah oo cabirkiisu yahay 32x32px - ku habboon in lagu tijaabiyo haddii qalabkaaga sawirrada uu shaqeynayo |
well0001.bmp | Waxay ka kooban tahay dhagax iftiin leh, buuro ku yaal dhagax iftiin leh iyo noocyo badan oo ka mid ah godadka dhaca ee dhagax iftiin leh |
well0002.bmp | Waxay ka kooban tahay 'Doodads' dhagax iftiin leh - sida walxaha lagu dhigo si loogu fidiya (ama si ula kac ah sida dhisme, tusaale ahaan derbiyada) dhagax iftiin leh, oo ay ku jiraan dhirta |
well0003.bmp | Waxay ka kooban tahay qaab dhismeed ka samaysan xabag dhagax iftiin leh |
well0004.bmp | Waxay ka kooban tahay dhagax madow, buuro ku yaal dhagax madow leh iyo noocyo badan oo ka mid ah godadka dhaca ee dhagax madow leh |
well0005.bmp | Waxay ka kooban tahay 'Doodads' dhagax madow leh - sida walxaha lagu dhigo si loogu fidiya (ama si ula kac ah sida dhisme, tusaale ahaan derbiyada) dhagax madow leh |
well0006.bmp | Waxay ka kooban tahay qaab dhismeed ka samaysan xabag dhagax madow leh, iyo isdhexgalka u dhexeeya dhagax iftiin leh iyo dhagax madow leh |
well0007.bmp | Waxay ka kooban tahay lava oo leh 4-5 frames animation ah oo kala duwan |
well0008.bmp | Waxay ka kooban tahay ciid iyo noocyo badan oo ka mid ah godadka dhaca ee ciidda |
well0009.bmp | Waxay ka kooban tahay 'Doodads' ciid - sida walxaha lagu dhigo si loogu fidiya (ama si ula kac ah sida dhisme, tusaale ahaan derbiyada) ciidda |
well0010.bmp | Waxay ka kooban tahay 48 isdhexgal oo ka mid ah ciidda iyo dhagax iftiin leh iyo dhagax madow leh |
well0011.bmp | Waxay ka kooban tahay daboolka polar ee khariidadda, oo leh dhagax madow sida saldhig |
well0012.bmp | Waxay ka kooban tahay daboolka polar ee khariidadda, oo leh dhagax iftiin sida saldhig |
Waa muhiim in la sameeyo si sax ah, in Tiles aan hore loo muujin si loo keydiyo, maadaama xogta ku saabsan wareega maalinta/habeenka ay weli tahay in la shaqeeyo - waxaana jiri doona xog aad u badan.
Tile-yadu waa 8bpp sawirro leh palette la tilmaamay oo leh xallin 32x32 pixel, kuwaas oo si isdaba joog ah loo habeeyay. Si kastaba ha noqotee, Tileset-kan waxaa ku jiri kara tiro ka badan
Wejiga ugu muhiimsan wuxuu ka kooban yahay 2 qeybood: head
iyo data
.
Cinwaanka Tiles
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Bytes-ka Sixirka | |
0x0004 | uint(24) | Dhererka Block-ka | |
0x0007 | uint(8) | Calamada | |
0x0008 | uint(32) | Nooca / Calamada? | Tani waxay noqon kartaa tilmaanta nooca feylka; dhammaan faylasha aan haysto waxay halkan ku qoran yihiin qiimaha |
0x000c | uint(32) | Ballac (Xallinta Joogtada) | Waxay tilmaamaysaa sida ballaaran faylka sawirka yahay (pixel ahaan). Dhamaan Wells-ka Outpost 2, halkan waxaa laga filayaa qiimaha |
0x0010 | uint(32) | Dherer (Xallinta toosan) | Waxay muujinaysaa sida sare ee faylka sawirka (pixel ahaan). Dhammaan Wells-ka Outpost 2 halkan waxaa laga filayaa in qiimaha |
0x0014 | uint(32) | Qoto-dhafka midabka? | Macnaha qiimahan ma cadda. Maadaama uu ku jiro dhammaan faylasha la baaray qiimaha |
0x0018 | uint(32) | Qoto-dheereedka midabka 2? | Macnaha qiimahan ma cadda. Waxaa laga yaabaa inay tahay 'ujeeddo'-qoto-dheer. |
Macluumaadkan ka dib, waxaa jiri doona fayl palette ah oo ku jira qaabka RIFF ee la isku raacay. Tilmaamaha saxda ah waxaa laga helayaa - maadaama palettes ay meelo kale ka muuqdaan - hoosta Palettada.
Xogta Tiles
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Bytes-ka Sixirka | |
0x0004 | uint(24) | Dhererka Block-ka | |
0x0007 | uint(8) | Calamada |
Ugu dambeyntii, xogta pixel-ka ayaa ka bilaabmaysa bidix-dhanka kore ee safafka ilaa midig-dhanka hoose.
Xogta qiimaha ee sawirada badanaa loo yaqaan 8bpp-Bitmaps waxay u dhigantaa index-ka midabka ee palette-ka midabka.
Engine-ka ciyaarta wuxuu sawiraa Tiles *sida muuqata* on-demand.
Tani waxay u muuqataa inay sabab u tahay wareegga maalin-nox, oo leh 32 heerar oo tiles ah. Waxaa muuqata in qiimaha iftiinka laga jarayo 'yar'. Qiimayaal sax ah weli lama go'aamin, waxaan ku shaqeynayaa xisaabtan
v *= (daylight / 48) + 0.25;
iyadoo la adeegsanayo xogta HSV ee pixels, halka daylight ay tahay qiimo u dhexeeya 0-31 iyo v uu yahay qiimo u dhexeeya 0-1. Sidoo kale waa in la tixgeliyaa in khariidadda ay leedahay 16 tiles oo xuduud ah bidix iyo midig (tani waxay u adeegtaa in la qarsoodi ugu dhiso unugyo).
Intaa waxaa dheer, wareegga maalin-nox wuxuu u muuqdaa inuu kaliya cusboonaysiinayo hal tiir oo khariidadda ah mar kasta oo ciyaar socoto.
Wareeg maalin-nox oo dhaqso ah wuxuu u egyahay sidan:
PRT
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 43 | 50 | 41 | 4c | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | C | P | A | L | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Byte-yada Jaduunka | |
0x0004 | uint(24) | Dhererka Palettiga | Tusmo, marka loo eego qaabka caadiga ah ee block-ka, tirada paletiyada laga heli karo faylkan - maahan dhererka block-ka ee byte-yada. |
0x0007 | uint(8) | Calamada | Waxaa suurtagal ah, sidii caadiga ahayd, calamo. Aniga ma aqaano calamo; maadaama dhammaan qiimayaasha aan aqaano ay la mid yihiin |
>Waxa PRT
dhab ahaantii uu u taagan yahay ma aqaan; waxaa suurtagal ah in uu yahay 'Palette and Ressource Table' - maadaama faylkan - oo lagu heli karo sida op2_art.prt ee maps.vol - uu yahay mid noocaas ah, ama tani ay si wanaagsan u sharraxayso shaqadiisa.
Faylkani wuxuu ka kooban yahay liis palettos ah, jaantus ku saabsan dhammaan bitmap-yada la isticmaalay, dhammaan qeexidda animation-ka iyo sidoo kale tiro xog ah oo aan la garanayn. Waxay raacdaa qaab-dhismeedka weelka ee hore si aan toos ahayn, maadaama aan dhammaan diiwaannada ay raacaan qaabkan.
Qaybta CPAL
(waxay u taagan tahay Paletten-Weel) waxay kaliya ku xidhaysaa xogta palette, iyadoo muujineysa tirada palettos-ka 8-bit ah ee caadi ahaan 1052 byte ah.
>Qiyaasta 1052-byte maaha mid qasban, maadaama qaabka palette uu suurtagal ahaan leeyahay cabbirro palette oo kala duwan. Waxay kaliya khuseysaa xogta la socda, oo lagu keenay Outpost 2.
>Ka dib liiska palettos, liiska bitmap-yada ayaa si toos ah u xiga iyada oo aan lahayn cinwaan hordhac ah; sidaas oo kale, liisaska animation-ka ayaa si toos ah u xiga.
>Labada dhinacba waxay ku bilaabmaan uint(32) (ama mar kale uint24+uint8 calamad?) oo muujinaya tirada diiwaannada.
Palettada
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 50 | 41 | 4c | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | P | A | L | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Byteska Jaduunka | |
0x0004 | uint(24) | Dhererka Paletka | Waxay tilmaamaysaa tirada paletada ee ku jirta faylkan, taasoo ka duwan qaabka caadiga ah ee block - maahan dhererka block-ka ee baytka. |
0x0007 | uint(8) | Calamada | Suurtagal ahaan, sida caadiga ah, calamo. Anigu ma garanayo calamo; maadaama dhammaan qiimayaasha aan aqaan ay u dhigmaan |
Macluumaadka palettiyada waa mid si sahlan loo akhriyi karo.
Waxay ka kooban yihiin cinwaan iyo qayb xogeed.
Madaxa Paletka
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Byteska Jaduunka | |
0x0004 | uint(24) | Dhererka Paletka | Waxay tilmaamaysaa tirada paletada ee ku jirta faylkan, taasoo ka duwan qaabka caadiga ah ee block - maahan dhererka block-ka ee baytka. |
0x0007 | uint(8) | Calamada | Suurtagal ahaan, sida caadiga ah, calamo. Anigu ma garanayo calamo; maadaama dhammaan qiimayaasha aan aqaan ay u dhigmaan |
0x0008 | uint(32) | Nooca qaabka pallet-ka? | Waxay u muuqataa in la qeexay nooca palett-ka ee palett-ka raacayo. Dhamaan palett-yada Outpost2 waxay u muuqdaan inay leeyihiin nooca |
Xogta Palettiga
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Byteska Jaduunka | |
0x0004 | uint(24) | Dhererka Block-ka | |
0x0007 | uint(8) | Calamada |
Qaybta xogta waxay qaadataa diiwaanada pallet-ka ee kala duwan. Tirada diiwaanada pallet-ka waxay ka timaadaa dhererka block-ga / 4.
Diiwaannada kala duwan waxay leeyihiin qaab sahlan oo sidan oo kale ah;
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | 04 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(8) | Qaybta Cas | Waxay muujineysaa qaybta cas ee midabka |
0x0001 | uint(8) | Qaybta Cagaaran | Waxay muujinaysaa qaybta cagaaran ee midabka |
0x0002 | uint(8) | Qaybta buluugga | Waxa uu muujinayaa saamiga buluugga ah ee midabka |
0x0003 | uint(8) | Aan la aqoon - Calanka? | Waa aan caddayn waxa qiimahaan uu ka dhigan yahay, maadaama uu u muuqdo inuu aasaas ahaan |
Ku saabsan palet-yada, waxa kaliya ee aan dhihi karno waa, in palet-yada loo isticmaalo animation-yada ay ku xiran yihiin xeerarka soo socda:
- Midabka ugu horreeya had iyo jeer waa HOOSEYN, xitaa haddii qiime kale la bixiyo.
-
Entries palet-ka 1-24 waxaa loo tixgelinayaa midabka ciyaartoyda ee palet-yada 1-8.
Goobta midabada aan ka helno ciyaartoyga 1, ma cadda.
Waan qiyaasayaa in midabada kale ay yihiin kuwo xiran.
Bitmaps
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Ballaca la hagaajiyay | Waxay muujinaysaa ballaca xariiqyada xogta pixel-ka ee baytka - maadaama ay ku xirantahay xuduudaha 4-baytka. Sidaas awgeed, si dhakhso ah ayaa suurtagal u ah in la booqdo xariiqda sawirka gaarka ah. Maxaa sababay in qiimahan si gaar ah loo keydiyo, inkastoo la xisaabin karo, ma cadda. |
0x0004 | uint(32) | Lugow | Muujinaya offset-ka khadka koowaad ee bitmap-ka |
0x0008 | uint(32) | Dherer | Waxay muujineysaa dhererka sawirka ee pixel-ka |
0x000c | uint(32) | Ballac | Waxay muujinaysaa ballaca sawirka ee pixels |
0x0010 | uint(16) | Noocyada | Nooca sawirka ayaa tilmaamaya. Halkan waxay u muuqataa in ay tahay Bitmaske:
|
0x0012 | uint(16) | Palette | qeexaya, paletka ka timaada faylka PRT ee la isticmaali doono |
Qaab-dhismeedka xogta faylka PRT ayaa muujinaya sida bitmaps-ka loo isticmaalo ee loogu talagalay Sprites ay u dhisan yihiin. Bitmaps-kan waxay u adeegaan sida qayb gooni ah, oo badan ayaa lagu ururiyay hal qaab animation ah ee Sprite oo la isku daray.
Xogta sawirka gaarka ah waxay ku qarsan tahay
op2_art.BMP gudaha galka ciyaarta.
Waxaa cadayn ah sababta faylka bitmap-kan uu u leeyahay (badanaa sax ah) RIFF-bitmap header,
taasna ma cadda. Waxaa suurtagal ah in Outpost 2 ay isticmaasho API-yada nidaamka si ay u shido sawirada,
iyadoo la qaadayo header-kan si ku meel gaar ah iyo in la qoro meelaha kala duwan ee la xiriira.
Xogta pixel-ka waxay ku jirtaa faylka BMP oo ku yaal booska Offset + uint32-Offset, taas oo laga heli karo faylka BMP cinwaanka 0x000A (RIFF-bitmap xogta offset), oo ku habboon qaabka safka ah oo ka bilaabanaya bidix ilaa hoos.
Naqshadaha monochrome 1bpp waxaa lagu sawiri karaa sida midabka 0 uu yahay hufnaan buuxda, iyo midabka 1 waa madow/cad oo hufan, maadaama naqshadaha monochrome guud ahaan loo isticmaalo hooska gaadiidka iyo dhismayaasha ee animations laga isticmaalo.
Haddaba, waxaa la isku dari karaa sawirro badan.
Muuqaaleynta
Hadda waxaan u gudbaynaa fasalka boqorka ee cilmiga gudaha qaababka xogta Outpost 2:
Animayshinnada.
Liisaska animayshinka waxaa lagu bilaabaa header caalami ah, oo ujeedkiisu yahay xaqiijinta xogta. Kadibna waxaa raaca qeexitaannada animayshinka gaarka ah, oo lagu kala soocay 3 heerar:
-
Animayshinka
Animayshinku waa heerka ugu sarreeya; waxay muujinaysaa animayshinka unug, dhisme ama 'animayshinka qaybaha' (dhicitaanka komet, cimilada, qaraxa) xaalad gaar ah. -
Frame
Frame waa sawir kaliya oo ku dhex jira animayshinka. Animayshinku wuxuu ka koobnaan karaa hal ama in ka badan frames. -
Subframe
Subframe waa macluumaadka ku saabsan in bitmap gaar ah loo sawiro meel gaar ah oo frame ah iyadoo la raacayo shuruudo gaar ah. Frame wuxuu ka koobnaan karaa hal ama in ka badan subframes.
Kadib, si toos ah ayaa loo raaci doonaa qeexitaannada animayshinka.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Tirada animasyonada | Imisa diiwaanno animayshanka ah ayaa jira |
0x0004 | uint(32) | Tirada Frames | Immisa frames guud ahaan waa in ay jiraan |
0x0008 | uint(32) | Tirada Subframes | Immisa subframes ah oo guud ahaan ay tahay in la helo |
0x000c | uint(32) | Tirada diiwaanada ikhtiyaariga ah | Immisa "qoritaanno ikhtiyaari ah" ayaa jira. |
Muqaal
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(32) | Qof aan la aqoon 1 | Macluumaad aan la aqoon |
0x0004 | uint(32) | Sanduuqa Xadeynta: Bidix | Waxay tilmaamaysaa bilowga bidix (pixel ahaan) ee Bounding Box. |
0x0008 | uint(32) | Sanduuqa Xadeynta: Kor | Waxay tilmaamaysaa bilowga sare (pixel ahaan) ee Bounding Box. |
0x000c | uint(32) | Sanduuqa Xadeynta: Ballac | Waa cabirka ballaca (pixels) ee Bounding Box. |
0x0010 | uint(32) | Sanduuqa Xadka: Dhererka | Waxay muujinaysaa dhererka (pixels) ee Bounding Box. |
0x0014 | uint(32) | Qaybinta: X | Muujinaya bartamaha toosan ee animation-ka |
0x0018 | uint(32) | Fogaanta: Y | Muujinaya bartamaha toosan ee animation-ka |
0x001c | uint(32) | Aan la aqoon 2 | Macluumaad aan la aqoon |
0x0020 | uint(32) | Tirada Frames | Wuxuu muujinayaa tirada sawirrada animation-ka ee ku jira animation-kan |
0x0024 | uint(32) | Tirada Daaqadaha | Waxay tilmaamaysaa tirada daaqadaha ee la adeegsanayo marka la sawirayo |
Xogta lakabka sare, ee animation-ka, waxay si weyn u tahay xog maamul - Boundingbox waxay tilmaamaysaa isku-dhafka calaamadda ku saabsan gaadhi/dhisme, marka la doorto iyo sidoo kale waxay muujinaysaa aagga la gujin karo.
Offset-ku wuxuu si weyn u go'aamiyaa "barta eber"; barta, oo lagu xisaabinayo isku-dhafka ciyaarta ama laga jarayo. Waxa kale oo lagu dhihi karaa xisaabta: offset-ka halkan wuxuu tilmaamayaa asalka isku-dhafka.
Windows-yadu waxay la mid yihiin offset-ka, waxayna ka kooban yihiin (mid kasta Windows) 4 uint(32)-qiime, kuwaas oo muujinaya aagga loo isticmaali karo subframes-ka gaarka ah. Dibadda Windows-yada, haddii ay u diyaar tahay bitmap-ka, looma oggola in la sawiro.
Qaab
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(8) | Tirada subframe-ka iyo Toggle-ka ee Ikhtiyaar 1, 2 | Qiimahani wuxuu ka kooban yahay:
|
0x0001 | uint(8) | Aan la aqoonsan 1 iyo Toggle loogu talagalay Ikhtiyaar 3, 4 | Qiimahani wuxuu ka kooban yahay:
|
0x0002 | uint(8) | Ikhtiyaar 1 | Aan la aqoon |
0x0003 | uint(8) | Ikhtiyaar 2 | Aan la aqoon |
0x0004 | uint(8) | Ikhtiyaar 3 | Aan la aqoon |
0x0005 | uint(8) | Ikhtiyaar 4 | Aan la aqoon |
Qaybta Hoose
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | xarfaha | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Fogaanta | Nooca Xogta | Magaca | Sharaxaad |
---|---|---|---|
0x0000 | uint(16) | Bitmap-Id | Muujinaya bitmap-ka loo isticmaali doono subframe-kan |
0x0002 | uint(8) | Qof aan la aqoon 1 | Ma cadda - Si kastaba ha ahaatee, waxaan si xoog leh u maleynayaa in tani ay tahay mudnaanta sawirka (Z-Layer). |
0x0003 | uint(8) | Subframe-Id | Waxay muujinaysaa, xaggee ku suganahay subframe-ka |
0x0004 | sint(16) | Offset - Toosan | Muujinaya halka gudaha qaab-dhismeedka (Frames) uu subframe la dhigayo, ama inta pixels ah ee bitmap-ka loo dhaqaajinayo dhinaca toosan. |
0x0006 | sint(16) | Offset - Farsamooyinka toosan | Waxay muujinaysaa meesha gudaha frame-ka lagu dhejinayo subframe-ka, ama inta pixels ah ee bitmap-ka si toos ah loo dhaqaajinayo |
Marka waxaan hadda isku dari karnaa qaababka gaar ah iyo sidoo kale animation-yada dhamaystiran, halkan waxaan ku muujinaynaa tusaale ahaan animation aad u adag, taas oo leh index 500.
Animation 500
Animation 500 waxay muujinaysaa sida loo furo Plymouth-transportka oo lagu shubay macdan caadi ah. Tani waa mid ka mid ah dhowr animation oo isticmaala faacadda daaqadaha.
Sidaas awgeed, dhammaan animation-ka ayaa la isugu geeyey.
Nasiib darro, weli waxaa jira dhibaato ku saabsan furitaanka sare, maadaama halkan bit-ka ku habboon aan lagu maamulin macluumaadka nooca sawirka.
Halkan waxaa ah qaar ka mid ah sprites-ka si qurux badan loo animoobay oo ka tirsan ciyaarta:
Interface-ka Isticmaalaha
Hadda waxaa ka maqan interface-ka isticmaale ee ciyaarta, kaas oo ku qoran muuqaal bir la burburiyey.
Laakiin halkan sidoo kale waxaa muuqata in Dynamix aysan u baahnayn inay dib u iclaamiso; halkan kaliya looma isticmaalin API-yada User32 iyo GDI32 ee uu Windows bixiyo - gaar ahaan waxaa sidoo kale la isticmaalay maaraynta khayraadka ee User32.
Kuwani waxaa lagu soo saari karaa tusaale ahaan barnaamijyada sida Angus Johnson uu Freeware ahaan u sameeyay Resource Hacker, ama - haddii aad ka baqayso in aad isticmaasho Wine hoosta Linux / Mac OS - adigoo kaashanaya wrestool oo ku jira icoutils.
Magaca Faylka | Waxyaabaha |
---|---|
Outpost2.exe | Kaliya waxay ka kooban tahay astaanta ciyaarta, taasoo muujineysa saldhigga hawada ee New Terra |
op2shres.dll | Waxay ka kooban tahay sawirro loogu talagalay xakamaynta sida xuduudaha, badhamada, badhamada raadiyaha iyo sanduuqyada xulashada, sidoo kale asalka wada hadalka, sawirrada kaalmada ee qoraallada hawlgalka sheekooyinka iyo sawirka asalka ee menu-ga ugu weyn |
out2res.dll | Waxay ka kooban tahay qurxinta daaqadaha gudaha ciyaarta, astaamaha birta caadiga ah iyo khaaska ah, shaashadda laadinta, sawirrada wada hadalka iyo kuraas kale oo sawirro ah, intaa waxaa dheer kuwa firfircoon ee galka ciyaarta |