[Scummvm-cvs-logs] SF.net SVN: scummvm:[54509] scummvm/trunk/engines/sci/sound/midiparser_sci. cpp

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Sat Nov 27 18:29:42 CET 2010


Revision: 54509
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54509&view=rev
Author:   thebluegr
Date:     2010-11-27 17:29:42 +0000 (Sat, 27 Nov 2010)

Log Message:
-----------
SCI: Fix for bug #3119713 - "PQ2: song-specific reverb changes are ignored" (thanks to waltervn)

Modified Paths:
--------------
    scummvm/trunk/engines/sci/sound/midiparser_sci.cpp

Modified: scummvm/trunk/engines/sci/sound/midiparser_sci.cpp
===================================================================
--- scummvm/trunk/engines/sci/sound/midiparser_sci.cpp	2010-11-27 17:23:24 UTC (rev 54508)
+++ scummvm/trunk/engines/sci/sound/midiparser_sci.cpp	2010-11-27 17:29:42 UTC (rev 54509)
@@ -495,19 +495,26 @@
 	case 0xB:
 		info.basic.param1 = *(_position._play_pos++);
 		info.basic.param2 = *(_position._play_pos++);
-		if (info.channel() == 0xF) {// SCI special
-			// Reference for some events:
-			// http://wiki.scummvm.org/index.php/SCI/Specifications/Sound/SCI0_Resource_Format#Status_Reference
-			// Also, sci/sound/iterator/iterator.cpp, function BaseSongIterator::parseMidiCommand()
+
+		// Reference for some events:
+		// http://wiki.scummvm.org/index.php/SCI/Specifications/Sound/SCI0_Resource_Format#Status_Reference
+		// Handle common special events
+		switch (info.basic.param1) {
+		case kSetReverb:
+			if (info.basic.param2 == 127)		// Set global reverb instead
+				_pSnd->reverb = _music->getGlobalReverb();
+			else
+				_pSnd->reverb = info.basic.param2;
+
+			((MidiPlayer *)_driver)->setReverb(_pSnd->reverb);
+			break;
+		default:
+			break;
+		}
+
+		// Handle events sent to the SCI special channel (15)
+		if (info.channel() == 0xF) {
 			switch (info.basic.param1) {
-			case kSetReverb:
-				if (info.basic.param2 == 127)		// Set global reverb instead
-					_pSnd->reverb = _music->getGlobalReverb();
-				else
-					_pSnd->reverb = info.basic.param2;
-
-				((MidiPlayer *)_driver)->setReverb(_pSnd->reverb);
-				break;
 			case kMidiHold:
 				// Check if the hold ID marker is the same as the hold ID
 				// marker set for that song by cmdSetSoundHold.


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list