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

bluegr noreply at scummvm.org
Sun Apr 13 21:14:11 UTC 2025


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

Summary:
ab7e47b192 SCUMM: Add workaround for missing smoke in MI1 VGA floppy lava maze


Commit: ab7e47b1927e13391ee1af09bcffb9451822fb01
    https://github.com/scummvm/scummvm/commit/ab7e47b1927e13391ee1af09bcffb9451822fb01
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2025-04-14T00:14:07+03:00

Commit Message:
SCUMM: Add workaround for missing smoke in MI1 VGA floppy lava maze

In most versions of MI1 (at the very least the DOS CD, Macintosh, and
Sega CD ones, but also the EGA and Amiga ones according to YouTube
playthroughs) there is animated smoke in some places in the lava maze
beneath the monkey head. But in my VGA floppy version, the script that
places the smoke is empty. It's still called though, so this workaround
does what the script does manually.

Changed paths:
    engines/scumm/script_v5.cpp


diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 7815aad50fc..6cbd44b51e1 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -2922,6 +2922,30 @@ void ScummEngine_v5::o5_startScript() {
 	// Save on IQ increment (= script 125 was executed).
 	if (_game.id == GID_INDY3 && script == 125)
 		((ScummEngine_v4 *)this)->updateIQPoints();
+
+	// WORKAROUND: In the CD version of Monkey Island 1, and the EGA
+	// version before it, there is animated smoke in parts of the lava maze
+	// beneath the monkey head. The VGA floppy version still calls the
+	// script to add the smoke, but the script is empty. We repliacte what
+	// the script did manually.
+
+	if (_game.id == GID_MONKEY_VGA && _roomResource == 39 && script == 211 && enhancementEnabled(kEnhRestoredContent)) {
+		Actor *a = derefActorSafe(12, "o5_startScript");
+
+		if (a) {
+			a->initActor(0);
+			a->setActorCostume(76);
+			a->setPalette(3, 8);
+			a->setPalette(2, 12);
+			a->setPalette(9, 4);
+			a->_ignoreBoxes = 1;
+			a->_forceClip = 1;
+			a->animateActor(250);
+			a->_room = _roomResource;
+			a->putActor(data[0], data[1]);
+			a->animateActor(6);
+		}
+	}
 }
 
 void ScummEngine_v5::o5_stopObjectCode() {




More information about the Scummvm-git-logs mailing list