[Scummvm-git-logs] scummvm branch-2-7 -> 006e3c37fffd4786d0d627f8697f939a00b425de

dwatteau noreply at scummvm.org
Wed Jul 5 17:59:04 UTC 2023


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:
3e15e1904b SCUMM: MI1 (Ultimate Talkie): Fix #14269
006e3c37ff SCUMM: FT: Fix crash with debug mode on when pressing 'A'


Commit: 3e15e1904bbb84848c8ecf06dd8d8bd4fcdd041c
    https://github.com/scummvm/scummvm/commit/3e15e1904bbb84848c8ecf06dd8d8bd4fcdd041c
Author: AndywinXp (andywinxp at gmail.com)
Date: 2023-07-05T19:15:53+02:00

Commit Message:
SCUMM: MI1 (Ultimate Talkie): Fix #14269

(cherry picked from commit da2dc011f8445ef3a530b2e86ce38be9d733a982)

Changed paths:
    engines/scumm/scumm.cpp


diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 112d4ef39ef..bef3d67a035 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -1302,8 +1302,11 @@ void ScummEngine::setupScumm(const Common::String &macResourceFile) {
 		} else
 			track = 1;
 
+		// The Ultimate Talkie version of Monkey Island 1 provides an automatic
+		// fallback with MIDI music when CD tracks are not found.
 		if (!existExtractedCDAudioFiles(track)
-		    && !isDataAndCDAudioReadFromSameCD()) {
+		    && !isDataAndCDAudioReadFromSameCD()
+			&& !(_game.id == GID_MONKEY && _game.features & GF_ULTIMATE_TALKIE)) {
 			warnMissingExtractedCDAudio();
 		}
 		_system->getAudioCDManager()->open();


Commit: 006e3c37fffd4786d0d627f8697f939a00b425de
    https://github.com/scummvm/scummvm/commit/006e3c37fffd4786d0d627f8697f939a00b425de
Author: AndywinXp (andywinxp at gmail.com)
Date: 2023-07-05T19:16:05+02:00

Commit Message:
SCUMM: FT: Fix crash with debug mode on when pressing 'A'

(cherry picked from commit 344fb2c2d594f1aa88bea9b625542d6ecdf9dc16)

Changed paths:
    engines/scumm/script_v6.cpp


diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp
index 421e5a4efad..4e6ddd2694b 100644
--- a/engines/scumm/script_v6.cpp
+++ b/engines/scumm/script_v6.cpp
@@ -1359,8 +1359,15 @@ void ScummEngine_v6::o6_getActorRoom() {
 		return;
 	}
 
-	Actor *a = derefActor(act, "o6_getActorRoom");
-	push(a->_room);
+	Actor *a = derefActorSafe(act, "o6_getActorRoom");
+	// This check is in place because at least Full Throttle, despite
+	// only allowing 30 actors, might ask for actor 30 (0-indexed), which
+	// on the original went on to fetch garbage data without crashing.
+	// In our case, instead of erroring out, we handle the issue gracefully.
+	if (a)
+		push(a->_room);
+	else
+		push(0);
 }
 
 void ScummEngine_v6::o6_getActorWalkBox() {




More information about the Scummvm-git-logs mailing list