aboutsummaryrefslogtreecommitdiff
path: root/engines/tinsel/config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tinsel/config.cpp')
-rw-r--r--engines/tinsel/config.cpp89
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;
}
}
}