aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/scumm.cpp
diff options
context:
space:
mode:
authorTobias Gunkel2012-01-17 22:52:59 +0100
committerTobias Gunkel2012-02-11 08:28:54 +0100
commit0bae642453caeef9c6af9c49f043f46eebd0f787 (patch)
tree2bbc11ba715b670a2095ad8e9714efe6cad4313d /engines/scumm/scumm.cpp
parent4519e56e5c018459c408e20e7469d35b6ac7ed44 (diff)
downloadscummvm-rg350-0bae642453caeef9c6af9c49f043f46eebd0f787.tar.gz
scummvm-rg350-0bae642453caeef9c6af9c49f043f46eebd0f787.tar.bz2
scummvm-rg350-0bae642453caeef9c6af9c49f043f46eebd0f787.zip
SCUMM: 2nd try to fix dungeon door timing
Shorten the timer delay does not work as escaping with a second kid is not possible too. Instead decrease engine speed during script execution.
Diffstat (limited to 'engines/scumm/scumm.cpp')
-rw-r--r--engines/scumm/scumm.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index f2db5ad6ba..61d38dc593 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -1964,6 +1964,14 @@ Common::Error ScummEngine::go() {
if (delta < 1) // Ensure we don't get into an endless loop
delta = 1; // by not decreasing sleepers.
+ // WORKAROUND: walking speed in the original v0/v1 interpreter
+ // is sometimes slower (e.g. during scrolling) than in ScummVM.
+ // This is important for the door-closing action in the dungeon,
+ // otherwise (delta < 6) a single kid is able to escape.
+ if ((_game.version == 0 && isScriptRunning(132)) ||
+ (_game.version == 1 && isScriptRunning(137)))
+ delta = 6;
+
// Wait...
waitForTimer(delta * 1000 / 60 - diff);