diff options
author | Max Horn | 2010-03-08 23:36:59 +0000 |
---|---|---|
committer | Max Horn | 2010-03-08 23:36:59 +0000 |
commit | bc2b90f43bb558bd5e0fcdc470499e4fc65ebcbb (patch) | |
tree | a59cec4f986066a66ba994afded6bde2360ebf9a /engines/scumm/script_v6.cpp | |
parent | 575ddc434c1c846780fd78b8bdf3e9dcf3a35970 (diff) | |
download | scummvm-rg350-bc2b90f43bb558bd5e0fcdc470499e4fc65ebcbb.tar.gz scummvm-rg350-bc2b90f43bb558bd5e0fcdc470499e4fc65ebcbb.tar.bz2 scummvm-rg350-bc2b90f43bb558bd5e0fcdc470499e4fc65ebcbb.zip |
Workaround for bug #1878514: COMI: Glitch when turning pages in recipe book
svn-id: r48207
Diffstat (limited to 'engines/scumm/script_v6.cpp')
-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); } |