aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Gunkel2012-01-17 21:51:39 +0100
committerTobias Gunkel2012-02-11 08:28:52 +0100
commit4519e56e5c018459c408e20e7469d35b6ac7ed44 (patch)
tree85eb3401643f7232ada0b073b90b60ae68097a18
parentcbae5c79b702494dd30abb9504767029fba065ae (diff)
downloadscummvm-rg350-4519e56e5c018459c408e20e7469d35b6ac7ed44.tar.gz
scummvm-rg350-4519e56e5c018459c408e20e7469d35b6ac7ed44.tar.bz2
scummvm-rg350-4519e56e5c018459c408e20e7469d35b6ac7ed44.zip
SCUMM: shorten delay for dungeon door closing action
Escaping with only one kid should not be possible anymore.
-rw-r--r--engines/scumm/script_v2.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/engines/scumm/script_v2.cpp b/engines/scumm/script_v2.cpp
index 6f6138d411..c35ddea64d 100644
--- a/engines/scumm/script_v2.cpp
+++ b/engines/scumm/script_v2.cpp
@@ -1433,6 +1433,17 @@ void ScummEngine_v2::o2_delay() {
delay |= fetchScriptByte() << 16;
delay = 0xFFFFFF - delay;
+ // WORKAROUND: walking speed in the original v0/v1 interpreter
+ // is sometimes slower (e.g. during scrolling) than in ScummVM.
+ // Hence, the delay for the door-closing action in the dungeon
+ // is to long, so a single kid is able to escape -> shorten delay.
+ int script = vm.slot[_currentScript].number;
+ if ((_game.version == 0 && script == 132) ||
+ (_game.version == 1 && script == 137)) {
+ if (delay == 180)
+ delay = 120;
+ }
+
vm.slot[_currentScript].delay = delay;
vm.slot[_currentScript].status = ssPaused;
o5_breakHere();