aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2006-04-15 01:48:52 +0000
committerTravis Howell2006-04-15 01:48:52 +0000
commit10bc7b08876c278056b1f0e8a5b6eafb8e6bfe15 (patch)
tree83ab43cc55df6c76e46e3fa788812bba2cea1fd3
parentc8fa54ec808426f7cd82cd45f71fe93278575aa1 (diff)
downloadscummvm-rg350-10bc7b08876c278056b1f0e8a5b6eafb8e6bfe15.tar.gz
scummvm-rg350-10bc7b08876c278056b1f0e8a5b6eafb8e6bfe15.tar.bz2
scummvm-rg350-10bc7b08876c278056b1f0e8a5b6eafb8e6bfe15.zip
Remove last use of hard coded language values and adjust settings for FF
svn-id: r21898
-rw-r--r--engines/simon/simon.cpp45
1 files changed, 24 insertions, 21 deletions
diff --git a/engines/simon/simon.cpp b/engines/simon/simon.cpp
index c072c646d4..7e9979ff1a 100644
--- a/engines/simon/simon.cpp
+++ b/engines/simon/simon.cpp
@@ -539,18 +539,26 @@ int SimonEngine::init(GameDetector &detector) {
if (ConfMan.hasKey("music_mute") && ConfMan.getBool("music_mute") == 1)
midi.pause(_musicPaused ^= 1);
- if ((getGameType() == GType_SIMON2) && ConfMan.hasKey("speech_mute") && ConfMan.getBool("speech_mute") == 1)
- _speech = 0;
-
- if ((getGameType() == GType_SIMON1 && _language > 1) || ((getGameType() == GType_SIMON2) && _language == Common::HB_ISR)) {
- if (ConfMan.hasKey("subtitles") && ConfMan.getBool("subtitles") == 0)
- _subtitles = 0;
- } else
+ if (getFeatures() & GF_TALKIE) {
+ _speech = !ConfMan.getBool("speech_mute");
_subtitles = ConfMan.getBool("subtitles");
- // Make sure either speech or subtitles is enabled
- if ((getFeatures() & GF_TALKIE) && !_speech && !_subtitles)
- _subtitles = 1;
+ if (getGameType() == GType_SIMON1) {
+ // English and German versions don't have full subtitles
+ if (_language == Common::EN_ANY || _language == Common::DE_DEU)
+ _subtitles = false;
+ // Other versions require speech to be enabled
+ else
+ _speech = true;
+ }
+
+ // Default to speech only, if both speech and subtitles disabled
+ if (!_speech && !_subtitles)
+ _speech = true;
+ } else {
+ _speech = false;
+ _subtitles = true;
+ }
if (ConfMan.hasKey("fade") && ConfMan.getBool("fade") == 0)
_fade = 0;
@@ -1911,7 +1919,7 @@ startOver:
_lastHitArea3 = NULL;
for (;;) {
- if (_keyPressed == 35)
+ if ((getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) && _keyPressed == 35)
displayBoxStars();
processSpecialKeys();
if (_lastHitArea3 == (HitArea *) -1)
@@ -3026,14 +3034,17 @@ void SimonEngine::processSpecialKeys() {
pause();
break;
case 't':
- if ((getGameType() == GType_SIMON2 && getFeatures() & GF_TALKIE) || ( getFeatures() & GF_TALKIE && _language > 1))
+ if (getGameType() == GType_FF || (getGameType() == GType_SIMON2 && (getFeatures() & GF_TALKIE)) ||
+ ((getFeatures() & GF_TALKIE) && _language != Common::EN_ANY && _language != Common::DE_DEU)) {
if (_speech)
_subtitles ^= 1;
+ }
break;
case 'v':
- if ((getGameType() == GType_SIMON2) && (getFeatures() & GF_TALKIE))
+ if (getGameType() == GType_FF || (getGameType() == GType_SIMON2 && (getFeatures() & GF_TALKIE))) {
if (_subtitles)
_speech ^= 1;
+ }
case '+':
midi.set_volume(midi.get_volume() + 16);
break;
@@ -3504,14 +3515,6 @@ int SimonEngine::go() {
if (gDebugLevel == 5)
_startVgaScript = true;
- if (getFeatures() & GF_TALKIE) {
- // English and German versions of Simon the Sorcerer 1 don't have full subtitles
- if (getGameType() == GType_SIMON1 && (_language == Common::EN_ANY || _language == Common::DE_DEU))
- _subtitles = false;
- } else {
- _subtitles = true;
- }
-
while (1) {
hitarea_stuff();
handleVerbClicked(_verbHitArea);