diff options
author | Eric Fry | 2019-09-23 23:50:24 +1000 |
---|---|---|
committer | Eugene Sandulenko | 2019-09-23 20:39:13 +0200 |
commit | 64cf3b6e9b9f54ae643e9b3aa6d1db249f53d3bc (patch) | |
tree | b62b0f2be8f8a2df1b586a1db53e6faf91cd7f34 /engines/illusions/sound.cpp | |
parent | b4b9ad1743dcf97999b7fda4860aa964d119118c (diff) | |
download | scummvm-rg350-64cf3b6e9b9f54ae643e9b3aa6d1db249f53d3bc.tar.gz scummvm-rg350-64cf3b6e9b9f54ae643e9b3aa6d1db249f53d3bc.tar.bz2 scummvm-rg350-64cf3b6e9b9f54ae643e9b3aa6d1db249f53d3bc.zip |
ILLUSIONS: DUCKMAN: Fix endless SFX bug #11161
Diffstat (limited to 'engines/illusions/sound.cpp')
-rw-r--r-- | engines/illusions/sound.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/engines/illusions/sound.cpp b/engines/illusions/sound.cpp index bd39469d76..9a351a29bc 100644 --- a/engines/illusions/sound.cpp +++ b/engines/illusions/sound.cpp @@ -342,6 +342,10 @@ bool Sound::isPlaying() { return g_system->getMixer()->isSoundHandleActive(_soundHandle); } +bool Sound::isLooping() { + return _looping; +} + // SoundMan SoundMan::SoundMan(IllusionsEngine *vm) @@ -450,6 +454,15 @@ void SoundMan::stopSound(uint32 soundEffectId) { sound->stop(); } +void SoundMan::stopLoopingSounds() { + for (SoundListIterator it = _sounds.begin(); it != _sounds.end(); ++it) { + Sound *sound = *it; + if (sound->isPlaying() && sound->isLooping()) { + sound->stop(); + } + } +} + void SoundMan::unloadSounds(uint32 soundGroupId) { SoundListIterator it = _sounds.begin(); while (it != _sounds.end()) { |