[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