diff options
| -rw-r--r-- | engines/scumm/script_v2.cpp | 11 | ||||
| -rw-r--r-- | engines/scumm/scumm.cpp | 8 | 
2 files changed, 8 insertions, 11 deletions
diff --git a/engines/scumm/script_v2.cpp b/engines/scumm/script_v2.cpp index c35ddea64d..6f6138d411 100644 --- a/engines/scumm/script_v2.cpp +++ b/engines/scumm/script_v2.cpp @@ -1433,17 +1433,6 @@ 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(); 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);  | 
