aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/sound.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index c89aaecc4f..1fa859a425 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -996,8 +996,10 @@ void Sound::playBundleMusic(char * song) {
_scumm->_bundle->_musicFile.close();
if (_scumm->_bundle->openMusicFile(bunfile, _scumm->getGameDataPath()) == false) {
- _outputMixerSize = 0;
- return;
+ if (_scumm->_bundle->openMusicFile("music.bun", _scumm->getGameDataPath()) == false) {
+ _outputMixerSize = 0;
+ return;
+ }
}
_musicDisk = (byte)_scumm->_vars[_scumm->VAR_CURRENTDISK];
@@ -1179,6 +1181,8 @@ int Sound::playBundleSound(char *sound) {
result = _scumm->_bundle->openVoiceFile(voxfile, _scumm->getGameDataPath());
+ if (result == false)
+ result = _scumm->_bundle->openVoiceFile("voice.bun", _scumm->getGameDataPath());
_voiceDisk = (byte)_scumm->_vars[_scumm->VAR_CURRENTDISK];
} else if (_scumm->_gameId == GID_DIG)
result = _scumm->_bundle->openVoiceFile("digvoice.bun", _scumm->getGameDataPath());
@@ -1195,7 +1199,8 @@ int Sound::playBundleSound(char *sound) {
if (_scumm->_gameId == GID_CMI) {
char name[20];
strcpy(name, sound);
- strcat(name, ".IMX");
+ if (_scumm->_maxRooms != 6) // CMI demo does not have .IMX for voice but does for music...
+ strcat(name, ".IMX");
ptr = (byte *)malloc(1000000);
output_size = _scumm->_bundle->decompressVoiceSampleByName(name, ptr);
if (output_size == 0) {