aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/resource.cpp9
-rw-r--r--scumm/sound.cpp17
2 files changed, 9 insertions, 17 deletions
diff --git a/scumm/resource.cpp b/scumm/resource.cpp
index 5b3b67bca3..050b67157f 100644
--- a/scumm/resource.cpp
+++ b/scumm/resource.cpp
@@ -21,6 +21,7 @@
*/
#include "stdafx.h"
+#include "imuse.h"
#include "scumm.h"
#include "resource.h"
#include "bundle.h"
@@ -1049,6 +1050,14 @@ 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 39ca11053a..abcf1ffc97 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -529,23 +529,6 @@ 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->_imuse) {
_scumm->getResourceAddress(rtSound, soundID);
_scumm->_imuse->startSound(soundID);