diff options
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/resource.cpp | 8 | ||||
-rw-r--r-- | scumm/sound.cpp | 17 |
2 files changed, 17 insertions, 8 deletions
diff --git a/scumm/resource.cpp b/scumm/resource.cpp index 5f0289c6e0..b4c20dea3f 100644 --- a/scumm/resource.cpp +++ b/scumm/resource.cpp @@ -1053,14 +1053,6 @@ int Scumm::convertADResource(int type, int idx, byte * src_ptr, int size) { if (*src_ptr == 0x80) { // 0x80: is music; otherwise not. - if (_gameId == GID_MONKEY_VGA || _gameId == GID_MONKEY_EGA) { - // FIXME: This evil hack works around the fact that in some - // places in MonkeyVGA, the music is never explicitly stopped. - // Rather it seems that starting a new music is supposed to - // automatically stop the old song. - _imuse->stop_all_sounds(); - } - // The "speed" of the song ticks = *(src_ptr + 1); diff --git a/scumm/sound.cpp b/scumm/sound.cpp index aab2320051..280ce0e5eb 100644 --- a/scumm/sound.cpp +++ b/scumm/sound.cpp @@ -453,6 +453,23 @@ void Sound::playSound(int soundID) { return; } + if (_scumm->_gameId == GID_MONKEY_VGA || _scumm->_gameId == GID_MONKEY_EGA) { + // Sound is currently not supported at all in the amiga versions of these games + if (_scumm->_features & GF_AMIGA) + return; + + // FIXME: This evil hack works around the fact that in some + // places in MonkeyVGA, the music is never explicitly stopped. + // Rather it seems that starting a new music is supposed to + // automatically stop the old song. + // This hack relays on the fact that we currently don't support SFX + // in these games, only music. Once we add SFX support, we'll have to + // revise it / replace it by a proper fix. + if (ptr) { + _scumm->_imuse->stop_all_sounds(); + } + } + if (_scumm->_playerV2) _scumm->_playerV2->startSound (soundID, ptr); |