diff options
Diffstat (limited to 'src/gui/setup_audio.cpp')
-rw-r--r-- | src/gui/setup_audio.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/gui/setup_audio.cpp b/src/gui/setup_audio.cpp index 5e13574e..3f98c44f 100644 --- a/src/gui/setup_audio.cpp +++ b/src/gui/setup_audio.cpp @@ -79,9 +79,14 @@ Setup_Audio::Setup_Audio(): void Setup_Audio::apply() { - if (mSoundCheckBox->isSelected()) + mSoundEnabled = mSoundCheckBox->isSelected(); + mSfxVolume = (int) config.getValue("sfxVolume", 100); + mMusicVolume = (int) config.getValue("musicVolume", 60); + + config.setValue("sound", mSoundEnabled); + + if (mSoundEnabled) { - config.setValue("sound", 1); try { sound.init(); @@ -92,20 +97,16 @@ void Setup_Audio::apply() logger->log("Warning: %s", err); } - if (engine) { + if (engine) + { Map *currentMap = engine->getCurrentMap(); sound.playMusic(currentMap->getProperty("music"), -1); } } else { - config.setValue("sound", 0); sound.close(); } - - mSoundEnabled = config.getValue("sound", 0); - mSfxVolume = (int) config.getValue("sfxVolume", 100); - mMusicVolume = (int) config.getValue("musicVolume", 60); } void Setup_Audio::cancel() @@ -118,7 +119,7 @@ void Setup_Audio::cancel() sound.setMusicVolume(mMusicVolume); mMusicSlider->setValue(mMusicVolume); - config.setValue("sound", mSoundEnabled ? 1 : 0); + config.setValue("sound", mSoundEnabled); config.setValue("sfxVolume", mSfxVolume); config.setValue("musicVolume", mMusicVolume); } |