80 |
" --window Run in a window; do not enter fullscreen mode\n" |
" --window Run in a window; do not enter fullscreen mode\n" |
81 |
" --help -h Show this help\n" |
" --help -h Show this help\n" |
82 |
" --version Print the executable's version number\n" |
" --version Print the executable's version number\n" |
83 |
" --8bpp Use 256 color mode\n" |
// " --8bpp Use 256 color mode\n" |
84 |
" --nograb Do not use exclusive mouse/keyboard access\n" |
" --nograb Do not use exclusive mouse/keyboard access\n" |
85 |
|
" --soundset -s [enigma|oxyd|oxyd1|peroxyd|oxydmagnum|oxydextra]\n" |
86 |
|
" Choose your preferred soundset; default is 'oxyd'\n" |
87 |
"\n"); |
"\n"); |
88 |
} |
} |
89 |
|
|
95 |
OPT_NOSOUND, OPT_NOMUSIC, OPT_VERSION, OPT_HELP, |
OPT_NOSOUND, OPT_NOMUSIC, OPT_VERSION, OPT_HELP, |
96 |
OPT_WINDOW, OPT_WIZARD, OPT_NOGRAB, OPT_LOG, |
OPT_WINDOW, OPT_WIZARD, OPT_NOGRAB, OPT_LOG, |
97 |
OPT_8BPP, OPT_GAME, |
OPT_8BPP, OPT_GAME, |
98 |
OPT_PEROXYD, OPT_OXYD1, OPT_EXTRA, OPT_MAGNUM |
OPT_SOUNDSET, |
99 |
|
// OPT_PEROXYD, OPT_OXYD1, OPT_EXTRA, OPT_MAGNUM |
100 |
}; |
}; |
101 |
|
|
102 |
AP() : ArgParser (app.args.begin(), app.args.end()) |
AP() : ArgParser (app.args.begin(), app.args.end()) |
115 |
def (OPT_LOG, 'l', "log"); |
def (OPT_LOG, 'l', "log"); |
116 |
def (OPT_8BPP, '8', "8bpp"); |
def (OPT_8BPP, '8', "8bpp"); |
117 |
def (OPT_GAME, 'g', "game", true); |
def (OPT_GAME, 'g', "game", true); |
118 |
def (OPT_PEROXYD, 0, "peroxyd"); |
// def (OPT_PEROXYD, 0, "peroxyd"); |
119 |
def (OPT_OXYD1, 0, "oxyd1"); |
// def (OPT_OXYD1, 0, "oxyd1"); |
120 |
def (OPT_EXTRA, 0, "oxydextra"); |
// def (OPT_EXTRA, 0, "oxydextra"); |
121 |
def (OPT_MAGNUM,0, "oxydmagnum"); |
// def (OPT_MAGNUM,0, "oxydmagnum"); |
122 |
|
def (OPT_SOUNDSET, 's', "soundset", true); |
123 |
} |
} |
124 |
|
|
125 |
// ArgParser interface. |
// ArgParser interface. |
140 |
case OPT_8BPP: options::BitsPerPixel = 8; break; |
case OPT_8BPP: options::BitsPerPixel = 8; break; |
141 |
case OPT_GAME: gamename = param; break; |
case OPT_GAME: gamename = param; break; |
142 |
case OPT_LOG: do_log = true; break; |
case OPT_LOG: do_log = true; break; |
143 |
case OPT_PEROXYD: gametype = GAMET_PEROXYD; break; |
// case OPT_PEROXYD: gametype = GAMET_PEROXYD; break; |
144 |
case OPT_OXYD1: gametype = GAMET_OXYD1; break; |
// case OPT_OXYD1: gametype = GAMET_OXYD1; break; |
145 |
case OPT_EXTRA: gametype = GAMET_OXYDEXTRA; break; |
// case OPT_EXTRA: gametype = GAMET_OXYDEXTRA; break; |
146 |
case OPT_MAGNUM: gametype = GAMET_OXYDMAGNUM; break; |
// case OPT_MAGNUM: gametype = GAMET_OXYDMAGNUM; break; |
147 |
|
case OPT_SOUNDSET: soundset = param; break; |
148 |
} |
} |
149 |
} |
} |
150 |
|
|
154 |
// Variables. |
// Variables. |
155 |
bool nosound, nomusic, show_help, show_version, do_log; |
bool nosound, nomusic, show_help, show_version, do_log; |
156 |
string gamename; |
string gamename; |
157 |
|
string soundset; |
158 |
GameType gametype; |
GameType gametype; |
159 |
}; |
}; |
160 |
} |
} |
161 |
|
|
162 |
|
static void |
163 |
|
init_soundset (const string &soundset) |
164 |
|
{ |
165 |
|
if (soundset == "oxyd" || soundset == "") { |
166 |
|
for (int i=OxydVersion_First; i<=OxydVersion_Last; ++i) { |
167 |
|
OxydVersion ver = OxydVersion(i); |
168 |
|
if (oxyd::FoundOxyd (ver)) { |
169 |
|
oxyd::OpenDatFile (ver); |
170 |
|
oxyd::UseOxydSounds (true); |
171 |
|
break; |
172 |
|
} |
173 |
|
} |
174 |
|
} |
175 |
|
else if (soundset == "oxyd1") { |
176 |
|
oxyd::OpenDatFile (OxydVersion_Oxyd1); |
177 |
|
oxyd::UseOxydSounds (true); |
178 |
|
} |
179 |
|
else if (soundset == "peroxyd") { |
180 |
|
oxyd::OpenDatFile (OxydVersion_PerOxyd); |
181 |
|
oxyd::UseOxydSounds (true); |
182 |
|
} |
183 |
|
else if (soundset == "oxydextra") { |
184 |
|
oxyd::OpenDatFile (OxydVersion_OxydExtra); |
185 |
|
oxyd::UseOxydSounds (true); |
186 |
|
} |
187 |
|
else if (soundset == "oxydmagnum") { |
188 |
|
oxyd::OpenDatFile (OxydVersion_OxydMagnum); |
189 |
|
oxyd::UseOxydSounds (true); |
190 |
|
} |
191 |
|
} |
192 |
|
|
193 |
static void |
static void |
194 |
init() |
init() |
195 |
{ |
{ |
241 |
sound::DisableMusic(); |
sound::DisableMusic(); |
242 |
|
|
243 |
oxyd::Init(); |
oxyd::Init(); |
244 |
if (ap.gametype == GAMET_PEROXYD) { |
init_soundset(ap.soundset); |
245 |
oxyd::OpenDatFile (OxydVersion_PerOxyd); |
|
|
} else if (ap.gametype == GAMET_OXYD1) { |
|
|
oxyd::OpenDatFile (OxydVersion_Oxyd1); |
|
|
} else if (ap.gametype == GAMET_OXYDMAGNUM) { |
|
|
oxyd::OpenDatFile (OxydVersion_OxydMagnum); |
|
|
} else if (ap.gametype == GAMET_OXYDEXTRA) { |
|
|
oxyd::OpenDatFile (OxydVersion_OxydExtra); |
|
|
} |
|
246 |
video::Init(); |
video::Init(); |
247 |
video::SetPalette("enigma.pal"); |
video::SetPalette("enigma.pal"); |
248 |
display::Init(); |
display::Init(); |