58 |
{ |
{ |
59 |
class LevelPack_Oxyd : public LevelPack { |
class LevelPack_Oxyd : public LevelPack { |
60 |
public: |
public: |
61 |
LevelPack_Oxyd (OxydVersion ver, DatFile *dat, time_t created, int idx_start, int idx_end); |
LevelPack_Oxyd (OxydVersion ver, DatFile *dat, time_t created, int idx_start, int idx_end, bool twoplayers); |
62 |
|
|
63 |
// LevelPack interface |
// LevelPack interface |
64 |
virtual string get_name() const; |
virtual string get_name() const; |
74 |
|
|
75 |
int get_default_SoundSet() const { return m_version+2; } |
int get_default_SoundSet() const { return m_version+2; } |
76 |
|
|
77 |
|
bool needs_twoplayers() const { |
78 |
|
fprintf(stderr, "m_twoplayers=%i\n", int(m_twoplayers)); |
79 |
|
return m_twoplayers; |
80 |
|
} |
81 |
|
|
82 |
protected: |
protected: |
83 |
/* Conversion tables from Oxyd bytecodes to Enigma object names. */ |
/* Conversion tables from Oxyd bytecodes to Enigma object names. */ |
84 |
enigma_mapping::Mapping m_mapping; |
enigma_mapping::Mapping m_mapping; |
101 |
DatFile *m_datfile; // just a reference (owned by GameInfo) |
DatFile *m_datfile; // just a reference (owned by GameInfo) |
102 |
time_t m_created; // creation date of datafile |
time_t m_created; // creation date of datafile |
103 |
Level *m_level; // Level currently being loaded |
Level *m_level; // Level currently being loaded |
104 |
|
bool m_twoplayers; // true -> twoplayer game |
105 |
|
|
106 |
int level_index[200]; |
int level_index[200]; |
107 |
int nlevels; |
int nlevels; |
109 |
} |
} |
110 |
|
|
111 |
LevelPack_Oxyd::LevelPack_Oxyd (OxydVersion ver, DatFile *dat, time_t created, |
LevelPack_Oxyd::LevelPack_Oxyd (OxydVersion ver, DatFile *dat, time_t created, |
112 |
int idx_start, int idx_end) |
int idx_start, int idx_end, bool twoplayers) |
113 |
: m_mapping(ver) |
: m_mapping(ver) |
114 |
, m_version(ver) |
, m_version(ver) |
115 |
, m_datfile(dat) |
, m_datfile(dat) |
116 |
, m_created(created) |
, m_created(created) |
117 |
|
, m_twoplayers(twoplayers) |
118 |
{ |
{ |
119 |
string msg; |
string msg; |
120 |
Level level; |
Level level; |
412 |
LP_Oxyd1::LP_Oxyd1 (DatFile *dat, time_t created, bool twoplayers) |
LP_Oxyd1::LP_Oxyd1 (DatFile *dat, time_t created, bool twoplayers) |
413 |
: LevelPack_Oxyd (OxydVersion_Oxyd1, dat, created, |
: LevelPack_Oxyd (OxydVersion_Oxyd1, dat, created, |
414 |
twoplayers ? 100 : 0, |
twoplayers ? 100 : 0, |
415 |
twoplayers ? 199 : 99) |
twoplayers ? 199 : 99, |
416 |
|
twoplayers) |
417 |
{ |
{ |
418 |
} |
} |
419 |
|
|
488 |
LP_PerOxyd::LP_PerOxyd (DatFile *dat, time_t created, bool twoplayers) |
LP_PerOxyd::LP_PerOxyd (DatFile *dat, time_t created, bool twoplayers) |
489 |
: LevelPack_Oxyd (OxydVersion_PerOxyd, dat, created, |
: LevelPack_Oxyd (OxydVersion_PerOxyd, dat, created, |
490 |
twoplayers ? 100 : 0, |
twoplayers ? 100 : 0, |
491 |
twoplayers ? 199 : 99) |
twoplayers ? 199 : 99, |
492 |
|
twoplayers) |
493 |
{ |
{ |
494 |
} |
} |
495 |
|
|
524 |
} |
} |
525 |
|
|
526 |
LP_OxydMagnum::LP_OxydMagnum(OxydVersion version, DatFile *dat, time_t created) |
LP_OxydMagnum::LP_OxydMagnum(OxydVersion version, DatFile *dat, time_t created) |
527 |
: LevelPack_Oxyd (version, dat, created, 0, OxydVersion_OxydMagnumGold ? 120 : 99) |
: LevelPack_Oxyd (version, dat, created, 0, OxydVersion_OxydMagnumGold ? 120 : 99, false) |
528 |
{ |
{ |
529 |
} |
} |
530 |
|
|
594 |
GameInfo(); |
GameInfo(); |
595 |
GameInfo (OxydVersion ver_, const string &game_, const string &datfile_name_); |
GameInfo (OxydVersion ver_, const string &game_, const string &datfile_name_); |
596 |
~GameInfo() { |
~GameInfo() { |
597 |
// delete datfile; |
// sth goes wrong if this is deleted. why ? |
598 |
|
// delete datfile; |
599 |
} |
} |
600 |
|
|
601 |
bool isPresent() const { return is_present; } |
bool isPresent() const { return is_present; } |
602 |
DatFile *getDatfile() { return datfile; } |
DatFile *getDatfile() { return datfile; } |
603 |
|
|
|
// const string& datfilePath() const { return datfile_path; } |
|
|
// time_t getModTime() const { return modified; } |
|
|
|
|
604 |
private: |
private: |
605 |
// Variables. |
// Variables. |
606 |
OxydVersion ver; |
OxydVersion ver; |
678 |
default: { |
default: { |
679 |
int firstlevel = twoplayers ? 100 : 0; |
int firstlevel = twoplayers ? 100 : 0; |
680 |
int lastlevel = twoplayers ? 199 : 99; |
int lastlevel = twoplayers ? 199 : 99; |
681 |
return new LevelPack_Oxyd(ver, datfile, modified, firstlevel, lastlevel); |
return new LevelPack_Oxyd(ver, datfile, modified, firstlevel, lastlevel, twoplayers); |
682 |
} |
} |
683 |
} |
} |
684 |
|
|