aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/scumm/players/player_ad.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/engines/scumm/players/player_ad.cpp b/engines/scumm/players/player_ad.cpp
index 7596a3fa7a..fdd62555ff 100644
--- a/engines/scumm/players/player_ad.cpp
+++ b/engines/scumm/players/player_ad.cpp
@@ -121,6 +121,11 @@ void Player_AD::startSound(int sound) {
if (_sfx[channel].resource != -1) {
if (_sfx[channel].priority > priority) {
return;
+ } else {
+ // If we overwrite a channel we will properly stop the old
+ // sfx slot first. This makes sure that the resource is
+ // unlocked properly.
+ stopSfx(&_sfx[channel]);
}
}