[Scummvm-cvs-logs] CVS: scummvm/scumm bundle.h,1.6,1.7 sound.cpp,1.70,1.71
James Brown
ender at users.sourceforge.net
Sun Jan 12 11:16:03 CET 2003
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv2254/scumm
Modified Files:
bundle.h sound.cpp
Log Message:
Fix ComI music bundle switching on disk change
Index: bundle.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/bundle.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- bundle.h 28 Dec 2002 15:02:23 -0000 1.6
+++ bundle.h 12 Jan 2003 19:15:28 -0000 1.7
@@ -45,7 +45,6 @@
CompTable _compVoiceTable[50];
CompTable _compMusicTable[2500];
File _voiceFile;
- File _musicFile;
BundleAudioTable *_bundleVoiceTable;
BundleAudioTable *_bundleMusicTable;
int32 _numVoiceFiles;
@@ -60,6 +59,7 @@
Bundle();
~Bundle();
+ File _musicFile;
void initializeImcTables();
bool openVoiceFile(const char *filename, const char *directory);
bool openMusicFile(const char *filename, const char *directory);
Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.cpp,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -d -r1.70 -r1.71
--- sound.cpp 10 Jan 2003 08:25:16 -0000 1.70
+++ sound.cpp 12 Jan 2003 19:15:30 -0000 1.71
@@ -40,6 +40,7 @@
_nameBundleMusic = NULL;
_musicBundleBufFinal = NULL;
_musicBundleBufOutput = NULL;
+ _musicDisk = 0;
_talkChannel = -1;
}
@@ -960,9 +961,15 @@
if (_scumm->_gameId == GID_CMI) {
char bunfile[20];
sprintf(bunfile, "musdisk%d.bun", _scumm->_vars[_scumm->VAR_CURRENTDISK]);
- printf("Opening bundle\n");
- if (_scumm->_bundle->openMusicFile(bunfile, _scumm->getGameDataPath()) == false)
+ if (_musicDisk != _scumm->_vars[_scumm->VAR_CURRENTDISK])
+ _scumm->_bundle->_musicFile.close();
+
+ if (_scumm->_bundle->openMusicFile(bunfile, _scumm->getGameDataPath()) == false) {
+ _outputMixerSize = 0;
return;
+ }
+
+ _musicDisk = _scumm->_vars[_scumm->VAR_CURRENTDISK];
_outputMixerSize = 88140; // ((22050 * 2 * 2)
} else {
if (_scumm->_bundle->openMusicFile("digmusic.bun", _scumm->getGameDataPath()) == false)
More information about the Scummvm-git-logs
mailing list