aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorMartin Kiewitz2010-06-25 16:43:09 +0000
committerMartin Kiewitz2010-06-25 16:43:09 +0000
commitb188fc14a2591e480c0fb4a16558ef0a2aacd3a3 (patch)
treeda9945746428c835cccbe226b7bd5f9604a22fbb /engines/sci
parent6ee82a20276d213a06d43ff731d197f5a92a09d7 (diff)
downloadscummvm-rg350-b188fc14a2591e480c0fb4a16558ef0a2aacd3a3.tar.gz
scummvm-rg350-b188fc14a2591e480c0fb4a16558ef0a2aacd3a3.tar.bz2
scummvm-rg350-b188fc14a2591e480c0fb4a16558ef0a2aacd3a3.zip
SCI: only send new volume to currently mapped channels, fixes assert in sq1 because setVolume is called on an object that's currently not playing. added fixme
svn-id: r50274
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/sound/midiparser_sci.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/engines/sci/sound/midiparser_sci.cpp b/engines/sci/sound/midiparser_sci.cpp
index 4766118f52..cb43f6c3a1 100644
--- a/engines/sci/sound/midiparser_sci.cpp
+++ b/engines/sci/sound/midiparser_sci.cpp
@@ -672,9 +672,11 @@ void MidiParser_SCI::setVolume(byte volume) {
case SCI_VERSION_1_EARLY:
case SCI_VERSION_1_LATE:
- // sending volume change to all used channels
+ // sending volume change to all currently mapped channels
+ // FIXME?: maybe we should better store new volume if music isn't playing currently and adjust volume
+ // when playing
for (int i = 0; i < 15; i++)
- if (_channelUsed[i])
+ if (_channelRemap[i] != -1)
sendToDriver(0xB0 + i, 7, _volume);
break;