diff options
-rw-r--r-- | README | 4 | ||||
-rw-r--r-- | simon/items.cpp | 5 | ||||
-rw-r--r-- | simon/simon.cpp | 15 | ||||
-rw-r--r-- | simon/simon.h | 1 |
4 files changed, 19 insertions, 6 deletions
@@ -516,6 +516,10 @@ simon games. m - Music on/off s - Sound effects on/off b - Background sounds on/off + t - Switch between speech and subtitles + v - Switch between subtitles only and + combined speech & subtitles. + [Simon the Sorcerer 2 only] Beneath a Steel Sky: Ctrl-g - Runs in really REALLY fast mode. diff --git a/simon/items.cpp b/simon/items.cpp index 11b79c729e..41f1b7eb35 100644 --- a/simon/items.cpp +++ b/simon/items.cpp @@ -1001,7 +1001,7 @@ int SimonEngine::runScript() { if (_game & GF_TALKIE) speech_id = _array_4[string_id]; - if (speech_id != 0) + if (_speech && speech_id != 0) talk_with_speech(speech_id, vga_struct_id); if (string_ptr != NULL && _subtitles) talk_with_text(vga_struct_id, color, string_ptr, tv->a, tv->b, tv->c); @@ -1291,7 +1291,8 @@ void SimonEngine::o_inventory_descriptions() { } } - talk_with_speech(var200, vga_struct_id); + if (_speech) + talk_with_speech(var200, vga_struct_id); } } else if (_game & GF_TALKIE) { diff --git a/simon/simon.cpp b/simon/simon.cpp index dd32e97150..5868f9a58e 100644 --- a/simon/simon.cpp +++ b/simon/simon.cpp @@ -329,6 +329,7 @@ SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst) _continous_mainscript = 0; _continous_vgascript = 0; _draw_images_debug = 0; + _speech = false; _subtitles = true; _mouse_cursor = 0; _vga_var9 = 0; @@ -2124,7 +2125,7 @@ void SimonEngine::o_print_str() { tv = getThreeValues(vga_sprite_id); - if (speech_id != 0) + if (_speech && speech_id != 0) talk_with_speech(speech_id, vga_sprite_id); if (string_ptr != NULL && (speech_id == 0 || _subtitles)) talk_with_text(vga_sprite_id, color, (const char *)string_ptr, tv->a, tv->b, tv->c); @@ -3450,9 +3451,14 @@ void SimonEngine::processSpecialKeys() { _exit_cutscene = true; break; case 't': - if (_game & GF_SIMON2 && _game & GF_TALKIE || _game & GF_TALKIE && _language > 1) - _subtitles ^= 1; + if ((_game & GF_SIMON2 && _game & GF_TALKIE) ||( _game & GF_TALKIE && _language > 1)) + if (_speech) + _subtitles ^= 1; break; + case 'v': + if (_game & GF_SIMON2 && _game & GF_TALKIE) + if (_subtitles) + _speech ^= 1; case '+': midi.set_volume(midi.get_volume() + 16); break; @@ -3479,7 +3485,7 @@ void SimonEngine::processSpecialKeys() { if (_debugMode) _continous_mainscript ^= 1; break; - case 'v': + case 'g': if (_debugMode) _continous_vgascript ^= 1; break; @@ -4695,6 +4701,7 @@ void SimonEngine::go() { _start_mainscript = true; if (_game & GF_TALKIE) { + _speech = true; if ((_game & GF_SIMON2) || _language >= 2) { if (_noSubtitles) _subtitles = false; diff --git a/simon/simon.h b/simon/simon.h index 789aae812e..bd386eaba1 100644 --- a/simon/simon.h +++ b/simon/simon.h @@ -187,6 +187,7 @@ protected: bool _continous_mainscript; bool _continous_vgascript; bool _draw_images_debug; + bool _speech; bool _subtitles; byte _mouse_cursor; bool _vga_var9; |