Outpost 2 డేట్ ఫైల్ ఫార్మాట్లు · bei.pm
ఈ పేజీలో వివరిస్తున్న ఫైల్ ఫార్మాట్లు Dynamix, Inc. మరియు Sierra Entertainment యొక్క మేధో స్వాధీనం యొక్క సాంకేతిక విశ్లేషణ ఆధారంగా ఉన్నాయి.
ఈ మేధో స్వాధీనం ప్రస్తుతం Activision Publishing, Inc. / Activision Blizzard, Inc. యొక్క వారసత్వంలో ఉంది మరియు ప్రస్తుతం Microsoft Corp. యొక్క స్వామ్యతలో ఉంది.
ఈ సమాచారం రివర్స్ ఇంజినీరింగ్ మరియు డేటా విశ్లేషణ ద్వారా చరిత్రాత్మక డేటాతో ఆర్కైవింగ్ మరియు ఇంటరాపరబిలిటీ కోసం సేకరించబడింది.
ప్రత్యేక లేదా రహస్య స్పెసిఫికేషన్లు ఉపయోగించబడలేదు.
ఈ ఆట ప్రస్తుతం gog.com వద్ద డౌన్లోడ్ కోసం కొనుగోలు చేయబడుతుంది.
ఈ కింది వ్యాస శ్రేణి "Outpost 2: Divided Destiny" అనే రియల్-టైమ్ వ్యూహాత్మక ఆటకు సంబంధించి డేటా ఫార్మాట్లపై నా పరిశీలనలను పత్రబద్ధం చేస్తుంది, ఇది 1997 లో సియరా ద్వారా విడుదల చేయబడింది మరియు డైనమిక్స్ అభివృద్ధి చేసింది.
నేను 2015 నవంబర్ 1 నుండి 2015 నవంబర్ 14 వరకు ప్రధానంగా ఆట యొక్క డేటాను విశ్లేషించడం మరియు దానితో ఏమి చేయాలో పరిశీలించడం లో ఉన్నాను.
ఇప్పుడు వరకు నేను పొందిన సమాచారానికి అనుగుణంగా, డైనమిక్స్ - అనేక వాణిజ్య సంస్థలల్లా - కొన్ని డేటా ఫార్మాట్లను ప్రత్యేకంగా Outpost 2 కోసం అభివృద్ధి చేయలేదు, కానీ మెక్వారియర్ సిరీస్ వంటి ఇతర అభివృద్ధుల్లో (మార్పు చేసి) ఉపయోగించారు.
అయితే, డేటా ఫార్మాట్ల యొక్క కొత్త ఆవిష్కరణ శక్తి వాస్తవానికి పరిమితమై ఉంటుంది మరియు సాధారణ ఫార్మాట్ల వంటి JFIF మరియు RIFF నుండి ఉన్న పురాతన శ్రేణి ఆలోచనలపై ఆధారపడి ఉంది.
తబుల్స్ మరియు డేటా ఫార్మాట్ల యొక్క అనువాదానికి మరింత సమాచారం ఇది ఏమిటి? వద్ద అందుబాటులో ఉంది.
ఇక్కడ ఇవ్వబడిన డేటా సాధారణంగా చిన్న ఎండియన్ గా అర్థం చేసుకోవాలి.
చివరగా, రివర్స్ ఇంజనీరింగ్ చాలా సరదాగా ఉంది, అయితే ఇది పూర్తిగా కాదు.
చాలా ఆసక్తికరమైన ఆట మెకానిక్లను అందించే గనుక, నిస్సందేహంగా మీరు ఆ ఆటను ఆడాలని కూడా సిఫారసు చేస్తాను.
పరిచయం
Outpost 2 ఉపయోగించే డేటా ఫార్మాట్లు JFIF / PNGని గుర్తుచేసేవిధంగా నిర్మాణం కలిగి ఉన్నాయి - ప్రతి డేటా బ్లాక్ కడపటి 8 బైట్ హెచ్చరికను కలిగి ఉంటుంది. అందువల్ల, నేను ప్రతి హెచ్చరికను అవసరమైన ప్రత్యేక స్థలాల్లో డాక్యుమెంట్ చేయడం వదిలేస్తున్నాను మరియు అక్కడ కేవలం వ్యతిరేకతలను మాత్రమే డాక్యుమెంట్ చేస్తున్నాను.
ఫార్మాట్ ఎప్పుడూ క్రింది విధంగా ఉంటుంది; నిజమైన వినియోగ డేటా అందులో ఉంచబడ్డాయి:
అడ్ర్ | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | చరిత్ర | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ఒప్పిడి | డేటా రకం | పేరునామం | వివరణ |
---|---|---|---|
0x0000 | uint(32) | మాజిక్ బైట్స్ | మరుసటి డేటా బ్లాక్లో ఏమి ఊహించాలో అందించే సమాచారం కలిగి ఉంది. తెలియబడిన విలువలు:
|
0x0004 | uint(24) | బ్లాక్-లెంగ్త్ | ఈ సమాచారం అందిస్తోంది, తరువాతి డేటా బ్లాక్ ఎంత పెద్దది (బైట్లలో) అనే విషయంపై. ఇది కచ్చితమైన ఉపయోగకరమైన డేటాను సూచిస్తోంది - 8 హెడ్డర్-బైట్లు ఇందులో లేవు. |
0x0007 | uint(8) | జెండాలు? | ఈ బ్లాక్ ప్రత్యేకంగా ఏమి ఉపయోగిస్తుందో తెలియదు. వాల్యూమ్లలో ఈ విలువ తరచుగా 0x80 ఉంటుంది, ఇతర ఫైళ్లలో 0x00 తరచుగా ఉంటుంది. ఇది ఫ్లాగ్-సెట్ కావచ్చు అని సూచిస్తోంది. |
వాల్యూమ్స్
వాల్యూమ్స్ అనేవి ఆట కోసం ఒక డేటా కంటైనర్, టార్బాల్ వంటి ఆర్కైవ్ ఫార్మాట్కు సమానంగా ఉంటాయి. అవును, అవుట్పోస్ట్ 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) | పేల్డ్-లెంగ్త్ | ఇది కింద ఇచ్చిన డేటాలో ఎంత బైట్లు వాస్తవంగా ఉపయోగపడుతున్నాయో సూచిస్తుంది. వాల్యూమ్-స్ట్రింగ్స్-జాబితాలో మిగిలిన డేటా స్పష్టంగా గార్బేజ్ గా పరిగణించబడుతుంది. తరువాతి తేదీతో ఉన్న ఫైళ్లలో ఈ 'మిగిలిన డేటా' 0x00 గా ఉంది, ఇది ఆట అభివృద్ధి సమయంలో టూల్చెయిన్లో కొంత లోపం ఉన్నట్లు సూచించవచ్చు, అంటే, ఒక అభివృద్ధికర్త బఫర్ల సరైన ప్రారంభాన్ని చూసుకోవడానికి చాలా ఆలస్యంగా వచ్చాడని, ఎందుకంటే డేటా ప్రారంభం చేయబడిందా లేదా లేదు అన్నది ఆటపై ప్రభావం చూపదు. |
0x000c | uint(8)[] | ఫైల్ పేర్ల జాబితా | ఇది 0-బైట్-టర్మినేటెడ్ ఫైల్ పేర్ల జాబితా, ఇది - కనీసం ప్రస్తుత డేటా భాగంలో - కేవలం ASCII చిహ్నాలను ఆందోళన చెందిస్తుంది. ఈ డేటా బ్లాక్ను వివరంగా విశ్లేషించడం అవసరం లేదు, ఎందుకంటే వాల్యూమ్ సమాచారం లోనే ఫైల్ పేర్ల యొక్క ఆఫ్సెట్లు నేరుగా సూచించబడ్డాయి. |
వాల్యూమ్ స్ట్రింగ్స్ అనేవి వాల్యూమ్లో ఉన్న ఫైల్ పేర్ల జాబితా.
ఊహా సమాచారం
అడ్ర్ | 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 = ఫైల్ అలొకేషన్ టేబుల్)
ఫైల్స్ సంఖ్య బ్లాక్ పరిమాణాన్ని డైరెక్టరీ నమోదుల పొడవుతో - 14 బైట్ - భాగించడంతో వస్తుంది.
ప్రతి డైరెక్టరీ నమోదు ఈ విధంగా ఉంటుంది:
అడ్ర్ | 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) | ఫైల్ పరిమాణం | ఫైల్ యొక్క పరిమాణం బైట్లలో ఎంత ఉందో చూపిస్తుంది. |
0x000c | uint(16) | జెండాలు? | ఫైల్ కోడింగ్ గురించి అదనపు సమాచారం అందిస్తున్నది.
|
ఘనపరిమాణ బ్లాక్
అడ్ర్ | 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) | జెండాలు |
ఒక వాల్యూమ్-బ్లాక్ అనగా ఫైల్స్ని స్వీకరించే కంటైనర్, ఇది కేవలం బ్లాక్ ఫార్మాట్ కారణంగా ఫైల్ పరిమాణాన్ని మళ్లీ - అత్యంతగా పునరావృతంగా కలిగి ఉంటుంది మరియు ఆ తరువాత నేరుగా వినియోగ డేటా ఉంటాయి.
టైల్స్
అడ్ర్ | 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) | జెండాలు |
టైల్లు అవి ప్రత్యేకంగా Outpost-2 కి సంబంధించిన
Bitmap-గ్రాఫిక్ ఫార్మాట్. ఇవి 13 టైల్ సెట్లలో విస్తరించాయి,
"వెల్లు" అని పిలువబడే (well0000.bmp
నుండి well0012.bmp
వరకు),
ఇవి maps.vol వాల్యూమ్ లో ఉన్నాయి.
ఇది టైల్ సెట్లు / వెల్లు కింది విషయాలను కలిగి ఉంటాయి:
ఫైల్ పేరు | విషయము |
---|---|
well0000.bmp | 32x32px పరిమాణంలో ఉన్న నీలం గ్రాఫిక్ - మీ ఇమేజ్-లోడర్ పనిచేస్తుందో లేదో పరీక్షించడానికి అనువైనది |
well0001.bmp | ప్రకాశవంతమైన శిలలు, ప్రకాశవంతమైన శిలలపై పర్వత శ్రేణులు మరియు ప్రకాశవంతమైన శిలలలో అనేక రకాల కంచు క్రేటర్లు ఉన్నవి |
well0002.bmp | ప్రకాశవంతమైన శిలలపై ఉంచబడే 'డూడాడ్స్' - అంటే అలంకరణ కోసం లేదా నిర్మాణంగా (ఉదా: గోడలు) ఉంచే అంశాలు, వీటిలో ప్రారంభం కూడా ఉంది |
well0003.bmp | ప్రకాశవంతమైన శిలలపై క్రస్టు వంటి నిర్మాణం ఉన్నది |
well0004.bmp | అంధక శిలలు, అంధక శిలలపై పర్వత శ్రేణులు మరియు అంధక శిలలలో అనేక రకాల కంచు క్రేటర్లు ఉన్నవి |
well0005.bmp | అంధక శిలలపై ఉంచబడే 'డూడాడ్స్' - అంటే అలంకరణ కోసం లేదా నిర్మాణంగా (ఉదా: గోడలు) ఉంచే అంశాలు |
well0006.bmp | అంధక శిలలపై క్రస్టు వంటి నిర్మాణం మరియు ప్రకాశవంతమైన మరియు అంధక శిలల మధ్య మసక బొమ్మలు |
well0007.bmp | లావా, దీని యొక్క 4-5 ఫ్రేమ్ యానిమేషన్ సహా ఉన్నది |
well0008.bmp | తూర్పు మరియు అంధక శిలలలో అనేక రకాల కంచు క్రేటర్లు ఉన్న ఇసుకను కలిగి ఉంది |
well0009.bmp | ఇసుక 'డూడాడ్స్' - అంటే అలంకరణ కోసం లేదా నిర్మాణంగా (ఉదా: గోడలు) ఉంచే అంశాలు |
well0010.bmp | ప్రకాశవంతమైన మరియు అంధక శిలల మధ్య 48 మార్పులు ఉన్నాయి |
well0011.bmp | మ్యాప్ యొక్క ధృవ కప్పులు, అంధక శిలలపై ఆధారంగా ఉన్నాయి |
well0012.bmp | మ్యాప్ యొక్క ధృవ కప్పులు, ప్రకాశవంతమైన శిలలపై ఆధారంగా ఉన్నాయి |
సరిగ్గా అమలు కోసం, టైల్స్ను ముందుగా రెండర్ చేయకుండా క్యాష్ చేయడం మంచిది, ఎందుకంటే రోజు/రాత్రి చక్రానికి సంబంధించిన డేటాను ఇంకా ప్రాసెస్ చేయాలి - మరియు చాలా ఎక్కువ డేటా ఉత్పత్తి అవుతుంది.
టైల్స్ 32x32 పిక్సెల్ పరిధిలో ఉన్న ఇన్డెక్స్ చేసిన ప్యాలెట్తో 8bpp గ్రాఫిక్స్, వీని ఒకదానికొకటి అమర్చబడ్డాయి. ఈ విధంగా రూపొందించిన టైల్సెట్లో అతిగా ఎక్కువ
ప్రధాన కంటైనర్ 2 విభాగాల నుండి తయారైంది: 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) | వర్షన్ / జెండాలు? | ఇది ఫైల్ ఫార్మాట్ యొక్క వెర్షన్ సూచన కావచ్చు; నాకు అందిన అన్ని ఫైళ్లలో ఇక్కడ |
0x000c | uint(32) | విస్తీర్ణం (అడ్డబాట పరిష్కారం) | ఇది చిత్ర ఫైల్ ఎంత వెడల్పు ఉన్నదీ (పిక్సెల్లో) చూపిస్తుంది. ఔట్పోస్ట్ 2లో అన్ని వెల్స్కి ఇక్కడ |
0x0010 | uint(32) | ఎత్తు (అడ్డంగా తీర్చిదిద్దు) | చిత్ర ఫైలിന്റെ ఎత్తు ఎంత ఉందో (పిక్సెల్స్ లో) ఇక్కడ ఉంచండి. Outpost 2 లోని అన్ని వెల్స్ కోసం ఇక్కడ విలువ |
0x0014 | uint(32) | రంగు లోతు? | ఈ విలువ యొక్క అర్థం తెలియదు. ఇది అన్ని తనిఖీ చేయబడిన ఫైళ్లలో |
0x0018 | uint(32) | రంగు లోతు 2? | ఈ విలువ యొక్క ప్రాముఖ్యత తెలియదు. ఇది 'లక్ష్యం' రంగు లోతు కావచ్చు. |
ఈ వివరాల తర్వాత స్టాండర్డైజ్డ్ RIFF ఫార్మాట్లో ఉన్న ఒక పాలెట్ ఫైల్ ఉంటుంది. ఖచ్చితమైన స్పెసిఫికేషన్ను - ఎందుకంటే పాలెట్లు ఇతర చోట్ల కూడా కనిపిస్తాయి - పాలెట్లు వద్ద పొందవచ్చు.
టైల్స్ డేటా
అడ్ర్ | 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-బిట్మాప్లలో ఉన్న గ్రాఫిక్స్లో డేటా విలువ రంగు ప్యాలెట్లోని రంగు యొక్క సూచికతో సమానం.
ఈ ఆట ఇంజిన్ టైల్స్ను *వచ్చే ప్రకారం* గీస్తోంది.
ఇది 32 టైల్స్ యొక్క పాయింట్ లెవల్లతో కూడిన రోజు-రాత్రి చక్రానికి సంబంధించింది, ఇందులో ప్రతి దశలో 'కొంచెం' వెలుతురును తగ్గించడం జరుగుతున్నట్లు తెలుస్తోంది. ఖచ్చితమైన విలువలను ఇంకా గుర్తించలేదని, నేను లెక్కింపునకు ఆధారంగా పనిచేస్తున్నాను
v *= (daylight / 48) + 0.25;
పిక్సెల్స్ యొక్క HSV డేటాలతో, daylight 0-31 మధ్య విలువగా ఉంటుంది మరియు v 0-1 మధ్య విలువగా ఉంటుంది. ప్రతీ మ్యాప్పై ఎడమ మరియు కుడి వైపు 16 టైల్స్ ముట్టుకోకుండా (ఇది యూనిట్లను అజ్ఞాతంగా ఉత్పత్తి చేయడానికి ఉపయోగపడుతుంది) ఒక సరిహద్దు ఉంది అని కూడా పరిగణనలోకి తీసుకోవాలి.
అదనంగా, రోజు-రాత్రి చక్రం ప్రతి గేమ్ సైకిల్లో మ్యాప్ యొక్క కేవలం ఒక కాలమ్ను మాత్రమే అప్డేట్ చేస్తుంది.
ఒక వేగవంతమైన రోజు-రాత్రి చక్రం ఈ విధంగా ఉంటుంది:
పి.ఆర్.టి.
అడ్ర్ | 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) | జెండాలు | సాధారణంగా, ఫ్లాగ్లు ఉంటాయి. అయినప్పటికీ, నాకు తెలిసిన ఫ్లాగ్లు ఏమీ లేవు; నాకు తెలిసిన అన్ని విలువలు |
PRT
అంటే ఏమిటి అనేది నాకు తెలియదు; ఉదాహరణకు 'Palette and Ressource Table' అని ఉండవచ్చు - ఎందుకంటే ఈ ఫైల్ - op2_art.prt గా maps.vol లో లభిస్తుంది - ఇలాంటి ఫైలే, లేదా ఇది ఈ ఫంక్షన్ను బాగా వివరిస్తుంది.
ఈ ఫైల్ ప్యాలెట్ల జాబితా, అన్ని ఉపయోగించిన బిట్మ్యాప్స్పై టేబుల్, అన్ని యానిమేషన్ నిర్వచనాలు మరియు కొన్ని తెలియని డేటా సమాహారాన్ని కలిగి ఉంది. ఇది ఇప్పటి వరకు ఉన్న కంటైనర్ ఫార్మాట్ను సడలించిన విధంగా అనుసరిస్తుంది, ఎందుకంటే అన్ని రికార్డులు ఈ స్కీమాను అనుసరించడం లేదు.
CPAL
-విభాగం (ప్యాలెట్ కంటైనర్ కోసం ఉండవచ్చు) కేవలం ప్యాలెట్ డేటాను చుట్టేస్తుంది, అందులో సాధారణంగా 1052 బైట్ పరిమాణం ఉన్న 8-బిట్ ప్యాలెట్ల సంఖ్యను సూచిస్తుంది.
1052-బైట్ సంఖ్య బంధకంగా పరిగణించబడదు, ఎందుకంటే ప్యాలెట్ ఫార్మాట్ భిన్నమైన ప్యాలెట్ పరిమాణాలను కలిగి ఉండవచ్చు. ఇది అవుట్పోస్ట్ 2 విడుదలైన డేటా సేకరణకు మాత్రమే వర్తిస్తుంది.
ప్యాలెట్ల జాబితాకి వెంటనే, ప్రారంభ హెచ్చరిక లేకుండా, బిట్మ్యాప్స్ జాబితా వస్తుంది; అలాగే వెంటనే యానిమేషన్ జాబితాలు వస్తాయి.
ఇవి ప్రతి ఒక్కటి ఒక uint(32) (లేదా మళ్ళీ uint24+uint8 ఫ్లాగ్లు?) తో ప్రారంభమవుతాయి, ఇది రికార్డుల సంఖ్యను కలిగి ఉంటుంది.
పాలెట్లు
అడ్ర్ | 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) | పాలెట్ పొడవు | సాధారణ బ్లాక్ ఫార్మాట్కు వ్యతిరేకంగా, ఈ ఫైల్లో కనుగొన్న ప్యాలెట్ల సంఖ్యను సూచించండి - బ్లాక్ యొక్క పొడవు బైట్స్లో కాదు. |
0x0007 | uint(8) | జెండాలు | సాధారణంగా, ఫ్లాగ్లు ఉంటాయి. నాకు తెలిసిన ఫ్లాగ్లు ఏవీ లేవు; ఎందుకంటే నాకు తెలిసిన అన్ని విలువలు |
పాలెట్ సమాచారం చదవడం చాలా సులభం.
ఇవి ప్రతి ఒక్కటి ఒక హెడ్డర్ మరియు ఒక డేటా విభాగం నుండి ఉంటాయి.
పాలెట్-హెడర్
అడ్ర్ | 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) | పాలెట్ పొడవు | సాధారణ బ్లాక్ ఫార్మాట్కు వ్యతిరేకంగా, ఈ ఫైల్లో కనుగొన్న ప్యాలెట్ల సంఖ్యను సూచించండి - బ్లాక్ యొక్క పొడవు బైట్స్లో కాదు. |
0x0007 | uint(8) | జెండాలు | సాధారణంగా, ఫ్లాగ్లు ఉంటాయి. నాకు తెలిసిన ఫ్లాగ్లు ఏవీ లేవు; ఎందుకంటే నాకు తెలిసిన అన్ని విలువలు |
0x0008 | uint(32) | పాలెట్ ఫార్మాట్-సంస్కరణ? | సాధ్యంగా, ఇది ప్యాలెట్ అనుసరించే ప్యాలెట్ ఫార్మాట్ వెర్షన్ను నిర్వచిస్తుంది. అన్ని Outpost2 ప్యాలెట్లు |
పాలెట్ డేటా
అడ్ర్ | 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) | జెండాలు |
డేటా విభాగం వ్యక్తిగత ప్యాలెట్ నమోదులను స్వీకరిస్తుంది. ప్యాలెట్ నమోదు సంఖ్య బ్లాక్-పరిమాణం / 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) | అజ్ఞాత - జెండాలు? | ఈ విలువ ఏమిటి అనే విషయం స్పష్టంగా లేదు, ఎందుకంటే ఇది స్పష్టంగా |
పాలెట్ల గురించి చెప్పాల్సిన మరో విషయం ఏమిటంటే, అనిమేషన్లకు ఉపయోగించే పాలెట్లకు తదనుగుణంగా కొన్ని నియమాలు ఉన్నాయి:
- మొదటి రంగు ఎప్పుడూ పారదర్శకంగా ఉంటుంది, అక్కడ ఏ విలువ ఇచ్చినా సరే.
-
పాలెట్ ఎంట్రీలు 1-24, పాలెట్ 1-8 లో ఆటగాడు రంగుగా పరిగణించాలి.
రంగులు ఆటగాడు 1 మినహాయించి ఎక్కడినుంచి వస్తాయో నాకు అర్థం కాలేదు.
నేను మిగతా రంగులు హార్డ్కోడ్ చేయబడ్డాయనుకుంటున్నాను.
బిట్మ్యాప్లు
అడ్ర్ | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | చరిత్ర | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ఒప్పిడి | డేటా రకం | పేరునామం | వివరణ |
---|---|---|---|
0x0000 | uint(32) | సమతల వెడల్పు | పిక్సెల్ డేటా వరుసల వెడల్పును బైట్లలో సూచిస్తుంది - ఎందుకంటే ఇవి 4-బైట్ సరిహద్దులకు అనుకూలంగా ఉంటాయి. కొంత ప్రత్యేకమైన చిత్ర వరుసను తక్షణం పొందడం సులభంగా ఉంటుంది. ఈ విలువను ఎందుకు ప్రత్యేకంగా నిల్వ చేస్తారో, అది లెక్కించబడవచ్చు అనేది స్పష్టంగా లేదు. |
0x0004 | uint(32) | ఓఫ్సెట్ | బిట్మాప్లో మొదటి పంక్తి యొక్క ఆఫ్సెట్ను సూచిస్తుంది |
0x0008 | uint(32) | ఎత్తు | చిత్రం యొక్క ఎత్తును పిక్సెల్లలో సూచిస్తుంది |
0x000c | uint(32) | విస్తీర్ణం | చిత్రం యొక్క వెడల్పును పిక్సెల్లలో ఇవ్వండి |
0x0010 | uint(16) | రకం | చిత్రం యొక్క రకాన్ని సూచిస్తుంది. ఇది ఒక బిట్మాస్క్ గా కనిపిస్తోంది:
|
0x0012 | uint(16) | పాలెట్ | PRT ఫైల్ నుండి ఏ పాలెట్ ఉపయోగించాలి అనేది నిర్వచించండి |
PRT-ఫైల్ యొక్క ఈ డేటా నిర్మాణం, స్ప్రైట్స్ కోసం ఉపయోగించే బిట్మ్యాప్స్ ఎలా నిర్మించబడ్డాయనేది సూచిస్తుంది. ఈ బిట్మ్యాప్స్, అనిమేషన్ ఫ్రేమ్ ఒక స్ప్రైట్ యొక్క భాగం గా అనేక కలిపి ఉపయోగించబడతాయి.
కానీ నిర్దిష్ట చిత్ర డేటా op2_art.BMP లో ఆట డైరెక్టరీలో దాగి ఉంది.
ఈ బిట్మ్యాప్ ఫైల్ ఎందుకు ఒక (మూగగా సరైన) RIFF-బిట్మ్యాప్ హెడ్డర్ను కలిగి ఉంది అనేది స్పష్టంగా లేదు. Outpost 2 గ్రాఫిక్స్ను లోడ్ చేయడానికి సిస్టమ్-APIలను ఉపయోగిస్తున్నది, ఈ హెడ్డర్ను తాత్కాలికంగా స్వీకరించి, సంబంధిత, మారుతున్న ఫీల్డ్లు మబ్బింగ్ చేయడం ద్వారా జరుగుతుంది.
BMP ఫైల్ లోని పిక్సెల్ డేటా, BMP ఫైల్ లోని 0x000A అడ్రస్ వద్ద కనుగొనబడే uint32-ఆఫ్సెట్ + ఆఫ్సెట్ స్థానంలో ఉంది (RIFF-బిట్మ్యాప్-డేటా ఆఫ్సెట్) - మరియు మళ్లీ ఎగువ కింద కుడి నుండి ఎడమ కింద వరుసగా క్రమంలో ఉంటుంది.
మోనో크్రోమ్ 1bpp గ్రాఫిక్స్ ఈ విధంగా డ్రాయ్ చేయవచ్చు, రంగు 0 పూర్తి పారదర్శకతను మరియు రంగు 1 అర్ధపారదర్శకమైన నలుపు/గ్రే గా ఉంటుంది, ఎందుకంటే మోనోక్రోమ్ గ్రాఫిక్స్ సాధారణంగా వాహన మరియు భవనాల నీడల కోసం అనిమేషన్లలో ఉపయోగించబడతాయి.
దీనితో, మీరు ఇప్పటికే అనేక గ్రాఫిక్లను కలిసి ఉంచవచ్చు.
యానిమేషన్లు
ఇప్పుడు మనం Outpost 2 డేటా ఫార్మాట్లలోని శ్రేణికి సంబంధించిన కింగ్ క్లాస్కు వస్తున్నాం:
చలనాలపై.
చలనాల జాబితాలు ఒక గ్లోబల్ హెడ్డర్తో ప్రారంభమవుతాయి, ఇది ప్రధానంగా డేటా పరిశీలనకు ఉపయోగపడుతుంది. తర్వాత, 3 స్థాయిలలో విభజించబడిన నిర్దిష్ట చలన నిర్వచనాలు ఉండే ఉంటాయి:
-
చలనం
చలనం అనేది అత్యంత ఉన్నతమైన స్థాయి; ఇది ఒక యూనిట్, ఒక భవనం లేదా 'పార్టికల్ చలనం' (కోమెట్ కొట్టడం, వాతావరణం, పేలుళ్లు) యొక్క చలనాన్ని నిర్దిష్ట ప్రారంభ పరిస్థితిలో చూపిస్తుంది. -
ఫ్రేమ్
ఒక ఫ్రేమ్ అనేది ఒక చలనంలోని ఒకే ఒక చిత్రం. ఒక చలనం ఒకటి లేదా ఎక్కువ ఫ్రేమ్లను కలిగి ఉండవచ్చు. -
సబ్ఫ్రేమ్
ఒక సబ్ఫ్రేమ్ అనేది ఒక నిర్దిష్ట బిట్మాప్ను కొన్ని ప్రమాణాల ఆధారంగా ఒక ఫ్రేమ్ యొక్క నిర్దిష్ట స్థానంలో గీయాలని సూచించే సమాచారం. ఒక ఫ్రేమ్ ఒకటి లేదా ఎక్కువ సబ్ఫ్రేమ్లను కలిగి ఉండవచ్చు.
తర్వాత, నేరుగా వ్యక్తిగత చలన నిర్వచనాలు వస్తాయి.
అడ్ర్ | 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) | సబ్ఫ్రేమ్ల సంఖ్య | మొత్తం ఎంత మంది సబ్ఫ్రేమ్లు ఉండాలి |
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) | అజ్ఞాత 1 | అజ్ఞాత సమాచారం |
0x0004 | uint(32) | బౌండింగ్ బాక్స్: లింక్స్ | ఇది బౌండింగ్ బాక్స్ యొక్క ఎడమ ప్రారంభాన్ని (పిక్సెల్లలో) సూచిస్తుంది. |
0x0008 | uint(32) | బౌండింగ్ బాక్స్: పైవైపు | బౌండింగ్ బాక్స్ యొక్క పై భాగం (పిక్సెల్స్ లో) ను సూచిస్తుంది. |
0x000c | uint(32) | బౌండింగ్ బాక్స్: వెడల్పు | ఈ Bounding Box యొక్క విస్తీర్ణం (పిక్సెల్లో) ని సూచిస్తుంది. |
0x0010 | uint(32) | బౌండింగ్ బాక్స్: ఎత్తు | ఈ బౌండింగ్ బాక్స్ యొక్క ఎత్తు (పిక్సెల్లలో) సూచిస్తుంది. |
0x0014 | uint(32) | ఆఫ్సెట్: X | యానిమేషన్ యొక్క అడ్డమైన మధ్యస్థానాన్ని సూచిస్తుంది |
0x0018 | uint(32) | ఒఫ్సెట్: Y | అనిమేషన్ యొక్క నిలువు మధ్యభాగాన్ని సూచిస్తుంది |
0x001c | uint(32) | చైతన్య 2 | అజ్ఞాత సమాచారం |
0x0020 | uint(32) | ఫ్రేముల సంఖ్య | ఈ అనిమేషన్లో ఎంత సంఖ్యలో అనిమేషన్ ఫ్రేమ్లు ఉన్నాయి అనేది సూచిస్తుంది |
0x0024 | uint(32) | విండోస్ సంఖ్య | ఎంత మంది కిటికీలు డ్రాయింగ్లో ఉపయోగించాలో సూచిస్తుంది |
అధిక స్థాయి డేటా, యానిమేషన్ యొక్క, ప్రధానంగా పరిపాలన డేటా - Boundingbox అంటే వాహనం/భవనం చుట్టూ ఉన్న గుర్తు యొక్క కాంద్రాలను సూచిస్తుంది, అది ఎంచుకోబడినప్పుడు మరియు ఏ ప్రాంతం క్లిక్ చేయదగినది అని కూడా సూచిస్తుంది.
ఆఫ్సెట్ ప్రధానంగా "శూన్య బిందువు"ను నిర్ణయిస్తుంది; ఇది ఆటలోని కాంద్రాలను లెక్కించడానికి లేదా తగ్గించడానికి అవసరమైన బిందువు. గణితంగా చెప్పాలంటే: ఆఫ్సెట్ ఇక్కడ కాంద్రాల మూలాన్ని సూచిస్తుంది.
విండోస్ కూడా, ఆఫ్సెట్ లాగా, ప్రతి విండోకు 4 uint(32)-విలువలను కలిగి ఉంటాయి, ఇవి నిర్దిష్ట ఉప-ఫ్రేమ్లకు ఉపయోగించదగిన ప్రాంతాన్ని సూచిస్తాయి. విండోస్ వెలుపల, బిట్మాప్కు అనుగుణంగా ఉంటే, డ్రా చేయడం అనుమతి లేదు.
ఫ్రేమ్
అడ్ర్ | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | చరిత్ర | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ఒప్పిడి | డేటా రకం | పేరునామం | వివరణ |
---|---|---|---|
0x0000 | uint(8) | సబ్ఫ్రేమ్ సంఖ్య మరియు ఆప్షనల్ 1, 2 కోసం టోగిల్ | ఈ విలువలో ఉన్నాయి:
|
0x0001 | uint(8) | అనన్య 1 మరియు ఆప్షనల్ 3, 4 కోసం టోగిల్ | ఈ విలువలో ఉంది:
|
0x0002 | uint(8) | ఆప్ట్షనల్ 1 | తెలియదు |
0x0003 | uint(8) | ఎంపిక 2 | తెలియదు |
0x0004 | uint(8) | ఐచ్ఛిక 3 | తెలియదు |
0x0005 | uint(8) | ఎంపిక 4 | తెలియదు |
సబ్ఫ్రేమ్
అడ్ర్ | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | చరిత్ర | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ఒప్పిడి | డేటా రకం | పేరునామం | వివరణ |
---|---|---|---|
0x0000 | uint(16) | బిట్మాప్-ఐడి | ఈ సబ్ఫ్రేమ్ కోసం ఏ బిట్మాప్ను ఉపయోగించాలి అనేది సూచిస్తుంది |
0x0002 | uint(8) | అజ్ఞాత 1 | తెలియదు - అయితే, ఇది రెండర్ ప్రాధమికత (Z-లేయర్) తో సంబంధం ఉన్నది అని నేను బలంగా అనుకుంటున్నాను. |
0x0003 | uint(8) | సబ్ఫ్రేమ్-ఐడీ | మేము ఏ సబ్ఫ్రేమ్లో ఉన్నామో తెలియజేస్తుంది |
0x0004 | sint(16) | ఆఫ్సెట్ - అడ్డంగా | ఫ్రేమ్ dentro లో సబ్ఫ్రేమ్ ఎక్కడ ఉంచాలో లేదా బిట్మాప్ను ఎంత పిక్సెల్లతో ఆఫ్సెట్ చేయాలో తెలియజేయండి |
0x0006 | sint(16) | ఓఫ్సెట్ - వర్టికల్ | ఫ్రేమ్లో సబ్ఫ్రేమ్ ఎక్కడ ఉంచాలి లేదా బిట్మాప్ను ఎంత పిక్సెల్లతో కిందికి మోయాలి అనే వివరాన్ని ఇస్తుంది |
దీనితో, మేము ఇప్పుడు einzelne ఫ్రేమ్లను మరియు పూర్తిగా యానిమేషన్లను అనుగుణంగా కలిపి, ఇక్కడ ఒక కాంప్లెక్స్ యానిమేషన్, 500 అనే సూచికతో ఉన్న యానిమేషన్ను ఉదాహరణగా ప్రదర్శిస్తాం
అనిమేషన్ 500
Animation 500 చూపిస్తుంది, ఒక Plymouth-ట్రాన్స్పోర్టర్, ఇది సాధారణ ఖనిజం తో లోడ్ చేయబడింది, ఎలా అన్లాడ్ చేయబడుతుంది. ఇది విండోంగ్ ఫంక్షనాలిటీని ఉపయోగించే కొన్ని అనిమేషన్లలో ఒకటి.
ఇలా మొత్తం అనిమేషన్ను కలపవచ్చు.
అయితే, పై లోడ్ డోర్తో సంబంధం ఉన్న ఒక సమస్య ఉంది, ఎందుకంటే ఇక్కడ గ్రాఫిక్ టైప్ సమాచారంలో సంబంధిత బిట్ సెట్ చేయబడలేదు.
ఇక్కడ ఆట నుండి మరికొన్ని అందమైన అనిమేటెడ్ స్ప్రైట్స్ ఉన్నాయి:
వాడుకరి ఇంటర్ఫేస్
ఇప్పుడు గుబురైన లోహం లుక్లో ఉన్న ఆట యొక్క యూజర్-ఇంటర్ఫేస్ మిస్ అవుతోంది.
కానీ ఇక్కడ కూడా Dynamix కొత్తగా చక్రాన్ని ఆవిష్కరించాల్సిన అవసరం లేదు; ఇక్కడ కేవలం Windows అందించిన User32 మరియు GDI32-APIs ఉపయోగించబడడం మాత్రమే కాదు - ముఖ్యంగా User32 యొక్క వనరు-మ్యానేజ్మెంట్ కూడా ఉపయోగించబడుతోంది.
ఇవి ఉదాహరణకు Angus Johnson ఫ్రీవేర్గా అభివృద్ధి చేసిన Resource Hacker వంటి ప్రోగ్రామ్ల ద్వారా లేదా - మీరు Linux / Mac OSలో Wine వినియోగించడం వాంఛించకపోతే - icoutilsలో నిక్షిప్తమైన wrestool సహాయంతో తీసుకురాగలరు.
ఫైల్ పేరు | విషయం |
---|---|
Outpost2.exe | ఈ ఫైల్ కేవలం New Terra వద్ద ఉన్న అంతరిక్ష కేంద్రాన్ని చూపించే ఆట యొక్క ఐకాన్ను కలిగి ఉంది |
op2shres.dll | ఈ ఫైల్ బార్లు, బటన్లు, రేడియో బటన్లు మరియు చెక్ బాక్స్ల వంటి నియంత్రణల కోసం గ్రాఫిక్స్తో పాటు, సంభాషణ నేపథ్యాలు, కథా మిషన్ పాఠాల కోసం అనుబంధ చిత్రాలు మరియు ప్రధాన మెనూ నేపథ్య గ్రాఫిక్ను కలిగి ఉంది |
out2res.dll | ఈ ఫైల్ ఆటలో కిటకీ అలంకరణ, సాధారణ మరియు ప్రత్యేక లోహం కోసం ఐకాన్లు, లోడ్ స్క్రీన్, సంభాషణల కోసం గ్రాఫిక్స్ మరియు ఇతర కర్సర్ గ్రాఫిక్స్ను, ఆట డైరెక్టరీలో ఉన్న యానిమేటెడ్ వాటితో పాటు కలిగి ఉంది |