diff options
author | Walter van Niftrik | 2010-01-13 17:34:42 +0000 |
---|---|---|
committer | Walter van Niftrik | 2010-01-13 17:34:42 +0000 |
commit | b59eebfea80e6c218bf04e64c74a07f41d85ba7d (patch) | |
tree | 688818d1f1d45193e351ccb6bfd2144c85e948c9 /engines/sci/sound | |
parent | 29302d172b485eadaf4806a3dff6186791ce74b1 (diff) | |
download | scummvm-rg350-b59eebfea80e6c218bf04e64c74a07f41d85ba7d.tar.gz scummvm-rg350-b59eebfea80e6c218bf04e64c74a07f41d85ba7d.tar.bz2 scummvm-rg350-b59eebfea80e6c218bf04e64c74a07f41d85ba7d.zip |
SCI: DoSound: when setting volume return previous value, fixes KQ6CD intro.
svn-id: r47292
Diffstat (limited to 'engines/sci/sound')
-rw-r--r-- | engines/sci/sound/soundcmd.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/engines/sci/sound/soundcmd.cpp b/engines/sci/sound/soundcmd.cpp index 51c0006747..7a83f46132 100644 --- a/engines/sci/sound/soundcmd.cpp +++ b/engines/sci/sound/soundcmd.cpp @@ -609,12 +609,14 @@ void SoundCommandParser::cmdMuteSound(reg_t obj, int16 value) { void SoundCommandParser::cmdMasterVolume(reg_t obj, int16 value) { #ifdef USE_OLD_MUSIC_FUNCTIONS + _acc = make_reg(0, _state->sfx_getVolume()); + if (obj != SIGNAL_REG) _state->sfx_setVolume(obj.toSint16()); - - _acc = make_reg(0, _state->sfx_getVolume()); #else debugC(2, kDebugLevelSound, "cmdMasterVolume: %d", value); + _acc = make_reg(0, _music->soundGetMasterVolume()); + if (_argc > 1) { // the first parameter is the sound command int vol = CLIP<int16>(obj.toSint16(), 0, kMaxSciVolume); vol = vol * Audio::Mixer::kMaxMixerVolume / kMaxSciVolume; @@ -622,7 +624,6 @@ void SoundCommandParser::cmdMasterVolume(reg_t obj, int16 value) { ConfMan.setInt("sfx_volume", vol); g_engine->syncSoundSettings(); } - _acc = make_reg(0, _music->soundGetMasterVolume()); #endif } |