diff options
-rw-r--r-- | scumm/sound.cpp | 6 | ||||
-rw-r--r-- | sound/mixer.cpp | 4 | ||||
-rw-r--r-- | sound/mixer.h | 2 |
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. |