[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse_music.cpp,1.29,1.30 dimuse_sndmgr.cpp,1.30,1.31 dimuse_track.cpp,1.1,1.2

Pawel Kolodziejski aquadran at users.sourceforge.net
Thu Apr 8 23:31:02 CEST 2004


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

Modified Files:
	dimuse_music.cpp dimuse_sndmgr.cpp dimuse_track.cpp 
Log Message:
-fix for dig demo
-handle some music opcodes without filename

Index: dimuse_music.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_music.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- dimuse_music.cpp	9 Apr 2004 05:43:24 -0000	1.29
+++ dimuse_music.cpp	9 Apr 2004 06:17:12 -0000	1.30
@@ -171,10 +171,6 @@
 
 	fadeOutMusic(120);
 
-	if (table->filename[0] == 0) {
-		return;
-	}
-
 	switch(table->opcode) {
 		case 0:
 		case 5:
@@ -182,6 +178,9 @@
 			break;
 		case 3:
 		case 4:
+			if (table->filename[0] == 0) {
+				return;
+			}
 			if ((!sequence) && (table->param != 0) &&
 					(table->param == _digStateMusicTable[_curMusicState].param)) {
 				startMusic(table->filename, table->soundId, 0, 127);
@@ -289,11 +288,6 @@
 		}
 	}
 
-	if (table->filename[0] == 0) {
-		fadeOutMusic(120);
-		return;
-	}
-
 	switch(table->opcode) {
 		case 0:
 		case 8:
@@ -301,17 +295,29 @@
 			fadeOutMusic(120);
 			break;
 		case 1:
+			if (table->filename[0] == 0) {
+				fadeOutMusic(120);
+				return;
+			}
 			fadeOutMusic(120);
 			startMusic(table->filename, table->soundId, 0, 1);
 			setFade(table->soundId, 127, 120);
 			break;
 		case 2:
+			if (table->filename[0] == 0) {
+				fadeOutMusic(60);
+				return;
+			}
 			fadeOutMusic(table->fadeOut60TicksDelay);
 			startMusic(table->filename, table->soundId, table->hookId, 127);
 			break;
 		case 3:
 		case 4:
 		case 12:
+			if (table->filename[0] == 0) {
+				fadeOutMusic(60);
+				return;
+			}
 			fadeOutMusic(table->fadeOut60TicksDelay);
 			if ((!sequence) && (table->param != 0) &&
 					(table->param == _comiStateMusicTable[_curMusicState].param)) {


Index: dimuse_track.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_track.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- dimuse_track.cpp	6 Apr 2004 19:46:43 -0000	1.1
+++ dimuse_track.cpp	9 Apr 2004 06:17:20 -0000	1.2
@@ -205,7 +205,11 @@
 void IMuseDigital::selectVolumeGroup(int soundId, int volGroupId) {
 	Common::StackLock lock(_mutex, "IMuseDigital::setGroupVolume()");
 	debug(5, "IMuseDigital::setGroupVolume(%d, %d)", soundId, volGroupId);
-	assert((volGroupId >= 1) && (volGroupId <= 3));
+	assert((volGroupId >= 1) && (volGroupId <= 4));
+
+	if (volGroupId == 4)
+		volGroupId = 3;
+
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		if ((_track[l].soundId == soundId) && _track[l].used) {
 			_track[l].volGroupId = volGroupId;





More information about the Scummvm-git-logs mailing list