diff options
Diffstat (limited to 'engines/tinsel/config.cpp')
-rw-r--r-- | engines/tinsel/config.cpp | 89 |
1 files changed, 44 insertions, 45 deletions
diff --git a/engines/tinsel/config.cpp b/engines/tinsel/config.cpp index 86ba213398..9249da6edd 100644 --- a/engines/tinsel/config.cpp +++ b/engines/tinsel/config.cpp @@ -38,36 +38,35 @@ namespace Tinsel { -//----------------- GLOBAL GLOBAL DATA -------------------- - -int dclickSpeed = DOUBLE_CLICK_TIME; -int volMusic = Audio::Mixer::kMaxChannelVolume; -int volSound = Audio::Mixer::kMaxChannelVolume; -int volVoice = Audio::Mixer::kMaxChannelVolume; -int speedText = DEFTEXTSPEED; -int bSubtitles = false; -int bSwapButtons = 0; -LANGUAGE g_language = TXT_ENGLISH; -int bAmerica = 0; - +Config::Config(TinselEngine *vm) : _vm(vm) { + _dclickSpeed = DOUBLE_CLICK_TIME; + _musicVolume = Audio::Mixer::kMaxChannelVolume; + _soundVolume = Audio::Mixer::kMaxChannelVolume; + _voiceVolume = Audio::Mixer::kMaxChannelVolume; + _textSpeed = DEFTEXTSPEED; + _useSubtitles = false; + _swapButtons = false; + _language = TXT_ENGLISH; + _isAmericanEnglishVersion = false; +} /** * Write settings to config manager and flush the config file to disk. */ -void WriteConfig() { - ConfMan.setInt("dclick_speed", dclickSpeed); - ConfMan.setInt("music_volume", volMusic); - ConfMan.setInt("sfx_volume", volSound); - ConfMan.setInt("speech_volume", volVoice); - ConfMan.setInt("talkspeed", (speedText * 255) / 100); - ConfMan.setBool("subtitles", bSubtitles); - //ConfMan.setBool("swap_buttons", bSwapButtons ? 1 : 0); +void Config::writeToDisk() { + ConfMan.setInt("dclick_speed", _dclickSpeed); + ConfMan.setInt("music_volume", _musicVolume); + ConfMan.setInt("sfx_volume", _soundVolume); + ConfMan.setInt("speech_volume", _voiceVolume); + ConfMan.setInt("talkspeed", (_textSpeed * 255) / 100); + ConfMan.setBool("subtitles", _useSubtitles); + //ConfMan.setBool("swap_buttons", _swapButtons ? 1 : 0); // Store language for multilingual versions if ((_vm->getFeatures() & GF_USE_3FLAGS) || (_vm->getFeatures() & GF_USE_4FLAGS) || (_vm->getFeatures() & GF_USE_5FLAGS)) { Common::Language lang; - switch (g_language) { + switch (_language) { case TXT_FRENCH: lang = Common::FR_FRA; break; @@ -94,50 +93,50 @@ void WriteConfig() { /** * Read configuration settings from the config file into memory */ -void ReadConfig() { +void Config::readFromDisk() { if (ConfMan.hasKey("dclick_speed")) - dclickSpeed = ConfMan.getInt("dclick_speed"); + _dclickSpeed = ConfMan.getInt("dclick_speed"); // HACK/FIXME: // We need to clip the volumes from [0, 256] to [0, 255] // here, since for example Tinsel's internal options dialog // and also the midi playback code rely on the volumes to be // in [0, 255] - volMusic = CLIP(ConfMan.getInt("music_volume"), 0, 255); - volSound = CLIP(ConfMan.getInt("sfx_volume"), 0, 255); - volVoice = CLIP(ConfMan.getInt("speech_volume"), 0, 255); + _musicVolume = CLIP(ConfMan.getInt("music_volume"), 0, 255); + _soundVolume = CLIP(ConfMan.getInt("sfx_volume"), 0, 255); + _voiceVolume = CLIP(ConfMan.getInt("speech_volume"), 0, 255); if (ConfMan.hasKey("talkspeed")) - speedText = (ConfMan.getInt("talkspeed") * 100) / 255; + _textSpeed = (ConfMan.getInt("talkspeed") * 100) / 255; if (ConfMan.hasKey("subtitles")) - bSubtitles = ConfMan.getBool("subtitles"); + _useSubtitles = ConfMan.getBool("subtitles"); // FIXME: If JAPAN is set, subtitles are forced OFF in the original engine - //bSwapButtons = ConfMan.getBool("swap_buttons") == 1 ? true : false; + //_swapButtons = ConfMan.getBool("swap_buttons") == 1 ? true : false; //ConfigData.language = language; // not necessary, as language has been set in the launcher - //ConfigData.bAmerica = bAmerica; // EN_USA / EN_GRB + //ConfigData._isAmericanEnglishVersion = _isAmericanEnglishVersion; // EN_USA / EN_GRB // Set language - we'll be clever here and use the ScummVM language setting - g_language = TXT_ENGLISH; + _language = TXT_ENGLISH; Common::Language lang = _vm->getLanguage(); if (lang == Common::UNK_LANG && ConfMan.hasKey("language")) lang = Common::parseLanguage(ConfMan.get("language")); // For multi-lingual versions, fall back to user settings switch (lang) { case Common::FR_FRA: - g_language = TXT_FRENCH; + _language = TXT_FRENCH; break; case Common::DE_DEU: - g_language = TXT_GERMAN; + _language = TXT_GERMAN; break; case Common::ES_ESP: - g_language = TXT_SPANISH; + _language = TXT_SPANISH; break; case Common::IT_ITA: - g_language = TXT_ITALIAN; + _language = TXT_ITALIAN; break; default: - g_language = TXT_ENGLISH; + _language = TXT_ENGLISH; } if (lang == Common::JA_JPN) { @@ -147,22 +146,22 @@ void ReadConfig() { // The Hebrew version appears to the software as being English // but it needs to have subtitles on... - g_language = TXT_ENGLISH; - bSubtitles = true; + _language = TXT_ENGLISH; + _useSubtitles = true; } else if (_vm->getFeatures() & GF_USE_3FLAGS) { // 3 FLAGS version supports French, German, Spanish // Fall back to German if necessary - if (g_language != TXT_FRENCH && g_language != TXT_GERMAN && g_language != TXT_SPANISH) { - g_language = TXT_GERMAN; - bSubtitles = true; + if (_language != TXT_FRENCH && _language != TXT_GERMAN && _language != TXT_SPANISH) { + _language = TXT_GERMAN; + _useSubtitles = true; } } else if (_vm->getFeatures() & GF_USE_4FLAGS) { // 4 FLAGS version supports French, German, Spanish, Italian // Fall back to German if necessary - if (g_language != TXT_FRENCH && g_language != TXT_GERMAN && - g_language != TXT_SPANISH && g_language != TXT_ITALIAN) { - g_language = TXT_GERMAN; - bSubtitles = true; + if (_language != TXT_FRENCH && _language != TXT_GERMAN && + _language != TXT_SPANISH && _language != TXT_ITALIAN) { + _language = TXT_GERMAN; + _useSubtitles = true; } } } |