diff options
author | Travis Howell | 2003-07-21 04:00:04 +0000 |
---|---|---|
committer | Travis Howell | 2003-07-21 04:00:04 +0000 |
commit | 2b5cc772d71a15622dc970793fbb6f9c03763772 (patch) | |
tree | d7f5665216e22b7807446e7b32946c37b4f989c4 /simon/items.cpp | |
parent | 2929a90d17a81b285f8041f24993023ab3cc35e6 (diff) | |
download | scummvm-rg350-2b5cc772d71a15622dc970793fbb6f9c03763772.tar.gz scummvm-rg350-2b5cc772d71a15622dc970793fbb6f9c03763772.tar.bz2 scummvm-rg350-2b5cc772d71a15622dc970793fbb6f9c03763772.zip |
Add sfx/voice support for simon1cd32, thanks to olki.
Adjust a few debugs
Add hack to allow load/save in simon1cd32 via keyboard
svn-id: r9105
Diffstat (limited to 'simon/items.cpp')
-rw-r--r-- | simon/items.cpp | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/simon/items.cpp b/simon/items.cpp index dea3c4d59d..6b294b72aa 100644 --- a/simon/items.cpp +++ b/simon/items.cpp @@ -1049,7 +1049,15 @@ int SimonEngine::runScript() { case 185:{ /* midi sfx file number */ if (_game & GF_SIMON2) goto invalid_opcode; - _midi_sfx = getVarOrWord(); + _midi_sfx = getVarOrWord(); + if (_game == GAME_SIMON1CD32) { + char buf[10]; + sprintf(buf, "%d%s", _midi_sfx, "Effects"); + _sound->readSfxFile(buf, _gameDataPath); + sprintf(buf, "%d%s", _midi_sfx, "simon"); + _sound->readVoiceFile(buf, _gameDataPath); + } + } break; @@ -1374,6 +1382,9 @@ int SimonEngine::o_unk_132_helper(bool *b, char *buf) { start_over:; _key_pressed = 0; + if (_game == GAME_SIMON1CD32) + goto start_over_3; + start_over_2:; _last_hitarea = _last_hitarea_3 = 0; @@ -1419,6 +1430,49 @@ start_over_2:; if (ha->id >= 214) goto start_over_2; return ha->id - 208; + +//FIXME Hack to allow load and save file selection in simon1cd32 +// Uses the follow keys for moving around +// 1 - 6 to select slot to load/save +// Up Arrow to move up slots +// Down Arrow to move down slots +// X to exit +start_over_3:; + if (_saveload_flag) { + *b = false; + delay(1); + return _key_pressed; + } + + if (_key_pressed == 17) { + if (_saveload_row_curpos == 1) + goto start_over_3; + if (_saveload_row_curpos < 7) + _saveload_row_curpos = 1; + else + _saveload_row_curpos -= 6; + + goto strange_jump; + } + + if (_key_pressed == 18) { + if (!_savedialog_flag) + goto start_over_3; + _saveload_row_curpos += 6; + goto strange_jump; + } + + if (_key_pressed == 120) + return 205; + + if (_key_pressed > 48 && _key_pressed < 55) { + return _key_pressed - 49; + } + + + delay(1); + goto start_over_3; + } void SimonEngine::o_unk_132_helper_3() { |