[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