[Scummvm-git-logs] scummvm master -> d74b20aefe55ae56e601ea781ce3fc561c6edce2
dwatteau
noreply at scummvm.org
Sat Aug 31 09:52:44 UTC 2024
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:
d74b20aefe SCUMM: Make Trac#5709 enhancements optional
Commit: d74b20aefe55ae56e601ea781ce3fc561c6edce2
https://github.com/scummvm/scummvm/commit/d74b20aefe55ae56e601ea781ce3fc561c6edce2
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2024-08-31T11:52:17+02:00
Commit Message:
SCUMM: Make Trac#5709 enhancements optional
Reading the scripts and the (nicely detailed) original bug report,
it looks all good for being a `kEnhMinorBugFixes` enhancement.
The Macintosh and 256-color releases appear to be not affected, but
the workaround is done in a way where this doesn't matter.
Changed paths:
engines/scumm/script_v4.cpp
engines/scumm/script_v5.cpp
diff --git a/engines/scumm/script_v4.cpp b/engines/scumm/script_v4.cpp
index 078b159653b..1fe23633c5a 100644
--- a/engines/scumm/script_v4.cpp
+++ b/engines/scumm/script_v4.cpp
@@ -75,9 +75,11 @@ void ScummEngine_v4::o4_ifState() {
// caught, you get 0 IQ points (supposed to get 25 IQ points)."
// This workaround is meant to address that.
//
- // TODO: choose an Enhancement class for this
- if (_game.id == GID_INDY3 && a == 367 &&
- vm.slot[_currentScript].number == 363 && _currentRoom == 25) {
+ // See also the similar ScummEngine_v5::o5_startScript() workaround.
+ if (_game.id == GID_INDY3 && a == 367 && _currentScript != 0xFF &&
+ vm.slot[_currentScript].number == 363 && _currentRoom == 25 &&
+ enhancementEnabled(kEnhMinorBugFixes)) {
+ // Buggy script compares it with '1'
b = 0;
}
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 07f87907e3e..3eea7026a85 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -2754,7 +2754,10 @@ void ScummEngine_v5::o5_startScript() {
// book or KO the guy. The PC version correctly gives 10 points for puzzle
// 29 for KO and 15 for puzzle 30 when giving the book."
// This workaround is meant to address that.
- if (_game.id == GID_INDY3 && _currentScript != 0xFF && vm.slot[_currentScript].number == 106 && script == 125 && VAR(115) != 2) {
+ //
+ // See also the similar ScummEngine_v4::o4_ifState() workaround.
+ if (_game.id == GID_INDY3 && _currentScript != 0xFF && vm.slot[_currentScript].number == 106 && script == 125 && VAR(115) != 2 &&
+ enhancementEnabled(kEnhMinorBugFixes)) {
// If Var[115] != 2, then:
// Correct: startScript(125,[29,10]);
// Wrong : startScript(125,[30,15]);
More information about the Scummvm-git-logs
mailing list