aboutsummaryrefslogtreecommitdiff
path: root/engines/tony
diff options
context:
space:
mode:
authorPaul Gilbert2012-06-16 18:33:38 +1000
committerPaul Gilbert2012-06-16 18:33:38 +1000
commit37f772c2d7acf314fa1b347aae410daa1337edc2 (patch)
tree2fe3702c30e1f5069dd6384d2b6f7748fc9e0ec9 /engines/tony
parent71aa08c7f0f00be2e2c9ca013aa7682d79b6796f (diff)
downloadscummvm-rg350-37f772c2d7acf314fa1b347aae410daa1337edc2.tar.gz
scummvm-rg350-37f772c2d7acf314fa1b347aae410daa1337edc2.tar.bz2
scummvm-rg350-37f772c2d7acf314fa1b347aae410daa1337edc2.zip
TONY: Bugfix for hanging after giving 'shrimp' to the parrot
Diffstat (limited to 'engines/tony')
-rw-r--r--engines/tony/mpal/mpal.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/engines/tony/mpal/mpal.cpp b/engines/tony/mpal/mpal.cpp
index 92ece3b0b4..7e1831ec4d 100644
--- a/engines/tony/mpal/mpal.cpp
+++ b/engines/tony/mpal/mpal.cpp
@@ -1937,6 +1937,12 @@ void mpalQueryCORO(CORO_PARAM, uint16 wQueryType, uint32 *dwRet, ...) {
*/
CORO_INVOKE_2(CoroScheduler.waitForSingleObject, GLOBALS._hAskChoice, CORO_INFINITE);
+ // WORKAROUND: Introduce a single frame delay so that if there are multiple actions running,
+ // they all have time to be signalled before resetting the event. This fixes a problem where
+ // if you try to use the 'shrimp' on the parrot a second time after trying to first use it
+ // whilst the parrot was talking, the cursor wouldn't be re-enabled afterwards
+ CORO_SLEEP(1);
+
CoroScheduler.resetEvent(GLOBALS._hAskChoice);
if (GLOBALS._bExecutingDialog)