[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