diff options
author | Robert Göffringmann | 2004-10-21 05:18:06 +0000 |
---|---|---|
committer | Robert Göffringmann | 2004-10-21 05:18:06 +0000 |
commit | 06066565a6fc55d3715abc1821dd193d092920a6 (patch) | |
tree | 2e95385895bcb9834c9f6258fa4f49fdf67875e3 /sky | |
parent | e721c6de0c0f5f66beb9e602746d25713e0398f8 (diff) | |
download | scummvm-rg350-06066565a6fc55d3715abc1821dd193d092920a6.tar.gz scummvm-rg350-06066565a6fc55d3715abc1821dd193d092920a6.tar.bz2 scummvm-rg350-06066565a6fc55d3715abc1821dd193d092920a6.zip |
fixes bug #786482, stupid gardener getting stuck in his hacky animation script.
svn-id: r15623
Diffstat (limited to 'sky')
-rw-r--r-- | sky/logic.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sky/logic.cpp b/sky/logic.cpp index 2eb9cd7879..e10a155ad7 100644 --- a/sky/logic.cpp +++ b/sky/logic.cpp @@ -1372,6 +1372,21 @@ bool Logic::fnDrawScreen(uint32 a, uint32 b, uint32 c) { debug(5, "Call: fnDrawScreen(%X, %X)",a,b); SkyEngine::_systemVars.currentPalette = a; _skyScreen->fnDrawScreen(a, b); + + if (Logic::_scriptVariables[SCREEN] == 32) { + /* workaround for script bug #786482 + Under certain circumstances, which never got completely cleared, + the gardener can get stuck in an animation, waiting for a sync + signal from foster. + This is most probably caused by foster leaving the screen before + sending the sync. + To work around that, we simply send a sync to the gardener every time + we enter the screen. If he isn't stuck (and thus not waiting for sync) + it will be ignored anyways */ + + debug(1, "sending gardener sync"); + fnSendSync(ID_SC32_GARDENER, 1, 0); + } return true; } |