[Scummvm-cvs-logs] SF.net SVN: scummvm: [30604] scummvm/trunk/engines/scumm/imuse_digi

aquadran at users.sourceforge.net aquadran at users.sourceforge.net
Mon Jan 21 23:06:14 CET 2008


Revision: 30604
          http://scummvm.svn.sourceforge.net/scummvm/?rev=30604&view=rev
Author:   aquadran
Date:     2008-01-21 14:06:14 -0800 (Mon, 21 Jan 2008)

Log Message:
-----------
final fix for bug #1757010

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp
    scummvm/trunk/engines/scumm/imuse_digi/dimuse.h
    scummvm/trunk/engines/scumm/imuse_digi/dimuse_music.cpp
    scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp	2008-01-21 21:39:30 UTC (rev 30603)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp	2008-01-21 22:06:14 UTC (rev 30604)
@@ -97,7 +97,7 @@
 	_curMusicCue = 0;
 	memset(_attributes, 0, sizeof(_attributes));
 	_nextSeqToPlay = 0;
-	_stopingSequence = false;
+	_stopingSequence = 0;
 	_triggerUsed = false;
 }
 

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse.h
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse.h	2008-01-21 21:39:30 UTC (rev 30603)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse.h	2008-01-21 22:06:14 UTC (rev 30604)
@@ -84,7 +84,7 @@
 	int32 _curMusicState;	// current or previous id of music
 	int32 _curMusicSeq;		// current or previous id of sequence music
 	int32 _curMusicCue;		// current cue for current music. used in FT
-	bool _stopingSequence;
+	int _stopingSequence;
 
 	int32 makeMixerFlags(int32 flags);
 	static void timer_handler(void *refConf);

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse_music.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse_music.cpp	2008-01-21 21:39:30 UTC (rev 30603)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse_music.cpp	2008-01-21 22:06:14 UTC (rev 30604)
@@ -184,7 +184,7 @@
 			return;
 		}
 		if (table->transitionType == 4)
-			_stopingSequence = true;
+			_stopingSequence = 1;
 		if ((!sequence) && (table->attribPos != 0) &&
 				(table->attribPos == _digStateMusicTable[_curMusicState].attribPos)) {
 			fadeOutMusicAndStartNew(108, table->filename, table->soundId);
@@ -194,7 +194,7 @@
 		}
 		break;
 	case 6:
-		_stopingSequence = true;
+		_stopingSequence = 1;
 		break;
 	}
 }
@@ -305,7 +305,7 @@
 		setHookIdForMusic(table->hookId);
 		break;
 	case 9:
-		_stopingSequence = true;
+		_stopingSequence = 1;
 		setHookIdForMusic(table->hookId);
 		break;
 	case 2:
@@ -319,7 +319,7 @@
 		if (getCurMusicSoundId() == table->soundId)
 			return;
 		if (table->transitionType == 4)
-			_stopingSequence = true;
+			_stopingSequence = 1;
 		if (table->transitionType == 2) {
 			fadeOutMusic(table->fadeOutDelay);
 			startMusic(table->filename, table->soundId, table->hookId, 127);

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp	2008-01-21 21:39:30 UTC (rev 30603)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp	2008-01-21 22:06:14 UTC (rev 30604)
@@ -210,9 +210,11 @@
 
 	if (_stopingSequence) {
 		debug(5, "refreshScripts() Force restore music state");
-		// disabled that, it seems help for fix bug #1757010
-		//parseScriptCmds(0x1001, 0, 0, 0, 0, 0, 0, 0);
-		_stopingSequence = false;
+		// small delay, it seems help for fix bug #1757010
+		if (_stopingSequence++ > 120) {
+			parseScriptCmds(0x1001, 0, 0, 0, 0, 0, 0, 0);
+			_stopingSequence = 0;
+		}
 	}
 
 	bool found = false;


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