From 0bae642453caeef9c6af9c49f043f46eebd0f787 Mon Sep 17 00:00:00 2001 From: Tobias Gunkel Date: Tue, 17 Jan 2012 22:52:59 +0100 Subject: 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. --- engines/scumm/scumm.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'engines/scumm/scumm.cpp') 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); -- cgit v1.2.3