[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