[Scummvm-git-logs] scummvm master -> f133aae9982c61380fe5b49c42d7eeaabc69519b

dwatteau noreply at scummvm.org
Fri Aug 30 23:04:37 UTC 2024


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
724ab1a3d0 SCUMM: Document the original interpreter behavior for Trac#346 and Trac#10571
f133aae998 SCUMM: Add a TODO regarding the original behavior of ScummEngine::getMaskFromBox()


Commit: 724ab1a3d0f2c0bc461295884e641ebb33d498a9
    https://github.com/scummvm/scummvm/commit/724ab1a3d0f2c0bc461295884e641ebb33d498a9
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2024-08-30T23:13:16+02:00

Commit Message:
SCUMM: Document the original interpreter behavior for Trac#346 and Trac#10571

Test done by AndywinXp, grazie mille!

Changed paths:
    engines/scumm/script_v5.cpp


diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 44a8bd036a6..07f87907e3e 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -1443,6 +1443,9 @@ void ScummEngine_v5::o5_isScriptRunning() {
 	// cutscenes and are abrubtly stopped by the endcutscene in script 204 at 0x0060.
 	// This patch changes the result of isScriptRunning(164) to also wait for any
 	// inventory scripts that are in a cutscene state, preventing the crash.
+	//
+	// (The original interpreter would print a fatal "Object xxx stopped with active
+	// cutscene/override" error.)
 	if (_game.id == GID_MONKEY && _currentScript != 0xFF && vm.slot [_currentScript].number == 204 && _currentRoom == 25 &&
 		enhancementEnabled(kEnhGameBreakingBugFixes)) {
 		ScriptSlot *ss = vm.slot;
@@ -2296,7 +2299,7 @@ void ScummEngine_v5::o5_roomOps() {
 	case 10:	// SO_ROOM_FADE
 		a = getVarOrDirectWord(PARAM_1);
 		if (a) {
-	#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
+#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
 			if (_game.platform == Common::kPlatformFMTowns) {
 				switch (a) {
 				case 8:
@@ -2534,7 +2537,8 @@ void ScummEngine_v5::o5_setObjectName() {
 	// what causes a crash if the object gets restarted. This workaround waits for cutscenes
 	// to end, preventing the crash.
 	//
-	// TODO: analyze the behavior of the original interpreter in this case.
+	// (The original interpreter would print a fatal "Object xxx stopped with active
+	// cutscene/override" error.)
 	if (_game.id == GID_MONKEY && vm.slot[_currentScript].number == 68 && enhancementEnabled(kEnhGameBreakingBugFixes)) {
 		ScriptSlot *ss = vm.slot;
 		for (int i = 0; i < NUM_SCRIPT_SLOT; i++, ss++) {


Commit: f133aae9982c61380fe5b49c42d7eeaabc69519b
    https://github.com/scummvm/scummvm/commit/f133aae9982c61380fe5b49c42d7eeaabc69519b
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2024-08-31T01:03:28+02:00

Commit Message:
SCUMM: Add a TODO regarding the original behavior of ScummEngine::getMaskFromBox()

Changed paths:
    engines/scumm/boxes.cpp


diff --git a/engines/scumm/boxes.cpp b/engines/scumm/boxes.cpp
index 2fc8d7ed83b..0d1466efe48 100644
--- a/engines/scumm/boxes.cpp
+++ b/engines/scumm/boxes.cpp
@@ -165,6 +165,10 @@ static Common::Point closestPtOnLine(const Common::Point &lineStart, const Commo
 byte ScummEngine::getMaskFromBox(int box) {
 	// WORKAROUND for bug #791 and #897. This appears to have been a
 	// long standing bug in the original engine?
+	//
+	// TODO: check whether the original interpreter did a lucky
+	// out-of-bound access, as theorized in the 2003-06-30 comment
+	// from bug #791 above.
 	if (_game.version <= 3 && box == kOldInvalidBox)
 		return 1;
 




More information about the Scummvm-git-logs mailing list