aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/sound.cpp6
-rw-r--r--sound/mixer.cpp4
-rw-r--r--sound/mixer.h2
3 files changed, 4 insertions, 8 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index fe71f936b0..fbff939923 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -849,11 +849,7 @@ int Sound::isSoundRunning(int sound) const {
else if (_vm->_imuse)
return (_vm->_imuse->getSoundStatus(sound));
} else if (sound >= 10000) {
- int channel = sound - 10000;
- if (_vm->_mixer->isSoundHandleActive(_heSoundChannels[channel]))
- return _vm->_mixer->getActiveChannelSoundID(_heSoundChannels[channel]);
- else
- return 0;
+ return _vm->_mixer->getSoundID(_heSoundChannels[sound - 10000]);
}
}
diff --git a/sound/mixer.cpp b/sound/mixer.cpp
index f9f0e32316..5face1f8a9 100644
--- a/sound/mixer.cpp
+++ b/sound/mixer.cpp
@@ -367,10 +367,10 @@ bool SoundMixer::isSoundIDActive(int id) {
return false;
}
-int SoundMixer::getActiveChannelSoundID(SoundHandle handle) {
+int SoundMixer::getSoundID(SoundHandle handle) {
Common::StackLock lock(_mutex);
const int index = handle._val % NUM_CHANNELS;
- if (_channels[index])
+ if (_channels[index] && _channels[index]->_handle._val == handle._val)
return _channels[index]->getId();
return 0;
}
diff --git a/sound/mixer.h b/sound/mixer.h
index 6b888af247..39daad86ca 100644
--- a/sound/mixer.h
+++ b/sound/mixer.h
@@ -210,7 +210,7 @@ public:
* @param handle sound to query
* @return sound ID if active
*/
- int getActiveChannelSoundID(SoundHandle handle);
+ int getSoundID(SoundHandle handle);
/**
* Check if a sound with the given hANDLE is active.