[Scummvm-cvs-logs] CVS: scummvm/scumm sound.cpp,1.380,1.381

Travis Howell kirben at users.sourceforge.net
Thu Sep 2 00:02:07 CEST 2004


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

Modified Files:
	sound.cpp 
Log Message:




Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.cpp,v
retrieving revision 1.380
retrieving revision 1.381
diff -u -d -r1.380 -r1.381
--- sound.cpp	2 Sep 2004 04:23:12 -0000	1.380
+++ sound.cpp	2 Sep 2004 07:00:57 -0000	1.381
@@ -163,9 +163,9 @@
 	bool music = false;
 	
 	if (_vm->_heversion >= 70 && soundID > _vm->_numSounds) {
-		debugC(DEBUG_SOUND, "playSound #%d", soundID);
+		debug(0, "playSound #%d", soundID);
 
-		int music_offs, total_size;
+		int music_offs, tunes, total_size;
 		uint skip = 0;
 		char buf[32];
 		File musicFile;
@@ -177,32 +177,31 @@
 		}
 		musicFile.seek(4, SEEK_SET);
 		total_size = musicFile.readUint32BE();
+		musicFile.seek(+8, SEEK_CUR);
+		tunes = musicFile.readUint32LE() - 1;
 
-		musicFile.seek(+40, SEEK_CUR);
+		musicFile.seek(+28, SEEK_CUR);
 		if (musicFile.readUint32LE() == MKID('SGEN')) {
-			// TODO Work out skip calcution
-			//skip = (soundID - 8001) * 21;
-			musicFile.seek(+skip, SEEK_CUR);
+			// Skip to correct music header
+			if (tunes)
+				skip = (soundID - 8000) * 21;
 
 			// Skip to offsets
 			musicFile.seek(+8, SEEK_CUR);
-		
 		} else {
 			// Rewind
-			musicFile.seek(-44, SEEK_CUR);
-
-			// Skip SGHD header (16)
-			musicFile.seek(+16, SEEK_CUR);
+			musicFile.seek(-28, SEEK_CUR);
 
 			// Skip to correct music header
-			if (soundID >= 8000)
-				skip = (soundID - 8001) * 25;
-			else
-				skip = (soundID - 4001) * 25;
-			musicFile.seek(+skip, SEEK_CUR);
-
+			if (tunes) {
+				if (soundID >= 8000)
+					skip = (soundID - 8000) * 25;
+				else
+					skip = (soundID - 4001) * 25;
+			}
 		}
 
+		musicFile.seek(+skip, SEEK_CUR);
 		music_offs = musicFile.readUint32LE();
 		size = musicFile.readUint32LE();
 





More information about the Scummvm-git-logs mailing list