diff options
-rw-r--r-- | engines/scumm/script_v6.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp index 1380c9c0ba..eda08d6280 100644 --- a/engines/scumm/script_v6.cpp +++ b/engines/scumm/script_v6.cpp @@ -745,6 +745,27 @@ void ScummEngine_v6::o6_startScript() { return; } + // WORKAROUND bug #1878514: When turning pages in the recipe book + // (found on Blood Island), there is a brief moment where it displays + // text from two different pages at the same time. + // + // The content of the books is drawing (in an endless loop) by local + // script 2007. Changing the page is handled by script 2006, which + // first stops script 2007; then switches the page; then restarts + // script 2007. But it fails to clear the blast texts beforehand. + // Hence, the next time blast text is drawn, both the old one (from + // the old instance of script 2007) and the new text (from the new + // instance) are briefly drawn simultaneously. + // + // This looks like a script bug to me (a missing call to clearTextQueue). + // But this could also hint at a subtle bug in ScummVM; we should check + // whether this bug occurs with the original engine or not. + if (_game.id == GID_CMI && script == 2007 && + _currentRoom == 62 && vm.slot[_currentScript].number == 2006) { + + removeBlastTexts(); + } + runScript(script, (flags & 1) != 0, (flags & 2) != 0, args); } |