[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.h,1.39,1.40 dimuse_music.cpp,1.28,1.29 dimuse_script.cpp,1.2,1.3 dimuse_sndmgr.cpp,1.29,1.30

Pawel Kolodziejski aquadran at users.sourceforge.net
Thu Apr 8 22:57:02 CEST 2004


Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5333/imuse_digi

Modified Files:
	dimuse.h dimuse_music.cpp dimuse_script.cpp dimuse_sndmgr.cpp 
Log Message:
back refreshScript only for DIG, add stopping music while changing bundle

Index: dimuse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.h,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- dimuse.h	9 Apr 2004 04:56:18 -0000	1.39
+++ dimuse.h	9 Apr 2004 05:43:24 -0000	1.40
@@ -146,6 +146,7 @@
 	void stopAllSounds(bool waitForStop);
 	void pause(bool pause);
 	void parseScriptCmds(int a, int b, int c, int d, int e, int f, int g, int h);
+	void refreshScripts();
 	int getSoundStatus(int sound) const;
 	int32 getCurMusicPosInMs();
 	int32 getCurVoiceLipSyncWidth();


Index: dimuse_script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_script.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- dimuse_script.cpp	9 Apr 2004 04:56:18 -0000	1.2
+++ dimuse_script.cpp	9 Apr 2004 05:43:24 -0000	1.3
@@ -159,6 +159,20 @@
 	}
 }
 
+void IMuseDigital::refreshScripts() {
+	Common::StackLock lock(_mutex, "IMuseDigital::refreshScripts()");
+	bool found = false;
+	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
+		if ((_track[l].used) && (_track[l].volGroupId == IMUSE_VOLGRP_MUSIC) && (!_track[l].volFadeUsed)) {
+			found = true;
+		}
+	}
+
+	if ((!found) && (_curMusicSeq != 0)) {
+		parseScriptCmds(0x2000, 0, 0, 0, 0, 0, 0, 0);
+	}
+}
+
 void IMuseDigital::startVoice(int soundId, AudioStream *input) {
 	debug(5, "startVoiceStream(%d)", soundId);
 	startSound(soundId, NULL, 0, IMUSE_VOLGRP_VOICE, input, 0, 127, 127);

Index: dimuse_sndmgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_sndmgr.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- dimuse_sndmgr.cpp	8 Apr 2004 21:13:25 -0000	1.29
+++ dimuse_sndmgr.cpp	9 Apr 2004 05:43:24 -0000	1.30
@@ -23,6 +23,7 @@
 #include "common/util.h"
 #include "sound/voc.h"
 #include "scumm/scumm.h"
+#include "scumm/imuse_digi/dimuse.h"
 #include "scumm/imuse_digi/dimuse_sndmgr.h"
 #include "scumm/imuse_digi/dimuse_bndmgr.h"
 
@@ -221,8 +222,12 @@
 		} else {
 			char musicfile[20];
 			sprintf(musicfile, "musdisk%d.bun", _vm->VAR(_vm->VAR_CURRENTDISK));
-			if (_disk != _vm->VAR(_vm->VAR_CURRENTDISK))
+			if (_disk != _vm->VAR(_vm->VAR_CURRENTDISK)) {
+				_vm->_imuseDigital->parseScriptCmds(0x1000, 0, 0, 0, 0, 0, 0, 0);
+				_vm->_imuseDigital->parseScriptCmds(0x2000, 0, 0, 0, 0, 0, 0, 0);
+				_vm->_imuseDigital->stopAllSounds(true);
 				_sounds[slot].bundle->closeFile();
+			}
 
 			result = _sounds[slot].bundle->openFile(musicfile, _vm->getGameDataPath());
 
@@ -248,8 +253,12 @@
 		} else {
 			char voxfile[20];
 			sprintf(voxfile, "voxdisk%d.bun", _vm->VAR(_vm->VAR_CURRENTDISK));
-			if (_disk != _vm->VAR(_vm->VAR_CURRENTDISK))
+			if (_disk != _vm->VAR(_vm->VAR_CURRENTDISK)) {
+				_vm->_imuseDigital->parseScriptCmds(0x1000, 0, 0, 0, 0, 0, 0, 0);
+				_vm->_imuseDigital->parseScriptCmds(0x2000, 0, 0, 0, 0, 0, 0, 0);
+				_vm->_imuseDigital->stopAllSounds(true);
 				_sounds[slot].bundle->closeFile();
+			}
 
 			result = _sounds[slot].bundle->openFile(voxfile, _vm->getGameDataPath());
 





More information about the Scummvm-git-logs mailing list