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

dwatteau noreply at scummvm.org
Wed Apr 16 12:35:42 UTC 2025


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

Summary:
5af2fd6fd3 SCUMM: Document some reactions from Ron and Aric, regarding some enhancements
cf2c955905 SCUMM: MI1: Use the lava maze fix from the Amiga release, as it's also v4


Commit: 5af2fd6fd3faa943714a74bc945fa3746b99b852
    https://github.com/scummvm/scummvm/commit/5af2fd6fd3faa943714a74bc945fa3746b99b852
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2025-04-16T14:34:51+02:00

Commit Message:
SCUMM: Document some reactions from Ron and Aric, regarding some enhancements

Ron's comment comes from:
https://mastodon.gamedev.place/@grumpygamer/114299438195152396

Aric's comments were posted on the private 'lucasartsfans' Facebook
group.

Changed paths:
    engines/scumm/script_v5.cpp


diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 133841e26e8..27cd54dd35d 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -475,7 +475,9 @@ void ScummEngine_v5::o5_actorOps() {
 			// hard disk, I believe.
 			//
 			// Costume 0 doesn't have any cigar smoke, perhaps to
-			// cut down on disk access.
+			// cut down on disk access -- or, according to Aric
+			// Wilmunder, possibly because it "looked too 'cartoony'
+			// next to the higher-fidelity close-ups."
 			//
 			// But in the VGA CD version, only costume 0 is used
 			// and the close-up is missing the cigar smoke.
@@ -1753,6 +1755,9 @@ void ScummEngine_v5::o5_notEqualZero() {
 		// enters the hold where he remarks that the whole thing reeks
 		// of monkeys. But the way it's scripted, the message is only
 		// shown if it has already been shown.
+		//
+		// Ron Gilbert commented on this: "Not sure I'd call that a
+		// coding error. The lines were just cut. But what do I know."
 
 		if ((_game.id == GID_MONKEY || _game.id == GID_MONKEY_VGA || _game.id == GID_MONKEY_EGA) && _roomResource == 8 && vm.slot[_currentScript].number == 10002) {
 			// A local getVar(), where the var number can be examined.
@@ -2060,7 +2065,8 @@ void ScummEngine_v5::o5_putActor() {
 
 	// WORKAROUND: When enabling the cigar smoke in the captain Smirk
 	// close-up, it turns out that the coordinates in the CD
-	// version's script were taken from the EGA version.
+	// version's script were taken from the EGA version. (This alignment
+	// problem was also remembered and mentionned by Aric Wilmunder.)
 	//
 	// The coordinates below are taken from the VGA floppy version. The
 	// "Ultimate Talkie" version also corrects the positions, but uses
@@ -2932,8 +2938,14 @@ void ScummEngine_v5::o5_startScript() {
 	// 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.
+	// script to add the smoke, but the script is empty.
+	//
+	// According to Aric Wilmunder, this may have been done to avoid swapping
+	// floppy disks when exploring the maze (since the resource is stored in the
+	// fortune teller's room, and the Hellmaze being large, it was hard for the
+	// memory manager to keep it in memory).
+	//
+	// We replicate what the VGA CD script did manually.
 
 	if (_game.id == GID_MONKEY_VGA && _roomResource == 39 && script == 211 && enhancementEnabled(kEnhRestoredContent)) {
 		Actor *a = derefActorSafe(12, "o5_startScript");


Commit: cf2c9559052bc9a78ea6559b4ed52f3d09007a83
    https://github.com/scummvm/scummvm/commit/cf2c9559052bc9a78ea6559b4ed52f3d09007a83
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2025-04-16T14:34:51+02:00

Commit Message:
SCUMM: MI1: Use the lava maze fix from the Amiga release, as it's also v4

I've tested the latest enhancement on my English Amiga '1.2' release;
that's a GID_MONKEY_VGA release, but in this one, script 39-211 is
intact, i.e. the smoke hasn't been removed from this VGA release.

So:

- Adjust the workaround a bit, to avoid any potential problem if run
  on an Amiga release where the smoke may already be there (still, I'm
  not excluding Common::kPlatformAmiga from this enhancement, as maybe
  some Amiga releases exist with such an empty script?)

- Replicate this Amiga script, instead of the DOS CD one. I'm doing
  this because the Amiga release is v4, while the DOS CD release is
  v5. Since this enhancement targets v4 VGA releases, it feels safer
  to do so, following its more typical `setClass(12,[150,149])` v4
  calls (which map to kObjectClassIgnoreBoxes/kObjectClassAlwaysClip).

Changed paths:
    engines/scumm/script_v5.cpp


diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 27cd54dd35d..33ff10a078e 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -2938,26 +2938,26 @@ void ScummEngine_v5::o5_startScript() {
 	// 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.
+	// script to add the smoke, but the script is empty (the Amiga release
+	// has it, though -- at least the 1.2 release does -- so that's what we
+	// replicate).
 	//
 	// According to Aric Wilmunder, this may have been done to avoid swapping
 	// floppy disks when exploring the maze (since the resource is stored in the
 	// fortune teller's room, and the Hellmaze being large, it was hard for the
 	// memory manager to keep it in memory).
-	//
-	// We replicate what the VGA CD script did manually.
 
 	if (_game.id == GID_MONKEY_VGA && _roomResource == 39 && script == 211 && enhancementEnabled(kEnhRestoredContent)) {
 		Actor *a = derefActorSafe(12, "o5_startScript");
 
-		if (a) {
+		if (a && (a->_room != _roomResource || a->_costume == 0)) {
 			a->initActor(0);
 			a->setActorCostume(76);
 			a->setPalette(3, 8);
 			a->setPalette(2, 12);
 			a->setPalette(9, 4);
-			a->_ignoreBoxes = 1;
-			a->_forceClip = 1;
+			putClass(12, 150, true);
+			putClass(12, 149, true);
 			a->animateActor(250);
 			a->_room = _roomResource;
 			a->putActor(data[0], data[1]);




More information about the Scummvm-git-logs mailing list