aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/scumm/imuse_digi/dimuse_script.cpp5
-rw-r--r--engines/scumm/scumm_v7.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/engines/scumm/imuse_digi/dimuse_script.cpp b/engines/scumm/imuse_digi/dimuse_script.cpp
index ea9c47f591..06a629072e 100644
--- a/engines/scumm/imuse_digi/dimuse_script.cpp
+++ b/engines/scumm/imuse_digi/dimuse_script.cpp
@@ -203,6 +203,11 @@ void IMuseDigital::refreshScripts() {
debug(6, "refreshScripts()");
if (_stopingSequence) {
+ // prevent start new music, only fade out old one
+ if (_vm->isSmushActive()) {
+ fadeOutMusic(60);
+ return;
+ }
// small delay, it seems help for fix bug #1757010
if (_stopingSequence++ > 120) {
debug(5, "refreshScripts() Force restore music state");
diff --git a/engines/scumm/scumm_v7.h b/engines/scumm/scumm_v7.h
index fcadadb04d..c4bb3525be 100644
--- a/engines/scumm/scumm_v7.h
+++ b/engines/scumm/scumm_v7.h
@@ -97,6 +97,7 @@ public:
void addSubtitleToQueue(const byte *text, const Common::Point &pos, byte color, byte charset);
void clearSubtitleQueue();
virtual void CHARSET_1();
+ bool isSmushActive() { return _smushActive; }
protected:
virtual int runDialog(Dialog &dialog);