[Scummvm-cvs-logs] scummvm master -> d54a57cceea0bff3b0dac9755363f21f2e965924
bluegr
bluegr at gmail.com
Fri Mar 29 00:26:32 CET 2013
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
d54a57ccee SCI: Stop and clear sounds that have no data. Fixes an issue in KQ6 Mac
Commit: d54a57cceea0bff3b0dac9755363f21f2e965924
https://github.com/scummvm/scummvm/commit/d54a57cceea0bff3b0dac9755363f21f2e965924
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2013-03-28T16:25:35-07:00
Commit Message:
SCI: Stop and clear sounds that have no data. Fixes an issue in KQ6 Mac
Thanks to waltervn and clone2727 for the original patch. Tested LSL5
with this change, and the problematic sound in the mud wrestling scene
is handled correctly
Changed paths:
engines/sci/sound/soundcmd.cpp
diff --git a/engines/sci/sound/soundcmd.cpp b/engines/sci/sound/soundcmd.cpp
index a76b3b3..4d12d95 100644
--- a/engines/sci/sound/soundcmd.cpp
+++ b/engines/sci/sound/soundcmd.cpp
@@ -501,12 +501,15 @@ void SoundCommandParser::processUpdateCues(reg_t obj) {
processStopSound(obj, false);
}
} else {
- // Slot actually has no data (which would mean that a sound-resource w/
- // unsupported data is used.
- // (example lsl5 - sound resource 744 - it's Roland exclusive
- writeSelectorValue(_segMan, obj, SELECTOR(signal), SIGNAL_OFFSET);
- // If we don't set signal here, at least the switch to the mud wrestling
- // room in lsl5 will not work.
+ // The sound slot has no data for the currently selected sound card.
+ // An example can be found during the mud wrestling scene in LSL5, room
+ // 730: sound 744 (a splat sound heard when Lana Luscious jumps in the
+ // mud) only contains MIDI channel data. If a non-MIDI sound card is
+ // selected (like Adlib), then the scene freezes. We also need to stop
+ // the sound at this point, otherwise KQ6 Mac breaks because the rest
+ // of the object needs to be reset to avoid a continuous stream of
+ // sound cues.
+ processStopSound(obj, true); // this also sets the signal selector
}
if (musicSlot->fadeCompleted) {
More information about the Scummvm-git-logs
mailing list