[Scummvm-git-logs] scummvm master -> 9c7cd2c7e29b91a03b6e642a5674bf66b403c828

eriktorbjorn noreply at scummvm.org
Wed Mar 23 09:45:55 UTC 2022


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
9c7cd2c7e2 SCUMM: Fix teleporting Rusty glitch in Loom (bug #13370)


Commit: 9c7cd2c7e29b91a03b6e642a5674bf66b403c828
    https://github.com/scummvm/scummvm/commit/9c7cd2c7e29b91a03b6e642a5674bf66b403c828
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2022-03-23T10:40:27+01:00

Commit Message:
SCUMM: Fix teleporting Rusty glitch in Loom (bug #13370)

Don't let the "send Rusty's ghost to guard the rift" script start as
long as the "make Rusty's ghost appear" script is running, because once
he reaches the rift he will then instantly teleport back to his body.

This bug happens in the original as well, though at least in ScummVM it
behaves a little bit differently in the FM Towns version than in any of
the other I tried. The fix still works for all of them, though.

The VGA talkie version is not affected, because there Rusty's ghost
appears in the rift, and the dialog makes sense regardless of whether
Bobbin or Rusty speaks first.

Changed paths:
    engines/scumm/script_v5.cpp


diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index c52363e682b..0a3657085bb 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -2383,6 +2383,18 @@ void ScummEngine_v5::o5_startScript() {
 
 	getWordVararg(data);
 
+	// WORKAROUND bug #13370: If you try to leave the plateau before
+	// healing Rusty, his ghost will block the way. But this should not
+	// happen during the cutscene where he first appears, because then he
+	// will appear to teleport from one spot to another.
+	//
+	// In the VGA talkie version Rusty just appears in the rift, rather
+	// than gliding in from off-stage. The only thing that's affected is
+	// whether Bobbin or Rusty speaks first, and the dialog makes sense
+	// either way.
+	if (_game.id == GID_LOOM && _game.version == 3 && script == 207 && isScriptRunning(98))
+		return;
+
 	// WORKAROUND bug #2198: Script 171 loads a complete room resource,
 	// instead of the actual script, causing invalid opcode cases
 	if (_game.id == GID_ZAK && _game.platform == Common::kPlatformFMTowns && script == 171)




More information about the Scummvm-git-logs mailing list