aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sound
diff options
context:
space:
mode:
authorWalter van Niftrik2010-01-13 17:34:42 +0000
committerWalter van Niftrik2010-01-13 17:34:42 +0000
commitb59eebfea80e6c218bf04e64c74a07f41d85ba7d (patch)
tree688818d1f1d45193e351ccb6bfd2144c85e948c9 /engines/sci/sound
parent29302d172b485eadaf4806a3dff6186791ce74b1 (diff)
downloadscummvm-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.cpp7
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
}