[Scummvm-git-logs] scummvm master -> 6be4040b0bc0b2961f313bd81fc96e0a2f22e575

dwatteau noreply at scummvm.org
Sun Jul 31 08:04:40 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:
6be4040b0b SCUMM: Document that the Trac#812 script bug also exists in Indy3 EGA


Commit: 6be4040b0bc0b2961f313bd81fc96e0a2f22e575
    https://github.com/scummvm/scummvm/commit/6be4040b0bc0b2961f313bd81fc96e0a2f22e575
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-07-31T10:02:34+02:00

Commit Message:
SCUMM: Document that the Trac#812 script bug also exists in Indy3 EGA

Checked against my EGA/DOS French copy: script 33 appears to have the
same Local[5] error as in the VGA release. It also looks like Local[1]
and Local[3] are uninitialized in the EGA version too, but this doesn't
seem to cause any issue.

Actually, if I completely disable this workaround, I can't reproduce the
original crash anymore, so maybe we handle uninitialized local values
the same way the original interpreter did, now?

Changed paths:
    engines/scumm/script_v5.cpp


diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 7e0bedaa6f8..f8d9dd30914 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -757,16 +757,19 @@ void ScummEngine_v5::o5_chainScript() {
 
 	cur = _currentScript;
 
-	// WORKAROUND bug #812: Work around a bug in script 33 in Indy3 VGA.
+	// 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 VGA, but we make no checks
-	// to exclude the EGA/Mac/FM-TOWNS versions. We need to check whether
+	// 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 && vm.slot[cur].number == 32 && script == 33) {
 		vars[5] = vm.localvar[cur][5];
 	}




More information about the Scummvm-git-logs mailing list