aboutsummaryrefslogtreecommitdiff
path: root/engines/engine.cpp
diff options
context:
space:
mode:
authorChristopher Page2008-06-26 23:22:28 +0000
committerChristopher Page2008-06-26 23:22:28 +0000
commite36166bda291f6f0af8af3328efce5aa4b83cd9a (patch)
tree2d50ccf7d05c10c2cdfd95251defe3c83e06013a /engines/engine.cpp
parentd0dcc1ad7943a528f0f4f016a64ee45251adb6a8 (diff)
downloadscummvm-rg350-e36166bda291f6f0af8af3328efce5aa4b83cd9a.tar.gz
scummvm-rg350-e36166bda291f6f0af8af3328efce5aa4b83cd9a.tar.bz2
scummvm-rg350-e36166bda291f6f0af8af3328efce5aa4b83cd9a.zip
Added syncSoundSettings() to Engine, sound settings can now be modified from the global main menu for most engines
svn-id: r32815
Diffstat (limited to 'engines/engine.cpp')
-rw-r--r--engines/engine.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/engines/engine.cpp b/engines/engine.cpp
index 29135d9323..3a13c275ba 100644
--- a/engines/engine.cpp
+++ b/engines/engine.cpp
@@ -77,7 +77,8 @@ Engine::Engine(OSystem *syst)
Engine::~Engine() {
_mixer->stopAll();
-
+
+ delete _mainMenuDialog;
g_engine = NULL;
}
@@ -220,6 +221,7 @@ void Engine::mainMenuDialog() {
if (!_mainMenuDialog)
_mainMenuDialog = new MainMenuDialog(this);
runDialog(*_mainMenuDialog);
+ syncSoundSettings();
}
int Engine::runDialog(Dialog &dialog) {
@@ -233,3 +235,14 @@ int Engine::runDialog(Dialog &dialog) {
return 0;
}
+void Engine::syncSoundSettings() {
+
+ // Sync the engine with the config manager
+ int soundVolumeMusic = ConfMan.getInt("music_volume");
+ int soundVolumeSFX = ConfMan.getInt("sfx_volume");
+ int soundVolumeSpeech = ConfMan.getInt("speech_volume");
+
+ _mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, soundVolumeMusic);
+ _mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, soundVolumeSFX);
+ _mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, soundVolumeSpeech);
+}