[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