[Scummvm-cvs-logs] CVS: scummvm/scumm resource_v7he.cpp,1.41,1.42 sound.cpp,1.459,1.460 sound.h,1.88,1.89
kirben
kirben at users.sourceforge.net
Fri May 13 01:48:05 CEST 2005
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21114/scumm
Modified Files:
resource_v7he.cpp sound.cpp sound.h
Log Message:
HE demos sometimes call music tracks that don't exist.
Index: resource_v7he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource_v7he.cpp,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -d -r1.41 -r1.42
--- resource_v7he.cpp 10 May 2005 22:56:10 -0000 1.41
+++ resource_v7he.cpp 13 May 2005 08:45:39 -0000 1.42
@@ -1760,7 +1760,10 @@
int offs, size;
if (id > _numSounds) {
- _sound->getHEMusicDetails(id, offs, size);
+ if (!_sound->getHEMusicDetails(id, offs, size)) {
+ debug(0, "getSoundResourceSize: musicID %d not found", id);
+ return 0;
+ }
} else {
ptr = getResourceAddress(rtSound, id);
if (!ptr)
Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.cpp,v
retrieving revision 1.459
retrieving revision 1.460
diff -u -d -r1.459 -r1.460
--- sound.cpp 11 May 2005 00:01:28 -0000 1.459
+++ sound.cpp 13 May 2005 08:45:40 -0000 1.460
@@ -202,18 +202,18 @@
musicFile.close();
}
-void Sound::getHEMusicDetails(int id, int &musicOffs, int &musicSize) {
+bool Sound::getHEMusicDetails(int id, int &musicOffs, int &musicSize) {
int i;
for (i = 0; i < _heMusicTracks; i++) {
if (_heMusic[i].id == id) {
musicOffs = _heMusic[i].offset;
musicSize = _heMusic[i].size;
- return;
+ return 1;
}
}
- error("getHEMusicDetails: musicID %d not found", id);
+ return 0;
}
void Sound::playSound(int soundID, int heOffset, int heChannel, int heFlags) {
@@ -250,8 +250,11 @@
warning("playSound: Can't open music file %s", buf);
return;
}
+ if (!getHEMusicDetails(soundID, music_offs, size)) {
+ debug(0, "playSound: musicID %d not found", soundID);
+ return;
+ }
- getHEMusicDetails(soundID, music_offs, size);
musicFile.seek(music_offs, SEEK_SET);
ptr = (byte *)malloc(size);
musicFile.read(ptr, size);
Index: sound.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.h,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -d -r1.88 -r1.89
--- sound.h 11 May 2005 00:01:29 -0000 1.88
+++ sound.h 13 May 2005 08:45:42 -0000 1.89
@@ -133,7 +133,7 @@
int getCurrentCDSound() const { return _currentCDSound; }
void setupHEMusicFile();
- void getHEMusicDetails(int id, int &musicOffs, int &musicSize);
+ bool getHEMusicDetails(int id, int &musicOffs, int &musicSize);
// Used by the save/load system:
const SaveLoadEntry *getSaveLoadEntries();
More information about the Scummvm-git-logs
mailing list