aboutsummaryrefslogtreecommitdiff
path: root/engines/tony
diff options
context:
space:
mode:
authorPaul Gilbert2012-06-16 22:05:06 +1000
committerPaul Gilbert2012-06-16 22:06:11 +1000
commit25d95bd5e357187cde9634b0379b8469cee0397d (patch)
tree43fbb7eabf0bd571c0c6053f11c6fa4a1cc6fe4e /engines/tony
parentddd1414a56568d62348e56ccc907b8ba7bb296eb (diff)
downloadscummvm-rg350-25d95bd5e357187cde9634b0379b8469cee0397d.tar.gz
scummvm-rg350-25d95bd5e357187cde9634b0379b8469cee0397d.tar.bz2
scummvm-rg350-25d95bd5e357187cde9634b0379b8469cee0397d.zip
TONY: Workaround for original game bug opening the door in the first scene
In the original, after moving to the door, the game scripts have Tony start immediately moving back to the desk. Unfortunately, they didn't realise that the _hEndOfPath event would still be briefly set from finishing the walk to the door, so the game didn't wait until Tony had reached the desk to start the conversation.
Diffstat (limited to 'engines/tony')
-rw-r--r--engines/tony/custom.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/engines/tony/custom.cpp b/engines/tony/custom.cpp
index ef4f889a12..160fafa47f 100644
--- a/engines/tony/custom.cpp
+++ b/engines/tony/custom.cpp
@@ -1198,6 +1198,11 @@ DECLARE_CUSTOM_FUNCTION(MoveTonyAndWait)(CORO_PARAM, uint32 nX, uint32 nY, uint3
CORO_BEGIN_CODE(_ctx);
+ // WORKAROUND: Delay for a frame before starting the move to give any previous move time to finish.
+ // This fixes a bug in the first scene where if you immediately 'Use Door', Tony moves to the door,
+ // and then floats to the right rather than properly walking.
+ CORO_SLEEP(1);
+
CORO_INVOKE_1(GLOBALS._tony->move, RMPoint(nX, nY));
if (!GLOBALS._bSkipIdle)