[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