[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse_music.cpp,1.21,1.22

Pawel Kolodziejski aquadran at users.sourceforge.net
Wed Apr 7 00:31:04 CEST 2004


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

Modified Files:
	dimuse_music.cpp 
Log Message:
corections to music code

Index: dimuse_music.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_music.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- dimuse_music.cpp	6 Apr 2004 19:46:43 -0000	1.21
+++ dimuse_music.cpp	7 Apr 2004 07:17:16 -0000	1.22
@@ -89,7 +89,7 @@
 
 	if (_curMusicSeq == 0) {
 		if (num == 0)
-			playDigMusic(NULL, &_digStateMusicTable[0], 0, false);
+			playDigMusic(NULL, &_digStateMusicTable[0], num, false);
 		else
 			playDigMusic(_digStateMusicTable[num].name, &_digStateMusicTable[num], num, false);
 	}
@@ -123,10 +123,10 @@
 			_curSeqAtribPos = 0;
 			_attributes[DIG_SEQ_OFFSET + num] = 1;
 		} else {
-			if ((_digSeqMusicTable[_curMusicSeq].opcode == 4) && (_digSeqMusicTable[_curMusicSeq].opcode == 6)) {
+			if ((_digSeqMusicTable[_curMusicSeq].opcode == 4) || (_digSeqMusicTable[_curMusicSeq].opcode == 6)) {
 				_curSeqAtribPos = num;
 				return;
-			} else if (_digSeqMusicTable[_curMusicSeq].opcode == 6) {
+			} else {
 				playDigMusic(_digSeqMusicTable[num].name, &_digSeqMusicTable[num], 0, true);
 				_curSeqAtribPos = 0;
 				_attributes[DIG_SEQ_OFFSET + num] = 1;
@@ -142,7 +142,7 @@
 			if (_curMusicState != 0) {
 				playDigMusic(_digStateMusicTable[_curMusicState].name, &_digStateMusicTable[_curMusicState], _curMusicState, true);
 			} else
-				playDigMusic(NULL, &_digStateMusicTable[0], 0, true);
+				playDigMusic(NULL, &_digStateMusicTable[0], _curMusicState, true);
 			num = 0;
 		}
 	}
@@ -185,28 +185,25 @@
 		}
 	}
 
+	fadeOutMusic(120);
+
 	if (table->filename[0] == 0) {
-		fadeOutMusic(120);
 		return;
 	}
 
-	fadeOutMusic(120);
-
 	switch(table->opcode) {
 		case 0:
 		case 5:
 		case 6:
 			break;
 		case 3:
+		case 4:
 			if ((!sequence) && (table->param != 0)) {
 				if (table->param == _digStateMusicTable[_curMusicState].param) {
 					startMusic(table->filename, table->soundId, 0, 127);
-				} 
-			} else {
-				startMusic(table->filename, table->soundId, hookId, 127);
+					return;
+				}
 			}
-			break;
-		case 4:
 			startMusic(table->filename, table->soundId, hookId, 127);
 			break;
 	}
@@ -232,7 +229,7 @@
 
 	if (_curMusicSeq == 0) {
 		if (num == 0)
-			playComiMusic(NULL, &_comiStateMusicTable[0], 0, false);
+			playComiMusic(NULL, &_comiStateMusicTable[0], num, false);
 		else
 			playComiMusic(_comiStateMusicTable[num].name, &_comiStateMusicTable[num], num, false);
 	}
@@ -260,14 +257,14 @@
 
 	if (num != 0) {
 		if (_curMusicSeq == 0) {
-			playComiMusic(_comiSeqMusicTable[num].name, &_comiSeqMusicTable[num], 0, true);
+			playComiMusic(_comiSeqMusicTable[num].name, &_comiSeqMusicTable[0], 0, true);
 			_curSeqAtribPos = 0;
 			_attributes[COMI_SEQ_OFFSET + num] = 1;
 		} else {
-			if ((_comiSeqMusicTable[_curMusicSeq].opcode == 4) && (_comiSeqMusicTable[_curMusicSeq].opcode == 6)) {
+			if ((_comiSeqMusicTable[_curMusicSeq].opcode == 4) || (_comiSeqMusicTable[_curMusicSeq].opcode == 6)) {
 				_curSeqAtribPos = num;
 				return;
-			} else if (_comiSeqMusicTable[_curMusicSeq].opcode == 6) {
+			} else {
 				playComiMusic(_comiSeqMusicTable[num].name, &_comiSeqMusicTable[num], 0, true);
 				_curSeqAtribPos = 0;
 				_attributes[COMI_SEQ_OFFSET + num] = 1;
@@ -283,7 +280,7 @@
 			if (_curMusicState != 0) {
 				playComiMusic(_comiStateMusicTable[_curMusicState].name, &_comiStateMusicTable[_curMusicState], _curMusicState, true);
 			} else
-				playComiMusic(NULL, &_comiStateMusicTable[0], 0, true);
+				playComiMusic(NULL, &_comiStateMusicTable[0], _curMusicState, true);
 			num = 0;
 		}
 	}
@@ -295,6 +292,8 @@
 	int hookId = 0;
 
 	if ((songName != NULL) && (atribPos != 0)) {
+		if (table->param != 0)
+			atribPos = table->param;
 		hookId = _attributes[COMI_STATE_OFFSET + atribPos];
 		if (table->hookId != 0) {
 			if ((hookId != 0) && (table->hookId <= 1)) {
@@ -328,24 +327,21 @@
 			startMusic(table->filename, table->soundId, table->hookId, 127);
 			break;
 		case 3:
+		case 4:
+		case 12:
+			fadeOutMusic(table->fadeOut60TicksDelay);
 			if ((!sequence) && (table->param != 0)) {
 				if (table->param == _comiStateMusicTable[_curMusicState].param) {
-					fadeOutMusic(table->fadeOut60TicksDelay);
 					startMusic(table->filename, table->soundId, 0, 127);
 				}
 			} else {
-				fadeOutMusic(table->fadeOut60TicksDelay);
-				startMusic(table->filename, table->soundId, hookId, 127);
+				if (table->opcode == 12) {
+					startMusic(table->filename, table->soundId, table->hookId, 127);
+				} else {
+					startMusic(table->filename, table->soundId, hookId, 127);
+				}
 			}
 			break;
-		case 4:
-			fadeOutMusic(120);
-			startMusic(table->filename, table->soundId, table->hookId, 127);
-			break;
-		case 12:
-			fadeOutMusic(table->fadeOut60TicksDelay);
-			startMusic(table->filename, table->soundId, table->hookId, 127);
-			break;
 	}
 }
 





More information about the Scummvm-git-logs mailing list