52 |
{ |
{ |
53 |
class LevelPack_Oxyd : public LevelPack { |
class LevelPack_Oxyd : public LevelPack { |
54 |
public: |
public: |
55 |
LevelPack_Oxyd (OxydVersion ver, DatFile *dat, bool twoplayers) |
LevelPack_Oxyd (OxydVersion ver, DatFile *dat, bool twoplayers); |
|
: m_version(ver), m_datfile(dat), m_twoplayers(twoplayers) |
|
|
{ |
|
|
} |
|
56 |
|
|
57 |
// LevelPack interface |
// LevelPack interface |
58 |
string name() const; |
string name() const; |
77 |
DatFile *m_datfile; |
DatFile *m_datfile; |
78 |
bool m_twoplayers; |
bool m_twoplayers; |
79 |
|
|
80 |
static char *floor_map[256]; |
char *floor_map[256]; |
81 |
static char *item_map[256]; |
char *item_map[256]; |
82 |
static char *stone_map[256]; |
char *stone_map[256]; |
83 |
|
|
84 |
|
static char *common_floor_map[256]; |
85 |
|
static char *common_item_map[256]; |
86 |
|
static char *common_stone_map[256]; |
87 |
}; |
}; |
88 |
} |
} |
89 |
|
|
90 |
char *LevelPack_Oxyd::floor_map[256] = { |
char *LevelPack_Oxyd::common_floor_map[256] = |
91 |
|
{ |
92 |
"fl-abyss", // 0x00 |
"fl-abyss", // 0x00 |
93 |
"fl-gray", // 0x01 |
"fl-gray", // 0x01 |
94 |
"fl-metal", // 0x02 |
"fl-metal", // 0x02 |
188 |
0, // 0x60 |
0, // 0x60 |
189 |
}; |
}; |
190 |
|
|
191 |
char *LevelPack_Oxyd::item_map[256] = { |
char *LevelPack_Oxyd::common_item_map[256] = { |
192 |
0, // 0x00 |
0, // 0x00 |
193 |
"it-extralife", // 0x01 |
"it-extralife", // 0x01 |
194 |
"it-document", // 0x02 |
"it-document", // 0x02 |
288 |
|
|
289 |
}; |
}; |
290 |
|
|
291 |
char *LevelPack_Oxyd::stone_map[256] = { |
char *LevelPack_Oxyd::common_stone_map[256] = |
292 |
|
{ |
293 |
0, |
0, |
294 |
"st-oxyd", // 0x01 |
"st-oxyd", // 0x01 |
295 |
"st-oxyd", // 0x02 |
"st-oxyd", // 0x02 |
453 |
|
|
454 |
}; |
}; |
455 |
|
|
456 |
|
LevelPack_Oxyd::LevelPack_Oxyd (OxydVersion ver, DatFile *dat, bool twoplayers) |
457 |
|
: m_version(ver), m_datfile(dat), m_twoplayers(twoplayers) |
458 |
|
{ |
459 |
|
copy (common_stone_map, common_stone_map+256, stone_map); |
460 |
|
copy (common_item_map, common_item_map+256, item_map); |
461 |
|
copy (common_floor_map, common_floor_map+256, floor_map); |
462 |
|
|
463 |
|
/* The object numbers differ slightly between different oxyd |
464 |
|
versions, so we have to patch the common translation tables. */ |
465 |
|
switch (ver) { |
466 |
|
case OxydVersion_Oxyd1: |
467 |
|
break; |
468 |
|
case OxydVersion_PerOxyd: |
469 |
|
break; |
470 |
|
case OxydVersion_OxydExtra: |
471 |
|
break; |
472 |
|
case OxydVersion_OxydMagnum: |
473 |
|
break; |
474 |
|
default: |
475 |
|
break; |
476 |
|
} |
477 |
|
} |
478 |
|
|
479 |
|
|
480 |
|
|
481 |
string |
string |
482 |
LevelPack_Oxyd::name() const |
LevelPack_Oxyd::name() const |
847 |
soundfx_map["explosion1"] = "OXCRASH2.SDD"; |
soundfx_map["explosion1"] = "OXCRASH2.SDD"; |
848 |
soundfx_map["impulse"] = "OXWOUOU.SDD"; |
soundfx_map["impulse"] = "OXWOUOU.SDD"; |
849 |
soundfx_map["st-move"] = "OXMOVE.SDD"; |
soundfx_map["st-move"] = "OXMOVE.SDD"; |
850 |
soundfx_map["rotate-left"] = "OXMAGIC4.SDD"; |
soundfx_map["rotate-right"] = "OXMAGIC4.SDD"; |
851 |
soundfx_map["rotate-right"] = "OXMAGIC3.SDD"; |
soundfx_map["rotate-left"] = "OXMAGIC3.SDD"; |
852 |
soundfx_map["st-magic"] = "OXMAGIC.SDD"; |
soundfx_map["st-magic"] = "OXMAGIC.SDD"; |
853 |
soundfx_map["puller"] = "OXPULLER.SDD"; |
soundfx_map["puller"] = "OXPULLER.SDD"; |
854 |
|
|