Outpost 2 ရက်စွဲဖိုင်ပုံစံများ · bei.pm

အဆိုပါစာသားကို OpenAI GPT-4o Mini မှ အလိုအလျောက် ဘာသာပြန်ထားပါသည်။

ဤစာမျက်နှာတွင်ဖေါ်ပြထားသောဖိုင်ဖောင်များသည် Dynamix, Inc. နှင့် Sierra Entertainment ၏အားဖြင့် အာရုံခံရသော ဂုဏ်ထူးဆောင်ပိုင်ဆိုင်မှု၏နည်းပညာဆိုင်ရာစိစစ်မှုအပေါ်အခြေခံသည်။
ဂုဏ်ထူးဆောင်ပိုင်ဆိုင်မှုသည် ယနေ့တွင် Activision Publishing, Inc. / Activision Blizzard, Inc. ၏စုစုပေါင်းအစိတ်အပိုင်းဖြစ်ပြီး ယခုအခါ Microsoft Corp. ၏ပိုင်ဆိုင်မှုဖြစ်သည်။

အချက်အလက်များကို အုပ်ချုပ်မှုနှင့် သမိုင်းဝင်ဒေတာများနှင့် အပြန်အလှန်လုပ်ဆောင်နိုင်မှုအတွက် Reverse Engineering နှင့် Datenanalyse မှတစ်ဆင့်စုစည်းထားသည်။
ပိုင်ဆိုင်မှုရှိသည့် သို့မဟုတ် လျှို့ဝှက်သော အထောက်အထားများကို မသုံးစွဲခဲ့ပါ။

ဂိမ်းကိုယခု gog.com တွင် အွန်လိုင်းအရောင်းအတွက် ဒေါင်းလုပ်အဖြစ် ရယူနိုင်သည်။

ဂိမ်း၏ အနုပညာအတွက်

အောက်ပါဆောင်းပါးအကွက်သည် 1997 ခုနှစ်တွင် Sierra မှ ထုတ်ဝေခဲ့ပြီး Dynamix က ဖွံ့ဖြိုးခဲ့သော "Outpost 2: Divided Destiny" အချိန်မှန် မဟာဗျူဟာဂိမ်းတွင် ဒေတာဖိုမတ်များအကြောင်း ကျွန်ုပ်၏ အမြင်များကို မျှဝေသည်။

ကျွန်ုပ်သည် 2015 ခုနှစ် နိုဝင်ဘာ ၁ ရက်မှ နိုဝင်ဘာ ၁၄ ရက်အထိ ဂိမ်း၏ ဒေတာများကို အနက်အနှိုက်စုံစမ်းခြင်းနှင့် ၎င်းကို ဘာလုပ်ကြောင်းကို အဓိပ္ပာယ်ဖော်စဉ်းစားထားသည်။

သိရှိခဲ့သမျှအချက်အလက်များအရ Dynamix သည် အခြားကုမ္ပဏီများလိုပဲ Outpost 2 အတွက် အထူးသဖြင့် ထုတ်လုပ်ထားသော ဒေတာဖိုမတ်များ မရှိဘဲ Mechwarrior စီးရီးကဲ့သို့သော အခြားဖွံ့ဖြိုးမှုများတွင် (ပြောင်းလဲအသုံးပြု) အသုံးပြုခဲ့သည်။
ထို့အပြင် ဒေတာဖိုမတ်များ၏ စွမ်းဆောင်ရည်သည် အလွန်ကန့်သတ်သဖြင့် JFIF နှင့် RIFF ကဲ့သို့သော ရှေးဟောင်းဖိုမတ်များကို အခြေခံထားသည်ကို တွေ့ရှိနိုင်သည်။

ဇယားများနှင့် ဒေတာဖိုမတ်များကို အဓိပ္ပာယ်ဖော်ရန်ပိုမိုသော အချက်အလက်များကို ဘာအကြောင်းလဲ? တွင် ရရှိနိုင်သည်။
အထက်ဖော်ပြပါ ဒေတာများကို အများအားဖြင့် Little Endian အဖြစ် နားလည်ရမည်။

နိဂုံးချုပ်အားဖြင့် Reverse Engineering သည် အရမ်းအပျော်ရွှင်စေသည်၊ သို့သော် အပြည့်ပြစ်မဟုတ်ပါ။
သ oczywiście ဂိမ်းကို ကိုယ်တိုင်ကစားရန် အကြံပြုပါသည်၊ အကြောင်းအရာများကို စိတ်ဝင်စားဖွယ်ကောင်းစွာ ပေးစွမ်းသည်။

မိတ်ဆက်ချက်

Outpost 2 တွင်အသုံးပြုသောဒေတာဖော်မတ်များသည် JFIF / PNG နှင့်ဆင်တူသောဖွဲ့စည်းမှုကိုပိုင်ဆိုင်သည် - တစ်ခုချင်းစီသောဒေတာဘလော့များတွင် 8 Byte အထက်ပါခေါင်းစဉ်တစ်ခုရှိပါသည်။ ထို့ကြောင့် ငါသည် ကွဲပြားချက်များကိုသာ မှတ်တမ်းတင်ပြီး သက်ဆိုင်သော အထူးကွင်းများတွင် တစ်ခုချင်းစီသောခေါင်းစဉ်များကို မှတ်တမ်းတင်ရန် မလိုလားပါ။

ဖော်မတ်သည် အမြဲတမ်းအောက်ပါပုံစံဖြစ်ပြီး၊ အထောက်အထားအသုံးပြုဒေတာများသည် ထဲတွင်ထည့်သွင်းထားသည်။

အေဒရ် x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF အက္ခရာ
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
အဝင်ဖြစ်စဉ် ဒေတာအမျိုးအစား အမည် ရှင်းလင်းချက်
0x0000 uint(32) မဂ္ဂစ် ဘိုက်များ

ဒေတာဘလော့ခ်နောက်မှာရောထွက်လာမယ့်အချက်အလက်တွေပါဝင်ပါတယ်။

သိထားတဲ့တိုင်းတာချက်များ:

  • 0x204C4F56 ('VOL '):
    အသံအထုပ်
  • 0x686C6F76 ('VOLH'):
    အသံအထုပ်-ခေါင်းစီ
  • 0x736C6F76 ('VOLS'):
    အသံအထုပ်-စာကြောင်းများ
  • 0x696C6F76 ('VOLI'):
    အသံအထုပ်-အချက်အလက်များ
  • 0x4B4C4256 ('BLCK'):
    အသံအထုပ်-ဘလော့ခ်
  • 0x504D4250 ('PBMP'):
    ဂျီဖ်ဒေတာများ
  • 0x4C415050 ('PPAL'):
    အရောင်ကာလီ
  • 0x4C415043 ('CPAL'):
    အရောင်ကာလီ-ကွန်တိန်နာ
  • 0x64616568 ('head'):
    ခေါင်းစီး
  • 0x61746164 ('data'):
    သုံးစွဲဒေတာများ
0x0004 uint(24) Block-အရှည်

ဤသည်မှာ အောက်တွင်ဖေါ်ပြထားသော ဒေတာပိုင်းစိတ်၏ အရေအတွက် (Byte အတွင်း) အကြောင်း အသေးစိတ်အချက်အလက်ပါဝင်သည်။

၎င်းတွင် သန့်ရှင်းသော အသုံးပြုမှုဒေတာများသာ ပါရှိပြီး ၈ Header-Byte မပါဝင်ပါ။

0x0007 uint(8) အလံများ?

ဤဘလော့ခ်သည် အထူးသဖြင့် ဘာအတွက်သုံးသည်ဆိုသည်မှာ မသိရပါ။

Volume များတွင် ဤတန်ဖိုးသည် အမြဲ 0x80 ဖြစ်သည်၊ အခြားဖိုင်များတွင် အမြဲ 0x00 ဖြစ်သည်။ ထိုသို့ဆိုသည်မှာ ဤသည်မှာ Flag-Set တစ်ခု ဖြစ်သည်ဟု အကြောင်းပြုနိုင်သည်။

အတွင်းအမြောက်

ဗိုလ်မြောက်များသည် ဂိမ်းအတွက် ဒေတာကွန်တိန်နာတစ်ခုဖြစ်ပြီး၊ Tarball အစရှိသည့် အာခိုင်ဖိုင်ပုံစံနှင့် ဆင်တူသည်။ Outpost 2 တွင် အနည်းဆုံး၊ ဤပုံစံတွင် ဖိုင်များသာရှိသည် - ဖိုလ်ဒါများမရှိပါ။ မည်သို့ပင်ဆိုပါစေ၊ သက်ဆိုင်ရာ ဖိုင်အမည်များကို အသုံးပြု၍ ဤများကို ဆင်ဆာနိုင်မည်။

ဗိုလ်မြောက်တစ်ခုသည် ဗိုလ်မြောက်-ဟက်ဒာနှင့် ပေါင်းစပ်၍ အတိက်ဖိုင်များကို ကိုယ်စားပြုသော ဗိုလ်မြောက် အပိုင်းများစွာပါဝင်သည်။

"ဗိုလ်မြောက်များ" သည် ဂိမ်းအုပ်စုတွင် 'vol' အဆုံးထားရှိသည့် ဖိုင်များဖြစ်သည်။

အေဒရ် 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) ဘလော့ခ်အရှည်
0x0007 uint(8) အလံများ

အသံအမြင့်ခေါင်းစဉ်

အေဒရ် 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) ဘလော့ခ်အရှည်
0x0007 uint(8) အလံများ

ဗိုလ်ယူမ်ဟက်ဒာမှာ အသုံးပြုရန် အချက်အလက်များ မပါရှိပါ။
ဒါက အထဲမှာ အကြောင်းအရာများ ထိန်းသိမ်းနိုင်ရန် ရည်ရွယ်ထားတာပဲ။

ဗိုလ်ယူမ်ဟက်ဒာမှာ ပထမဆုံးအချက်အလက်အဖြစ် ဗိုလ်ယူမ်စတရင်းများ ရှိဖွယ်ရှိရမည်; ထို့နောက် ဗိုလ်ယူမ်အချက်အလက်များ ဆက်လက်လာမည်။

အသံအချိုးချိတ်များ

အေဒရ် 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) ဘလော့ခ်အရှည်
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) ဘလော့ခ်အရှည်
0x0007 uint(8) အလံများ
0x0008 uint(32) Payload-အလျား

အောက်ပါဒေတာများမှ အမှန်တကယ် အသုံးပြုမှုဒေတာများသည် ဘာကြာအောင် ဘိုက် ၁၀၀၀၀ ထက်မနည်းကြောင်း သတ်မှတ်ပါ။

အကြောင်းမူကား၊ မဖြစ်သော အတွင်းမှ အချက်အလက်များသည် အမှိုက် အဖြစ် သုံးစွဲရမည်ဟု သရုပ်ပြသည်။

နောက်ပိုင်းနေ့ရက်ရှိ ဖိုင်များတွင် 'ကျန်ရှိနေသော ဒေတာများ' သည် 0x00 ဖြစ်ပြီး၊ ၎င်းသည် ဂိမ်းတည်ဆောက်မှုအတွင်း Toolchain နှင့် ပတ်သက်သော အဆင်မပြေမှုများကို သရုပ်ပြနိုင်စေသည်။ မူလကွက်များကို မှန်ကန်စွာ သတ်မှတ်ရန် ဖွံ့ဖြိုးသူတစ်ဦးက အများအားဖြင့် နောက်ဆုံးမှသာ စဉ်းစားခဲ့သဖြင့်၊ ဒေတာများကို သတ်မှတ်ထားမလားဆိုသည်မှာ ဂိမ်းပေါ်တွင် ဘယ်တော့မှ ထိခိုက်မှုမရှိပါ။

0x000c uint(8)[] ဖိုင်အမည်-စာရင်း

ဒါဟာ 0-ဘိုင့်ထိပ်ဆုံးထားသော ဖိုင်နာမည်များ၏ စာရင်းဖြစ်ပြီး - အနည်းဆုံး တွင်ရှိသော ဒေတာအစိတ်အပိုင်းတွင် - ASCII အက္ခရာများကိုသာ မျှော်လင့်ထားသည်။

ဒေတာများကို ပုံမှန်အတိုင်း ဖတ်ရှုရာတွင် ဒီဒေတာဘလော့ကို ပိုမိုခွဲခြမ်းစိတ်ဖြာရန် အချိန်ကုန်စရာ မလိုပါ၊ အကြောင်းအရင်းက Volume အချက်အလက်များတွင် ဖိုင်နာမည်များ၏ Offset များကို တိုက်ရိုက် ရှင်းလင်းပြထားပါပဲ။

Volume Strings တွင် 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) ဘလော့ခ်အရှည်
0x0007 uint(8) အလံများ

ဗိုလ်ဌာန၏ အချက်အလက်များသည် ဖိုင်များအကြောင်း အပြုံးအလင်းသိအောင် အသေးစိတ် အချက်အလက်များကို ဖော်ပြထားပါသည်။ ၎င်းသည် တစ်ရပ်ရပ် အနေနှင့် FAT ဖိုင်အရေအတွက် စာရင်း (FAT = File Allocation Table) အင်္ဂါရပ်တစ်ခု ဖြစ်ပါသည်။

ဖိုင်အရေအတွက်သည် ဘလော့ခ်အရွယ်အစားကို စာရင်းဝင်အချက်အလက်၏ အရှည် - 14 ဘိုက်ဖြင့် မျှဝေခြင်းဖြင့် ရရှိပါသည်။

တစ်ဦးချင်းစီသော စာရင်းဝင်အချက်အလက်များသည် အောက်ပါအရေအတွက်ဖြင့် ဖွဲ့စည်းထားပါသည်-

အေဒရ် x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF အက္ခရာ
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
အဝင်ဖြစ်စဉ် ဒေတာအမျိုးအစား အမည် ရှင်းလင်းချက်
0x0000 uint(32) ဖိုင်အမည်-အရေအတွက်

ဖိုင်နာမည်စာရင်း (ဗိုလ်မြောက်-စာကြောင်း) အတွင်းရှိ ဖိုင်နာမည်မျိုးစုံကို ဘယ် Offset (!) မှာ ရှိကြောင်း ချပြပါ။

ဒါက အသုံးပြုမှုဒေတာအပိုင်းအစကို မှတ်သားပါသည်။

0x0004 uint(32) ဖိုင်-အော့ဖ်ဆက်

ဒါဟာ အားလုံးအတွက် Volume ဖိုင်အတွင်း ဘယ် Offset မှာ ဖိုင်တည်ရှိနေကြောင်း ဖော်ပြပါသည်။

0x0008 uint(32) ဖိုင်အရွယ်အစား

ဖိုင်သည် ဘိုက်တစ်များအနေနှင့် ဘယ်လောက်ကြီးကြောင်းကို ဖော်ပြပါ။

0x000c uint(16) အလံများလား?

ဖိုင်ကုဒ်ရှင်အကြောင်းပိုမိုသိရှိမှုများကိုပေးပါသည်။

  • 0x03 သည် ဖိုင်ကိုစိုက်ထုတ်ထားသောအခါ သတ်မှတ်ထားသည်။ ဤနေရာတွင် ဟပ်ဖ်မ်ပင်တစ်ခုကိုအသုံးပြုရသောကြောင့်ဖြစ်သည်။
  • 0x80 သည် ပုံမှန်အားဖြင့် အမြဲသတ်မှတ်ထားသည်။

အရွယ်အစားအပိုင်း

အေဒရ် 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) ဘလော့ခ်အရှည်
0x0007 uint(8) အလံများ

Volume-Block သည် ဖိုင်များကို ထိန်းသိမ်းရန် အသုံးပြုသော ကွန်တိန်နာတစ်ခု ဖြစ်သည်။ ၎င်းတွင် ဖိုင်အရွယ်အစားကို အကြောင်းပြချက်များကြောင့် ထပ်လျှောက်မထားပဲ - Block ဖော်မတ်ကြောင့် - ထပ်မံပါရှိပြီး အောက်တွင် အသုံးပြုမည့် ဒေတာများ ဆက်လက်ရှိသည်။

ချပ်တုံးများ

အေဒရ် 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) အလံများ

Tile များသည် Outpost-2 အထူးသီးသန့် Bitmap ရုပ်ပုံဖိုင်ပုံစံဖြစ်သည်။ ၎င်းများသည် 13 မျိုးသော Tilesets တွင် ဖြန့်ဖြူးထားပြီး၊ "wells" ဟုခေါ်ပါသည် (well0000.bmp မှ well0012.bmp အထိ)၊ ၎င်းတို့သည် maps.vol အတွင်းရှိသည်။

Tilesets / Wells တွင် ပါရှိသည့်အရာများမှာ အောက်ပါအတိုင်းဖြစ်သည်။

ဖိုင်အမည် အကြောင်းအရာ
well0000.bmp ၃၂x၃၂px အရွယ်အစားရှိသော အပြာရောင် ဂရပ်ဖစ် - ကိုယ်ပိုင် Image-Loader လုပ်ဆောင်မှုရှိမရှိ စမ်းသပ်ရန် အထူးသင့်လျော်သည်
well0001.bmp အလင်းရောင် ကျောက်ပေါ်တွင် အလင်းရောင် သဘာဝကျောင်းများနှင့် အစွန်းအထင်းများပါရှိသည်
well0002.bmp အလင်းရောင် ကျောက်ပေါ်တွင် ထည့်သွင်းနိုင်သော ထုံးစံများ - အလင်းရောင် ကျောက်ပေါ်တွင် အဆင့်တိုးမှု (သို့မဟုတ် ညွှန်းဖြစ်စေသော ဖွဲ့စည်းမှုများ၊ ဥပမာ မိုရ်များ) တို့ပါဝင်သည်
well0003.bmp အလင်းရောင် ကျောက်ပေါ်တွင် အကြောင်းအရာအမျိုးအစားများပါရှိသည်
well0004.bmp အမှောင်ရောင် ကျောက်၊ အမှောင်ရောင် ကျောက်ပေါ်တွင် အစွန်းအထင်းများနှင့် အမှောင်ရောင်ကျောက်တွင် အထူးသဖြင့် အများမျိုးစုံပါရှိသည်
well0005.bmp အမှောင်ရောင် ကျောက်ပေါ်တွင် ထည့်သွင်းနိုင်သော ထုံးစံများ - အမှောင်ရောင် ကျောက်ပေါ်တွင် အဆင့်တိုးမှု (သို့မဟုတ် ညွှန်းဖြစ်စေသော ဖွဲ့စည်းမှုများ၊ ဥပမာ မိုရ်များ) တို့ပါဝင်သည်
well0006.bmp အမှောင်ရောင် ကျောက်ပေါ်တွင် အကြောင်းအရာအမျိုးအစားများပါသည်၊ အလင်းရောင်နှင့် အမှောင်ရောင် ကျောက်ကြား အဆက်အဆံများပါဝင်သည်
well0007.bmp Lava ပါဝင်ပြီး ၄-၅ Frame Animation ပါရှိသည်
well0008.bmp မှိုနှင့် အစွန်းအထင်းများပါရှိသည်
well0009.bmp မှို-'Doodads' - မှိုပေါ်တွင် အဆင့်တိုးမှု (သို့မဟုတ် ညွှန်းဖြစ်စေသော ဖွဲ့စည်းမှုများ၊ ဥပမာ မိုရ်များ) တို့ပါဝင်သည်
well0010.bmp မှိုမှအလင်းရောင်နှင့် အမှောင်ရောင် ကျောက်သို့ ၄၈ အဆက်အဆံများပါရှိသည်
well0011.bmp မြေပုံ၏ အထင်ရှားသော အစွန်းများနှင့် အမှောင်ရောင် ကျောက်ဖြစ်သည်
well0012.bmp မြေပုံ၏ အထင်ရှားသော အစွန်းများနှင့် အလင်းရောင် ကျောက်ဖြစ်သည်

တိကျသော အကောင်အထည်ဖော်ရန်၊ Tiles များကို ရှေ့ကနေ Render လုပ်ခြင်းမပြုလုပ်ရန် အကြံပြုပါသည်၊ ထို့ကြောင့် မီးအိမ်/ညအဆင့်အဆင့်အတွက် အချက်အလက်များကို ဆက်လက် ပြုပြင်ရရန် လိုအပ်ပြီး၊ အချက်အလက်များ အရေအတွက် အများအပြား ဖြစ်ပေါ်လာပါမည်။

Tiles များသည် 32x32 Pixel အရောင်အမြင်အတွက် index လုပ်ထားသော Palette ဖြင့် 8bpp ရုပ်ပုံများ ဖြစ်ပြီး အတူတကွ စီစဉ်ထားသည်။ အထက်ပါ Tileset မှာ သို့ရာတွင် အများကြီး ပမာဏရှိနိုင်ပါသည်။

အဓိက အထုပ်သည် head နှင့် data ဆိုသော ၂ ခြားခွဲခြားထားသော ပါဌ်များပါရှိသည်။

အထက်ခေါင်းချပ်များ

အေဒရ် 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) ဗားရှင်း / ကာလာအထူး?

ဒါက ဖိုင်ဖారမတ်၏ ဗားရှင်းအချက်အလက်ဖြစ်နိုင်သည်။ ကျွန်ုပ်တွင်ရှိသော ဖိုင်များအားလုံးတွင် ဤနေရာတွင် 0x02 အချက်အလက် ရှိခဲ့သည်။

0x000c uint(32) နံပါတ် (အထက်လွှာအရည်အသွေး)

ဤသည်သည် ရုပ်ပုံဖိုင်၏အကျယ် (ပီကဆယ်) ကိုပြသသည်။

Outpost 2 ၏ အားလုံးသော Wells တွင် ဤနေရာတွင် 0x20 သို့မဟုတ် 32 ကိုမျှော်လင့်ရမည်။

0x0010 uint(32) အမြင့် (တိကျမှုအထူ)

ဤသည်သည် ဓာတ်ပုံဖိုင်၏ အမြင့်ကို ဖော်ပြပါသည် (ပီခဲလ်တွင်)။

Outpost 2 ၏ အားလုံးသော Wells တွင် ဤနေရာတွင် 0x20 သို့မဟုတ် 32 ကို မျှော်လင့်ရမည်။

0x0014 uint(32) အရောင်အနက်အမြင်ကအဘယ်နည်း?

ဤတန်ဖိုး၏အဓိပ္ပာယ်ကိုမသိပါ။

၎င်းသည် စစ်ဆေးပြီးသော ဖိုင်များအားလုံးတွင် 8 တန်ဖိုးကို包含ပါက ရောင်စုံအနက်အဖြစ်အားဖြစ်နိုင်ပါသည်။

0x0018 uint(32) Farbtiefe 2?

ဤတန်ဖိုး၏ အဓိပ္ပာယ်ကို မသိရပါ။

အဖြစ်အပျက်သည် 'ရည်မှန်းချက်' အရောင်အနက်ချောထည် ဖြစ်နိုင်ပါသည်။

ဤသို့သော အချက်အလက်များအရ စံသတ်မှတ်ထားသော RIFF- ဖိုင်ဖormat တွင် ရှိသော ပလက်တင် ဖိုင်တစ်ခု ရှိမည်။ ပလက်တင်များသည် အခြားနေရာများတွင်လည်း တစ်နေရာတည်းပေါ်လာသည့်ကြောင့် အတိအကျ သတ်မှတ်ချက်ကို ပလက်တင် တွင် ရှာဖွေနိုင်ပါသည်။

တိုင်များ ဒေတာ

အေဒရ် 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) အလံများ

နောက်ဆုံးတွင် အပြုံးပုံစံများကို ဘယ်-ကမညီရိုးမှ စတင်ပြီး ညာ-အောက်သို့ မျဉ်းဆွဲကြ သိမ်းဆည်းထားပါသည်။
ဤအချက်အလက်သည်၊ များအားဖြင့် 8bpp-Bitmap ဖွဲ့စည်းပုံရှိ ဂရပ်ဖစ်များတွင် အရောင်ကတ်တွင် အရောင်၏ အညွှန်းအနေဖြင့် ရှိသည်။

Pixeldaten သည် အထက်ကနေ ဘယ်ဘက်မှ စတင်ပြီး အောက်ဖက်သို့ အဆုံးသတ်သည်။

ဂိမ်းအင်ဂျင်သည် *လိုအပ်သလောက်* အချိန်မှီ Tiles များကို ဆွဲဆောင်နေသည်။
ဒါဟာ 32 အဆင့်ရှိသော Tiles များကို ရှိသည့် ရက်-ည လှုပ်ရှားမှုကြောင့် ဖြစ်နိုင်သည်။ အထူးသဖြင့် အလင်းရောင် အဆင့်မှ 'အနည်းငယ်' ကို လျော့ချထားသည်ဟု သိရသည်။ တိကျသော အရေအတွက်များကို မသိရှိရသေးပါ၊ ငါသည် စုစည်းမှုအခြေခံပေါ်တွင် လုပ်ဆောင်နေသည်။

v *= (daylight / 48) + 0.25;

ဒေတာများကို HSV အရေပြားများဖြင့် စုစည်းထားရှိပြီး daylight သည် 0-31 အထိ တန်ဖိုးတစ်ခု ဖြစ်ပြီး v သည် 0-1 အတွင်း တန်ဖိုးတစ်ခု ဖြစ်သည်။ ထို့အပြင်၊ မြေပုံတွင် ဘယ်ဘက်နဲ့ ညာဘက်တွင် 16 Tiles ကုန်းကို မြေပုံက သက်ရှိနေသည်ကို ထည့်သွင်းစဥ်းစားရမည် (ဒါဟာ ယူနစ်များကို မမြင်နိုင်သောအနေနဲ့ ဖန်တီးရန် ရည်ရွယ်သည်)။

အချို့သော Gamecycle တစ်ခုစီတွင် ရက်-ည လှုပ်ရှားမှုသည် မြေပုံ၏ တစ်ကွက်သာ အသစ်အောင် ပြုပြင်တာဖြစ်သည်။
တိုးမြှင့်ထားသော ရက်-ည လှုပ်ရှားမှုကို အောက်ပါအတိုင်း ရှုမြင်နိုင်သည်။

ရက်-ည လှုပ်ရှားမှု၏ မြင်ကွင်း

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) ပလက်ဖောင်းအရှည်

ဒီဖိုင်ထဲမှာ ရှာဖွေနိုင်တဲ့ ပလက်ဖောင်း အရေအတွက်ကို ပြပါ - ဘလော့ခ်ရဲ့ အာလုံးအရှည်ကို မပြပါ။

0x0007 uint(8) အမှတ်တံဆိပ်များ

သင်္ချိုင်းကြိုးပြားများ၊ အထက်ပါအတိုင်း၊ သင်္ချိုင်းကြိုးပြားများဖြစ်နိုင်သည်။

သို့သော် သင်္ချိုင်းကြိုးပြားများကို မသိရှိပါဘူး။ ကျွန်ုပ်သိရှိသော အချက်အလက်အားလုံး 0x00 နှင့် အညီဖြစ်ပြီး၊ အပြောင်းအလဲများ၏ အရေအတွက်သည် ရိုးရိုး uint(32) ဖြစ်နိုင်ခြင်းလည်း ဖြစ်နိုင်သည်။

PRT သည် အထူးသဖြင့် ဘာကိုဆိုလိုသလဲဆိုတာ မသိရပါ။ ဥပမာအားဖြင့် 'Palette and Ressource Table' ဟု ဆိုနိုင်ပါသည် - အဆိုပါ ဖိုင်သည် op2_art.prt ဟု အမည်ပေးထားပြီး maps.vol တွင် ရှိပါသည် - အမည်ပေးထားသည့်အရာဖြစ်ပါသည်၊ သို့မဟုတ် ဤသည်သည် အလုပ်လုပ်ဆောင်မှုကို ကောင်းစွာ ဖော်ပြနိုင်ပါသည်။

ဒီဖိုင်မှာ ပလက်ဖောင်းစာရင်း၊ အသုံးပြုခဲ့တဲ့ Bitmaps အပေါင်းတို့ကို ရေးစပ်ထားတဲ့ စာရင်း၊ အပြောင်းအလဲသတ်မှတ်ချက်များနှင့် မသိရသေးသော ဒေတာများစွာ ပါဝင်သည်။ ထိုဖိုင်သည် ယခင်က အသုံးပြုခဲ့သော အကြောင်းအရာဖန်သားပုံစံကို ချို့ယွင်းစွာ လိုက်နာထားသည်၊ အချက်အလက်များ များစွာသည် ဤစံနှုန်းကို မလိုက်နာပါ။

CPAL အပိုင်း (Palette-Container အတွက်ဆိုသည်) သည် ပလက်ဖောင်းဒေတာကိုသာ လုပ်ဆောင်ပြီး၊ စံအားဖြင့် 1052 Byte အရွယ်အစားရှိသော 8-Bit ပလက်ဖောင်းများ ရှိမှုကို ဖေါ်ပြသည်။

1052-Byte အဆိုအရ သတ်မှတ်ထားသော အချက်အလက်များသည် မကျေနပ်မှုရှိသည်၊ အကြောင်းမှာ ပလက်ဖောင်းဖန်သားပုံစံသည် အမျိုးမျိုးသော ပလက်ဖောင်းအရွယ်အစားများကို သင့်လျော်စွာ ထောက်ထားနိုင်သည်။ အဆိုပါ အချက်အလက်သည် Outpost 2 နှင့် အတူ ထုတ်လုပ်မည့် ဒေတာကိုသာ သက်ဆိုင်ပါသည်။

ပလက်ဖောင်းစာရင်းအပြီးတွင် အခိုးအခန်းမရှိဘဲ Bitmaps စာရင်းကို တိုက်ရိုက် ဆက်လက် ရေးသားထားပြီး၊ ထို့နောက် Animations စာရင်းကိုလည်း တိုက်ရိုက် ဆက်လက် ရေးသားထားသည်။
နှစ်ခုလုံးကို uint(32) (သို့မဟုတ် uint24+uint8 flag?) ဖြင့် စတင်ရေးသားထားပြီး၊ ထိုအချက်အလက်များ၏ စုစုပေါင်းအရေအတွက်ကို ဖော်ပြထားသည်။

ပလက်တင်

အေဒရ် 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) ပလက်ဖောင်း အရှည်

ဤဖိုင်တွင်တွေ့ရသောပလက်ဖောင်းအရေအတွက်ကိုပြသပါ - ဘလိုက်ရဲ့အရှည်ကို Byte ဖြင့်မဟုတ်ပါ။

0x0007 uint(8) အထိမ်းအမှတ် သင်္ကာများ

ထို့ကြောင့် အများအားဖြင့် အမှတ်အသားများ ဖြစ်နိုင်သည်။

ဒါပေမယ့် အမှတ်အသားများကို မသိပါဘူး။ ကျွန်ုပ်သိသမျှ တန်ဖိုးအားလုံး 0x00 နဲ့ ကိုက်ညီနေတဲ့အတွက် ကပ်ပေါင်းရေအတွက် ရှိနိုင်တဲ့ အနေနဲ့ အရေအတွက်ကို လွယ်ကူဖြစ်စေဖို့ uint(32) အဖြစ်သာ ရှိနိုင်ပါသည်။

ပလက်ဖောင်းအချက်အလက်များကို ဖတ်ရှုရရန် အလွန်လွယ်ကူပါသည်။
၎င်းတို့တွင် စာတန်းခေါင်းနှင့် ဒေတာပိုင်းအစိတ်အပိုင်း တစ်ခုချင်းစီ ပါဝင်သည်။

ပလက်ဖောင်းခေါင်းစဉ်

အေဒရ် 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) ပလက်ဖောင်း အရှည်

ဤဖိုင်တွင်တွေ့ရသောပလက်ဖောင်းအရေအတွက်ကိုပြသပါ - ဘလိုက်ရဲ့အရှည်ကို Byte ဖြင့်မဟုတ်ပါ။

0x0007 uint(8) အထိမ်းအမှတ် သင်္ကာများ

ထို့ကြောင့် အများအားဖြင့် အမှတ်အသားများ ဖြစ်နိုင်သည်။

ဒါပေမယ့် အမှတ်အသားများကို မသိပါဘူး။ ကျွန်ုပ်သိသမျှ တန်ဖိုးအားလုံး 0x00 နဲ့ ကိုက်ညီနေတဲ့အတွက် ကပ်ပေါင်းရေအတွက် ရှိနိုင်တဲ့ အနေနဲ့ အရေအတွက်ကို လွယ်ကူဖြစ်စေဖို့ uint(32) အဖြစ်သာ ရှိနိုင်ပါသည်။

0x0008 uint(32) Palettenformat-ဗားရှင်း?

ကန့်သတ်ထားသော Palettenformats-version ကို သတ်မှတ်ပေးသည်။

Outpost2-Paletten များသည် 0x01 version ကို ပိုင်ဆိုင်နေသည့် အခြေအနေဖြစ်သည်။

ပလာက်ဒေတာများ

အေဒရ် 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) အထိမ်းအမှတ် သင်္ကာများ

ဒေတာအပိုင်းသည် ပုလင်းအမှတ်များကို ထည့်သွင်းထားသည်။ ပုလင်းအမှတ်များအရေအတွက်သည် Block-အကွာအဝေး / 4 မှ လွှတ်တင်သည်။

အမှတ်တရအမှတ်များသည် အောက်ပါ ရိုးရှင်းသည့် ဖွဲ့စည်းမှုကို 가지သည်။

အေဒရ် x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF အက္ခရာ
0x0000 -- -- -- 04 -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
အဝင်ဖြစ်စဉ် ဒေတာအမျိုးအစား အမည် ရှင်းလင်းချက်
0x0000 uint(8) အနီ-အစိတ်ပိုင်း

အရောင်၏ အနီအရောင် အပိုင်းကို ဖျော်ဖြေရန်

0x0001 uint(8) အစိမ်းရောင် အစိတ်အပိုင်း

အရောင်၏ အစိမ်းအရောင် အချိုးကို ဖျတ်ပြထားသည်

0x0002 uint(8) အပြာကော်ပိုနင့်

အရောင်၏ အပြာအရောင် အပိုင်းကို ဖော်ပြသည်

0x0003 uint(8) မသိဘူး - ကာယာ?

ဤတန်ဖိုးသည်ဘာကိုဆိုလိုသည်ကိုရှင်းလင်းမှုမရှိပါ၊ အကြောင်းအရာအရ 0x04 ဖြစ်နေသည်။

ဖလေးများအကြောင်းအခြားထပ်တူသိရမည်မှာ၊ Animation များတွင်အသုံးပြုမည့် ဖလေးများအတွက် အချက်အလက်များမှာ အောက်ပါစည်းကမ်းများဖြစ်သည်။

  • ပထမဦးစွာသောအရောင်သည် မည်သည့်ဖလှယ်မြောက်ကိုင်တွယ်မှုမှမဆို အမြဲတမ်း အထဲမှာ ရှိနေသည်။
  • ဖလေးကွက်များ ၁-၂၄ သည် ဖလေး ၁-၈ တွင် ကစားသမားအရောင်အနေဖြင့် သတ်မှတ်ရသည်။
    ကစားသမား ၁ အပြင် အရောင်များမှ နောက်ထပ်ရောက်ရှိရာကို မသိပါ။
    ကျွန်ုပ်ထင်ပါတယ်၊ ကျန်ရှိသောအရောင်များကို ထိန်းချုပ်ထားသည်။

ဖလေး အညွှန်း

ဘစ်မပ်

အေဒရ် x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF အက္ခရာ
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
အဝင်ဖြစ်စဉ် ဒေတာအမျိုးအစား အမည် ရှင်းလင်းချက်
0x0000 uint(32) အထောက်အထားထားသော အကျယ်

အဆိုပါ Pixel ဒေတာ အတန်းများ၏ အကျယ်ကို Byte အတိုင်းအတာဖြင့် ဖေါ်ပြသည် - အခြားသော 4-Byte အကန့်အသတ်များနှင့် အညီဖြစ်သည်။

ထို့ကြောင့် သတ်မှတ်ထားသော ဓာတ်ပုံ အတန်းတစ်ခုကို လျင်မြန်စွာရှာဖွေရန် အဆင်ပြေသည်။

ဤတန်ဖိုးကို ကွဲပြားစွာ သိမ်းဆည်းထားရခြင်း၏ အကြောင်းရင်းသည် သတ်မှတ်ချက် မရှိပါ၊ သို့သော် ကုဒ်ကို အမြန်စွာ ဖျော်ဖြေရန် သင်္ချာယူမှု ဖြစ်နိုင်ပါသည်။
ဖြစ်နိုင်သည်မှာ ၎င်းသည် Render-Code များအတွက် အဆင်ပြေမှုဖြစ်ပါသည်။

0x0004 uint(32) အော့ဖ်ဆက်

Bitmap တွင် ပထမဆုံး အကြောင်းအရာ၏ Offset ကို ပြသသည်

0x0008 uint(32) အမြင့်

ဓာတ်ပုံ၏အမြင့်ကိုပစ်ခတ်ချက်ဖြင့်ပြသည်

0x000c uint(32) ကျယ်ဝန်းမှု

ဓာတ်ပုံ၏ အကျယ်ကို ပစ်စည်းအနေနှင့် ဖေါ်ပြပါ

0x0010 uint(16) ထိပ်

ဓာတ်ပုံ၏ အမျိုးအစားကို ဖေါ်ပြပါ။ ဤသည်မှာ Bitmask ဖြစ်ပါသည်ဟု သင်္ချာကြည့်ရသည်:

  • 0x04 သည် 1bpp-ဂရပ်ဖစ် ဖြစ်ပါသေးရင် သတ်မှတ်ထားသည်။
  • 0x40 သည် Windowing ကို အကောင်အထည်ဖော်ရန် လိုအပ်သော ဂရပ်ဖစ် ဖြစ်ပါသေးရင် သတ်မှတ်ထားသည်။
0x0012 uint(16) ပလက်တီ

PRT ဖိုင်ထဲမှ ဘာပလက်တစ်ခုကို အသုံးပြုသင့်ကြောင်း သတ်မှတ်ပါ

PRT ဖိုင်၏ ဒေတာဖွဲ့စည်းမှုသည် စပရိုက်အတွက် အသုံးပြုသော Bitmap များကို ဘယ်လိုဖွဲ့စည်းထားသည်ကို ပြသသည်။ ဤ Bitmap များသည် စပရိုက်၏ အနာဂတ်အကြောင်းအရာတစ်ခုအပါအဝင် ဖြစ်သည်၊ အများအနေနှင့် စပရိုက်၏ အနာဂတ်အမှတ်တစ်ခုအတွက် အစုလိုက်စုကို ဖွဲ့စည်းထားသည်။

အကြောင်းအရာ ပုံရိပ်ဒေတာများ သည် op2_art.BMP တွင် ရှိပြီး ဂိမ်းအတွင်းရှိ ဖိုင်ထဲတွင်ရှိသည်။
ဤ Bitmap ဖိုင်သည် (အများအားဖြင့် မှန်ကန်သော) RIFF-Bitmap header ရှိသော အကြောင်းအရင်း သွေးထဲမသိပါ။ Outpost 2 သည် ဂရပ်ဖစ်များကို နာရီခွဲသုံး၍ အလုပ်လုပ်ရန် စနစ်-API များကို အသုံးပြုသည့် အခါ၊ ဤ header ကို ထာဝရအသုံးပြု၍ ကွဲပြားသော အခွင့်အလမ်းများကို ပြောင်းလဲသွားသည်။

Pixel ဒေတာများသည် BMP ဖိုင်တွင် Offset + uint32-Offset အနေဖြင့် နေရာတွင် ရှိသည်၊ ၎င်းသည် BMP ဖိုင်တွင် အကြောင်းအရာ 0x000A တွင် ရှိသည် (RIFF-Bitmap ဒေတာ offset) နှင့် ပြန်လည်ရှာဖွေကြသည် - နှင့် အထက်ဘက်မှ ဘယ်ဘက်အောက်သို့ အစီအစဉ်ဖြင့် အသက်သွင်းထားသည်။

Monochrome 1bpp ဂရပ်ဖစ်များကို အမှန်အတိုင်း ရင်ခုန်၍ ရေးဆွဲနိုင်သည်၊ အပြောင်းအလဲက အပြုံး 0 သည် တစ်ပြင်လုံးသာ အမြင်လွှမ်းမိုးနေပြီး၊ အပြောင်းအလဲ 1 သည် အနိမ့်ခြစ်/ဖြူဖြစ်သည်၊ Monochrome ဂရပ်ဖစ်များသည် ယေဘုယျအားဖြင့် ယာဉ်နှင့် အဆောက်အအုံ၏ အမြင်လွှမ်းမိုးမှုများကို ဂရပ်ဖစ်များတွင် အသုံးပြုသည်။

ဒါကြောင့် အများအားဖြင့် ဂရပ်ဖစ်များကို တွဲဖက်နိုင်သည်။

ကာကွယ်မှုရှိသော နေရပ်မော်ဂျူး (Plymouth)

အင်မတန်မှုများ

ယခုအား Outpost 2 ဒေတာပုံစံများအတွင်း အထွေထွေသင်္ချာအဆင့်အမြင့်သို့ ရောက်ရှိကြပါစို့:
အပြောင်းအလဲများ။

အပြောင်းအလဲစာရင်းများကို အချက်အလက်အတည်ပြုမှုအတွက် အဓိပ္ပာယ်ရှိသော ကမ္ဘာလုံးဆိုင်ရာ Header ဖြင့် စတင်သည်။ ထို့နောက် လက်ရှိအပြောင်းအလဲသတ်မှတ်ချက်များကို ၃ ဆင့်အထိခွဲဝေထားသည်။

  1. အပြောင်းအလဲ
    အပြောင်းအလဲသည် အထူးအဆင့်ဖြစ်သည်; ၎င်းသည် တပ်ဖွဲ့၊ အဆောက်အဦး သို့မဟုတ် 'ပိုင်ထုအပြောင်းအလဲ' (ကမ္ဘာလုံးပေါက်, မိုးလေဝသ, ပျက်စီးမှု) အတွက် စတင်နေရာတစ်ခုတွင် အပြောင်းအလဲကို ဖျော်ဖြေရန် ဖြစ်သည်။
  2. ဖရိမ်
    ဖရိမ်သည် အပြောင်းအလဲအတွင်း သီးသန့်ပုံရိပ်တစ်ပုံဖြစ်သည်။ အပြောင်းအလဲတစ်ခုတွင် ဖရိမ်တစ်ခု သို့မဟုတ် ဖရိမ်အများအပြား ပါဝင်နိုင်သည်။
  3. ဆတ်ဖရိမ်
    ဆတ်ဖရိမ်သည် သတ်မှတ်ထားသော Bitmap တစ်ခုကို သတ်မှတ်ချက်အရ ဖရိမ်တစ်ခု၏ သတ်မှတ်နေရာတွင် ရိုက်ထည့်ရန် သတင်းအချက်အလက်ကို ဖော်ပြသည်။ ဖရိမ်တစ်ခုတွင် ဆတ်ဖရိမ်တစ်ခု သို့မဟုတ် ဆတ်ဖရိမ်အများအပြား ပါဝင်နိုင်သည်။

ထို့နောက် လက်ရှိ အပြောင်းအလဲသတ်မှတ်ချက်များကို တိုက်ရိုက် ဆက်လက်ကြည့်ရှုနိုင်ပါသည်။

အေဒရ် x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF အက္ခရာ
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
အဝင်ဖြစ်စဉ် ဒေတာအမျိုးအစား အမည် ရှင်းလင်းချက်
0x0000 uint(32) အနုမြူအင်မတန်များ

အာနီမေးရှင်းဒေတာများ မည်မျှရှိသည်

0x0004 uint(32) ဖရိမ်းအရေအတွက်

စုစုပေါင်း ဘယ်ေလာက္ ဖရိမ်များ ရှိရမလဲ

0x0008 uint(32) အရေအတွက် Subframes

စာရင်းတွင် လုံးဝ ရှိရမည့် ဆုပရိတ်များရေ

0x000c uint(32) ရွေးချယ်စရာအရေအတွက်

ဘယ်နှစ်ခု "ရွေးချယ်နိုင်သော အချက်အလက်များ" ရှိသနည်း။

အာရုံခံပုံပြင်

အေဒရ် x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF အက္ခရာ
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0020 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
အဝင်ဖြစ်စဉ် ဒေတာအမျိုးအစား အမည် ရှင်းလင်းချက်
0x0000 uint(32) မသိပါ ၁

မသိသည့်အချက်အလက်များ

0x0004 uint(32) Bounding Box: ဘယ်ဘက်

Bounding Box ၏ ဘယ်ခြမ်းအစ (ပီကစယ်တွင်) ကို ဖော်ပြပါ။

0x0008 uint(32) Bounding Box: အထက်

ဒါက Bounding Box ရဲ့ အထက်ဆုံးအစ (ပီခဲ) ကို ဖော်ပြထားပါတယ်။

0x000c uint(32) Bounding Box: အကျယ်

အထင်အမြင် Bounding Box ၏ အနံ (Pixel အရ) ကို ဖော်ပြပါ။

0x0010 uint(32) Bounding Box: အမြင့်

ဘာသာစကားတစ်ခုတွင် Bounding Box ၏အထူ (Pixel) ကိုပြသပါ။

0x0014 uint(32) Offset: X

အာနိသင်၏အလယ်ပိုင်းကိုအနေသို့ရောက်အောင်ပြသပါ

0x0018 uint(32) Offset: Y

အနိမ့်အမြင့်အကြား ဗဟိုအချက်ကို အပြောင်းအလဲမှာ ဖေါ်ပြသည်

0x001c uint(32) မသိပါ။ 2

မသိသော်သော အချက်အလက်

0x0020 uint(32) ဖရိမ်းအရေအတွက်

ဤ Animation တွင် ပါရှိသော Animation frame အရေအတွက်ကို ဖော်ပြသည်။

0x0024 uint(32) Windows အရေအတွက်

ကြိုးစားရင်းမှာ သုံးရမည့် ပြတင်းပေါက်အရေအတွက်ကို ဖေါ်ပြပါ။

အထက်ဆုံးအနက်အရောင်၊ အာဏာသိမ်းခြင်း၏ ဒေတာများသည် အဓိပ္ပါယ်ဖြစ်သည် - Boundingbox သည် ယာဉ်/အဆောက်အအုံကို သတ်မှတ်ထားသော အမှတ်အသား၏ ညွှန်းဆိုချက်များကို ဖေါ်ပြသည်၊ သို့မဟုတ် အထက်တွင် ရွေးချယ်ထားသော အခါတွင် သာမန် ဤအရာသည် ကလစ်နှိပ်နိုင်သော အပိုင်းကို ဖော်ပြပါတယ်။

Offset သည် "သွားလာရာနေရာ" ကို သတ်မှတ်ပါသည်; လူကြီးမင်းသည် အထူးဂိမ်းအတွင်း လုပ်ဆောင်ရန် လိုအပ်သော ညွှန်းဆိုချက်များကို ထည့်သွင်းရမည်။ အထူးသဖြင့် အနောက်ပိုင်မှ ဆွေးနွေးရင်၊ Offset သည် ဤနေရာတွင် ညွှန်းဆိုချက်၏ အစပြုချက်ကို ဆိုလိုသည်။

Windows များသည် Offset အတိုင်း၊ တစ်ခုချင်းစီ (တစ်ခုချင်းစီ Windows အတွက်) 4 uint(32)-တန်ဖိုးများရှိသည်၊ ထိုအချက်အလက်များသည် သီးသန့် Subframes အတွက် အသုံးပြုနိုင်သည့် အပိုင်းကို ဖေါ်ပြသည်။ Windows များအပြင်၊ Bitmap အတွက် သတ်မှတ်ထားပါက၊ ရေးဆွဲရန် သင့်လျော်မှုမရှိပါ။

ခွန်

အေဒရ် x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF အက္ခရာ
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
အဝင်ဖြစ်စဉ် ဒေတာအမျိုးအစား အမည် ရှင်းလင်းချက်
0x0000 uint(8) Subframe အရေအတွက်နှင့် Optional 1, 2 အတွက် Toggle

ဤတန်ဖိုးတွင် ပါဝင်သည် -

  • 0x7F (Bitmaske): ဤဖရိမ်တွင် အသုံးပြုထားသော Subframes အရေအတွက်
  • 0x80: Optional 1 နှင့် 2 ရှိမရှိ အချက်အလက်
0x0001 uint(8) မသိရသေးသော ၁ နှင့် ရွေးချယ်စရာ ၃, ၄ အတွက် Toggle

ဤတန်ဖိုးတွင် ပါဝင်သည်:

  • 0x7F (ဘစ်မတ်): မသိရသေး - ငါသည် ဤသည်မှာ နောက်ထပ်ဖရေးမ်ကို ပြသရန် အချိန်ကြာမည့် Gameticks အရေအတွက်ဖြစ်မည်ဟု အထင်ကြီးနေပါသည်
  • 0x80: Optional 3 နှင့် 4 ရှိမရှိအချက်အလက်
0x0002 uint(8) ရွေးချယ်စရာ ၁

မသိပါ

0x0003 uint(8) ရွေးချယ်မှု ၂

မသိပါ

0x0004 uint(8) ရွေးချယ်စရာ ၃

မသိပါ

0x0005 uint(8) ရွေးချယ်မှု ၄

မသိပါ

ခွဲမိုး

အေဒရ် x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF အက္ခရာ
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
အဝင်ဖြစ်စဉ် ဒေတာအမျိုးအစား အမည် ရှင်းလင်းချက်
0x0000 uint(16) Bitmap-အိုင်ဒီ

ဤ Subframe အတွက် သုံးမည့် Bitmap ကို ဖော်ပြပါ

0x0002 uint(8) မသိပါ ၁

မသိရပေမယ့် - ဒါပေမယ့် ကၽြန္ေတာ္ အထူးအားနည်းစွာ သံသယရှိတယ်၊ ဒါဟာ Render-Priorität (Z-Layer) ဖြစ်တဲ့အရာ ဖြစ်ရင် အချို့ဖြစ်နိုင်ပါတယ်။

0x0003 uint(8) Subframe-Id

ဘယ် Subframe မှာရှိနေတာလဲဆိုတာကို ဖော်ပြပါ

0x0004 sint(16) အဆောင် - အနက်ရောင်

ဖရိမ်းအတွင်းရှိ Subframe ကိုဘယ်နေရာမှာထားရမလဲ၊ သို့မဟုတ် Bitmap ကိုဟောဇာတ်လမ်းတစ်ခုလျှောက်၍ ဘယ်လောက် Pixel ပေါင်းထားရမလဲ ဆိုတာကို ဖျော်ဖြေရန် ပြောပြပါ။

0x0006 sint(16) အဆင့်ချိုး - နောက်ကျော

ဖရိမ်အတွင်း မည်သည့်နေရာတွင် အောက်ခြေဖရိမ်ကို ထားရမည်ကို သို့မဟုတ် ဘစ်မပ်ကို ဘယ်လောက် စက်ကစ်ပိုင်းစီမံရန် အပြောင်းအလဲပြုလုပ်မည်ကို ဖေါ်ပြပါ။

ဒါကြောင့် အခုထိ ကျွန်ုပ်တို့သည် တစ်ခုချင်းစီသော ဖရိမ်များကို အပြုံးအနည်းငယ် အပြုံးများအဖြစ် အကြောင်းအရာကို ပေါင်းစပ်နိုင်ပါပြီ၊ အထူးသဖြင့် အဆက်အသွားကို အထူးပြီးပြည့်စုံသော အပြုံး၊ 500 အညွှန်းနဲ့ သရုပ်ပြထားပါတယ်။

အနီမေးရှင်း 500

Animation 500 သည် Plymouth-Transporter တစ်ခုကို အထူးသဖြင့် သံမဏိ အမှုန့်ဖြင့် အလွှာထားရောင်းခြင်းကို ဖျက်စီးခြင်းကို ပြသပါသည်။ ၎င်းသည် Windowing အလုပ်လုပ်မှုကို အသုံးပြုသော အနည်းငယ်သော animation များထဲမှ တစ်ခုဖြစ်သည်။

ဒါ့ကြောင့် အပြည့်အစုံ animation ကို ပေါင်းစည်းနိုင်သည်။
ဒါပေမယ့် အပေါ်ဘက် Ladeluke နှင့် ပတ်သက်၍ အချို့သော ပြproblem အား ရှိနေပါသည်။ ဤနေရာတွင် ရုပ်သံအမျိုးအစား အချက်အလက်တွင် သက်ဆိုင်ရာ Bit မထားပါ။

ဒီဂိမ်းမှ ပေါင်းစည်းထားသော အထူးသဖြင့် လှပသော animation ဖြင့် sprites အချို့ကို ထပ်မံ ဖျော်ဖြေရန်။

Animation 500 ရဲ့ Rendering ကို ဖော်ပြပါသည်။

Animation 500 ပြင်ဆင်ပြီး ပေါင်းစည်းထားသည်။

Plymouth သည် အဆောက်အဦထုတ်လုပ်ခြင်းစက်ရုံ

Eden အာကာသဆိပ်ကမ်း

Eden ဆေးဘက်ဆိုင်ရာ ဗဟို

SCAT

Plymouth အာကာသဆိပ်ကမ်း

Easteregg:
ခရစ္စမတ်ဘုရားသခင်

Easteregg:
Dans Dog

အသုံးပြုသူ အင်တာဖေ့စ်

ယခင်က gebürstetem Metall ခံစားမှုရှိသော ဂိမ်း၏ အသုံးပြုသူအင်တာဖေ့စ် (User Interface) ရှိနေပါပြီ။

ဒါပေမယ့် ဤနေရာတွင် Dynamix က ရာသက်ကို အသစ်ပြန်ဖန်တီးစရာမလိုခဲ့ကြောင်း မြင်ရသည်။ ဤနေရာတွင် Windows မှ ရရှိသော User32 နှင့် GDI32 API များကိုသာမက အထူးသဖြင့် User32 ရဲ့ အရင်းအမြစ်စီမံခန့်ခွဲမှုကိုလည်း အသုံးပြုထားသည်။

ဤအရာများကို Angus Johnson ပေါ်မူတည်၍ အခမဲ့သုံးစွဲနိုင်သော Resource Hacker ကဲ့သို့သော အစီအစဉ်များမှ သို့မဟုတ် Linux / Mac OS အတွက် Wine ကို သုံးခြင်းမှ ရှောင်လွှားလိုပါက icoutils တွင် ပါရှိသော wrestool ကို အသုံးပြု၍ ထုတ်ယူနိုင်သည်။

ဖိုင်အမည် အကြောင်းအရာ
Outpost2.exe ဂိမ်း၏ အိုင်ကွန်ကိုသာ လက်ရှိပါရှိပြီး New Terra ရှိ အာကာသစခန်းကို ပြသထားသည်
op2shres.dll ဘုတ်အဖွဲ့များ၊ ခလုတ်များ၊ ရေဒီယိုခလုတ်များနှင့် ခက်ဘုတ်များအတွက် ဂရပ်ဖစ်များအပြင် ဒိုင်ယာလော့ ချိန်းနှင့် သမိုင်း စီမံခန့်ခွဲမှု စာသားများအတွက် ခံယူပုံများနှင့် အဓိကမီနူး အနောက်ခံ ဂရပ်ဖစ်ကိုလည်း ပါရှိသည်
out2res.dll ဂိမ်းအတွင်း မျက်နှာပြင် အလှဆင်မှု၊ ပုံမှန်နှင့် အထူး သတ္တုများအတွက် အိုင်ကွန်များ၊ လှုပ်ရှားမှု အားဖြည့်ရန် မျက်နှာပြင်၊ ဒိုင်ယာလော့များအတွက် ဂရပ်ဖစ်များနှင့် အခြား ဆားကပ် ဂရပ်ဖစ်များကို ဂိမ်းအတွင်း စာရင်းကာ စီရင်ထားသည်