[Scummvm-git-logs] scummvm master -> 54f9d5cb9ead792b00e4703f081a1d8b7ea24897

dwatteau noreply at scummvm.org
Wed May 21 21:13:30 UTC 2025


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

Summary:
54f9d5cb9e SCUMM: INDY3: Drop very old o5_chainScript() workaround for Trac#812


Commit: 54f9d5cb9ead792b00e4703f081a1d8b7ea24897
    https://github.com/scummvm/scummvm/commit/54f9d5cb9ead792b00e4703f081a1d8b7ea24897
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2025-05-21T23:12:08+02:00

Commit Message:
SCUMM: INDY3: Drop very old o5_chainScript() workaround for Trac#812

This script workaround has no effect since ScummVM 0.6.0 from 2003
(yes), when a similar issue (Trac no. 1139) lead to treat actor 0 as
a valid actor in derefActor() and derefActorSafe() -- more information
in original commit 50527702134133f69d35008467cbd62e3371f857.

Found by a Git bisect with the original provided save in German Indy3.
And yeah, I did use a 2005 Linux VM to build and bisect such older
tags.

Changed paths:
    engines/scumm/script_v5.cpp


diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 37dff31a88b..350ea015e26 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -844,23 +844,6 @@ void ScummEngine_v5::o5_chainScript() {
 
 	cur = _currentScript;
 
-	// WORKAROUND bug #812: Work around a bug in script 33 in Indy3.
-	// That script is used for the fist fights in the Zeppelin. It uses
-	// Local[5], even though that is never set to any value. But script 33 is
-	// called via chainScript by script 32, and in there Local[5] is set to
-	// the actor ID of the opposing soldier. So, we copy that value over to
-	// the Local[5] variable of script 33.
-	// FIXME: This workaround is meant for Indy3 EGA/VGA, but we make no
-	// checks to exclude the Mac/FM-TOWNS versions. We need to check whether
-	// those need the same workaround; if they don't, or if they need it in
-	// modified form, adjust this workaround accordingly.
-	// FIXME: Do we still need this workaround, 19 years later? I can't
-	// reproduce the original crash anymore, maybe we handle uninitialized
-	// local values the same way the original interpreter did, now?
-	if (_game.id == GID_INDY3 && cur != 0xFF && vm.slot[cur].number == 32 && script == 33) {
-		vars[5] = vm.localvar[cur][5];
-	}
-
 	assert(cur != 0xFF);
 	vm.slot[cur].number = 0;
 	vm.slot[cur].status = ssDead;




More information about the Scummvm-git-logs mailing list