aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/imuse.cpp9
-rw-r--r--scumm/scummvm.cpp1
2 files changed, 10 insertions, 0 deletions
diff --git a/scumm/imuse.cpp b/scumm/imuse.cpp
index 4dea9ec6e9..44ad845a59 100644
--- a/scumm/imuse.cpp
+++ b/scumm/imuse.cpp
@@ -454,6 +454,15 @@ int IMuseInternal::get_queue_sound_status(int sound) {
return 2;
i = (i + 1) &(ARRAYSIZE(_cmd_queue) - 1);
}
+
+ for (i = 0; i < ARRAYSIZE (_deferredCommands); ++i) {
+ if (_deferredCommands[i].time_left && _deferredCommands[i].a == 8 &&
+ _deferredCommands[i].b == sound)
+ {
+ return 2;
+ }
+ }
+
return 0;
}
diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp
index a6583d1ece..0a75b46ba5 100644
--- a/scumm/scummvm.cpp
+++ b/scumm/scummvm.cpp
@@ -1743,6 +1743,7 @@ void Scumm::startScene(int room, Actor *a, int objectNr) {
killScriptsAndResources();
clearEnqueue();
stopCycle(0);
+ _sound->processSoundQues();
for (i = 1; i < _numActors; i++) {
_actors[i].hideActor();