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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Thu Jan 21 23:33:35 CET 2010


Revision: 47424
          http://scummvm.svn.sourceforge.net/scummvm/?rev=47424&view=rev
Author:   m_kiewitz
Date:     2010-01-21 22:33:35 +0000 (Thu, 21 Jan 2010)

Log Message:
-----------
SCI: fixing iceman intro again (dont set datainc immediately but after delta)

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

Modified: scummvm/trunk/engines/sci/sound/midiparser_sci.cpp
===================================================================
--- scummvm/trunk/engines/sci/sound/midiparser_sci.cpp	2010-01-21 22:20:16 UTC (rev 47423)
+++ scummvm/trunk/engines/sci/sound/midiparser_sci.cpp	2010-01-21 22:33:35 UTC (rev 47424)
@@ -55,6 +55,8 @@
 
 	_signalSet = false;
 	_signalToSet = 0;
+	_dataincAdd = false;
+	_dataincToAdd = 0;
 	_channelsUsed = 0;
 }
 
@@ -118,6 +120,12 @@
 	_channelsUsed |= (1 << info.channel());
 
 	// Set signal AFTER waiting for delta, otherwise we would set signal too soon resulting in all sorts of bugs
+	if (_dataincAdd) {
+		_dataincAdd = false;
+		_pSnd->dataInc += _dataincToAdd;
+		_pSnd->signal = 0x7f + _pSnd->dataInc;
+		debugC(2, kDebugLevelSound, "datainc %04x", _dataincToAdd);
+	}
 	if (_signalSet) {
 		_signalSet = false;
 		_pSnd->signal = _signalToSet;
@@ -178,16 +186,15 @@
 					jumpToTick(_loopTick, false, false);
 				break;
 			case kUpdateCue:
+				_dataincAdd = true;
 				switch (_soundVersion) {
 				case SCI_VERSION_0_EARLY:
 				case SCI_VERSION_0_LATE:
-					_pSnd->dataInc += info.basic.param2;
-					_signalSet = true;
-					_signalToSet = 0x7f + _pSnd->dataInc;
+					_dataincToAdd = info.basic.param2;
 					break;
 				case SCI_VERSION_1_EARLY:
 				case SCI_VERSION_1_LATE:
-					_pSnd->dataInc++;
+					_dataincToAdd = 1;
 					break;
 				default:
 					break;

Modified: scummvm/trunk/engines/sci/sound/midiparser_sci.h
===================================================================
--- scummvm/trunk/engines/sci/sound/midiparser_sci.h	2010-01-21 22:20:16 UTC (rev 47423)
+++ scummvm/trunk/engines/sci/sound/midiparser_sci.h	2010-01-21 22:33:35 UTC (rev 47424)
@@ -84,6 +84,8 @@
 
 	bool _signalSet;
 	int16 _signalToSet;
+	bool _dataincAdd;
+	int16 _dataincToAdd;
 
 	// A 16-bit mask, containing the channels used
 	// by the currently parsed song


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