diff options
author | Filippos Karapetis | 2012-09-10 21:53:00 +0300 |
---|---|---|
committer | Filippos Karapetis | 2012-09-11 00:34:23 +0300 |
commit | 72cdd019fc5797f1250e346828a8fcef11fb28a4 (patch) | |
tree | 34bcff016248ac86a72461f9f7a442e5f1ddad41 /engines/toltecs/toltecs.cpp | |
parent | 4a5333893d38a13b26a4294ff144d179cdd938f2 (diff) | |
download | scummvm-rg350-72cdd019fc5797f1250e346828a8fcef11fb28a4.tar.gz scummvm-rg350-72cdd019fc5797f1250e346828a8fcef11fb28a4.tar.bz2 scummvm-rg350-72cdd019fc5797f1250e346828a8fcef11fb28a4.zip |
TOLTECS: Implement volume handling and toggling of speech/text
Diffstat (limited to 'engines/toltecs/toltecs.cpp')
-rw-r--r-- | engines/toltecs/toltecs.cpp | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/engines/toltecs/toltecs.cpp b/engines/toltecs/toltecs.cpp index 6d6c37dffd..987194212f 100644 --- a/engines/toltecs/toltecs.cpp +++ b/engines/toltecs/toltecs.cpp @@ -62,11 +62,6 @@ struct GameSettings { }; ToltecsEngine::ToltecsEngine(OSystem *syst, const ToltecsGameDescription *gameDesc) : Engine(syst), _gameDescription(gameDesc) { - - // Setup mixer - _mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, ConfMan.getInt("sfx_volume")); - _mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, ConfMan.getInt("music_volume")); - _rnd = new Common::RandomSource("toltecs"); } @@ -129,14 +124,24 @@ Common::Error ToltecsEngine::run() { _sound = new Sound(this); + _cfgText = ConfMan.getBool("subtitles"); + _cfgVoices = !ConfMan.getBool("speech_mute"); + + bool mute = false; + if (ConfMan.hasKey("mute")) + mute = ConfMan.getBool("mute"); + + _mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, mute ? 0 : ConfMan.getInt("speech_volume")); + _mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, mute ? 0 : ConfMan.getInt("music_volume")); + _mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, mute ? 0 : ConfMan.getInt("sfx_volume")); syncSoundSettings(); CursorMan.showMouse(true); setupSysStrings(); -//#define TEST_MENU -#ifdef TEST_MENU +#if 0 + // Menu test _screen->registerFont(0, 0x0D); _screen->registerFont(1, 0x0E); _screen->loadMouseCursor(12); @@ -321,7 +326,6 @@ void ToltecsEngine::updateInput() { //debug("key: flags = %02X; keycode = %d", _keyState.flags, _keyState.keycode); - // FIXME: This is just for debugging switch (event.kbd.keycode) { case Common::KEYCODE_F7: savegame("toltecs.001", "Quicksave"); @@ -638,4 +642,16 @@ int16 ToltecsEngine::findRectAtPoint(byte *rectData, int16 x, int16 y, int16 ind } +void ToltecsEngine::syncSoundSettings() { + Engine::syncSoundSettings(); + + bool mute = false; + if (ConfMan.hasKey("mute")) + mute = ConfMan.getBool("mute"); + + _cfgVoicesVolume = (mute ? 0 : ConfMan.getInt("speech_volume")) * 20 / Audio::Mixer::kMaxChannelVolume; + _cfgMusicVolume = (mute ? 0 : ConfMan.getInt("music_volume")) * 20 / Audio::Mixer::kMaxChannelVolume; + _cfgSoundFXVolume = (mute ? 0 : ConfMan.getInt("sfx_volume")) * 20 / Audio::Mixer::kMaxChannelVolume; +} + } // End of namespace Toltecs |