aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.cpp3
-rw-r--r--sound.cpp28
2 files changed, 19 insertions, 12 deletions
diff --git a/main.cpp b/main.cpp
index 08adf90178..d49c029c9a 100644
--- a/main.cpp
+++ b/main.cpp
@@ -124,6 +124,9 @@ int main(int argc, char *argv[])
} else {
Scumm *scumm = Scumm::createFromDetector(&detector, system);
g_scumm = scumm;
+ g_scumm->_sound_volume_master = 0;
+ g_scumm->_sound_volume_music = detector._music_volume;
+ g_scumm->_sound_volume_sfx = detector._sfx_volume;
/* bind to Gui */
scumm->_gui = &gui;
diff --git a/sound.cpp b/sound.cpp
index 491350df32..806d213c8b 100644
--- a/sound.cpp
+++ b/sound.cpp
@@ -408,19 +408,22 @@ void Scumm::setupSound()
IMuse *se = _imuse;
if (se) {
se->setBase(res.address[rtSound]);
- if (!_soundVolumePreset) {
- if (se->get_music_volume() == 0)
- se->set_music_volume(60);
- se->set_master_volume(125);
- _sound_volume_music = se->get_music_volume();
- //_sound_volume_master = (se->get_master_volume() / 127);
- _sound_volume_master = se->get_master_volume();
+ if (!scummcfg->get("music_volume", "scummvm"))
+ _sound_volume_music = 60;
+ else
+ _sound_volume_music = atoi(scummcfg->get("music_volume", "scummvm"));
+ if (!scummcfg->get("master_volume", "scummvm"))
+ _sound_volume_master = 125;
+ else
+ _sound_volume_master = atoi(scummcfg->get("master_volume", "scummvm"));
+ if (!scummcfg->get("sfx_volume", "scummvm"))
+ _sound_volume_sfx = 100;
+ else
+ _sound_volume_sfx = atoi(scummcfg->get("sfx_volume", "scummvm"));
- }
- else {
- se->set_music_volume(_sound_volume_music);
- se->set_master_volume(_sound_volume_master);
- }
+ se->set_master_volume(_sound_volume_master);
+ se->set_music_volume(_sound_volume_music);
+ _mixer->set_volume(_sound_volume_sfx);
}
_sfxFile = openSfxFile();
}
@@ -431,6 +434,7 @@ void Scumm::pauseSounds(bool pause)
if (se)
se->pause(pause);
_soundsPaused = pause;
+ _mixer->pause(pause);
}
enum {