[Scummvm-git-logs] scummvm master -> 255f87dffaf667a64bd45fe4bedd0e8bba48071d

bluegr noreply at scummvm.org
Fri Aug 26 22:24:35 UTC 2022


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:
659df7bc01 SCUMM: Bring the Jolly Roger fix from Monkey1 VGA to the other releases
255f87dffa SCUMM: Apply the Jolly Roger workaround to MONKEY1-VGA too


Commit: 659df7bc0191bb1720ccad3a53ea8750bc39a992
    https://github.com/scummvm/scummvm/commit/659df7bc0191bb1720ccad3a53ea8750bc39a992
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-08-27T01:24:31+03:00

Commit Message:
SCUMM: Bring the Jolly Roger fix from Monkey1 VGA to the other releases

In Part 2, the Jolly Roger should only be visible in the first cutscene
showing the Sea Monkey in the middle of the sea. For the next two
cutscenes showing the full ship, it shouldn't be there anymore, since
Guybrush must have picked it for these scenes to happen.

The VGA releases fixed this small oversight from the original game, but
then this fix appears to have been lost for the v5 releases.

Changed paths:
    engines/scumm/script_v5.cpp


diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index da0045ef237..b0ccea05f13 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -437,6 +437,24 @@ void ScummEngine_v5::o5_actorOps() {
 	Actor *a = derefActor(act, "o5_actorOps");
 	int i, j;
 
+	// WORKAROUND: There's a continuity error in Monkey 1, in that the Jolly Roger should
+	// only appear in the first scene showing the Sea Monkey in the middle of the sea,
+	// since Guybrush must have picked it for the two other cutscenes to happen.
+	//
+	// The VGA releases fixed this, but this has been lost in the v5 versions. We just
+	// check that the script describing that "the crew begins to plan their voyage" is
+	// running, as that release did.  The Ultimate Talkie fixed this, but differently.
+	if ((_game.id == GID_MONKEY_EGA || _game.id == GID_MONKEY) && _roomResource == 87 &&
+		vm.slot[_currentScript].number == 10002 && act == 9 && _enableEnhancements &&
+		strcmp(_game.variant, "SE Talkie") != 0) {
+		const int scriptNr = (_game.version == 5) ? 122 : 119;
+		if (!isScriptRunning(scriptNr)) {
+			a->putActor(0);
+			stopObjectCode();
+			return;
+		}
+	}
+
 	while ((_opcode = fetchScriptByte()) != 0xFF) {
 		if (_game.features & GF_SMALL_HEADER)
 			_opcode = (_opcode & 0xE0) | convertTable[(_opcode & 0x1F) - 1];


Commit: 255f87dffaf667a64bd45fe4bedd0e8bba48071d
    https://github.com/scummvm/scummvm/commit/255f87dffaf667a64bd45fe4bedd0e8bba48071d
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-08-27T01:24:31+03:00

Commit Message:
SCUMM: Apply the Jolly Roger workaround to MONKEY1-VGA too

It looks like my French floppy VGA release doesn't have that fix,
although the English floppy VGA release from the LRG Anthology has it!

So it just feels safer to enable this workaround for all Monkey 1
releases (except for the Ultimate Talkie Edition). If the same fix is
already in this script, it shouldn't hurt.

Changed paths:
    engines/scumm/script_v5.cpp


diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index b0ccea05f13..c7b3d80ceeb 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -439,14 +439,16 @@ void ScummEngine_v5::o5_actorOps() {
 
 	// WORKAROUND: There's a continuity error in Monkey 1, in that the Jolly Roger should
 	// only appear in the first scene showing the Sea Monkey in the middle of the sea,
-	// since Guybrush must have picked it for the two other cutscenes to happen.
+	// since Guybrush must have picked it for the two other ship cutscenes to happen.
 	//
-	// The VGA releases fixed this, but this has been lost in the v5 versions. We just
-	// check that the script describing that "the crew begins to plan their voyage" is
-	// running, as that release did.  The Ultimate Talkie fixed this, but differently.
-	if ((_game.id == GID_MONKEY_EGA || _game.id == GID_MONKEY) && _roomResource == 87 &&
-		vm.slot[_currentScript].number == 10002 && act == 9 && _enableEnhancements &&
-		strcmp(_game.variant, "SE Talkie") != 0) {
+	// Some official releases appear to have a fix for this (e.g. the English floppy VGA
+	// version), but most releases don't. The fixed release would check whether the
+	// script describing that "the crew begins to plan their voyage" is running in order
+	// to display the flag, so we just reuse this check. The Ultimate Talkie also fixed
+	// this, but in a different way which doesn't look as portable between releases.
+	if ((_game.id == GID_MONKEY_EGA || _game.id == GID_MONKEY_VGA || _game.id == GID_MONKEY) &&
+		_roomResource == 87 && vm.slot[_currentScript].number == 10002 && act == 9 &&
+		_enableEnhancements && strcmp(_game.variant, "SE Talkie") != 0) {
 		const int scriptNr = (_game.version == 5) ? 122 : 119;
 		if (!isScriptRunning(scriptNr)) {
 			a->putActor(0);




More information about the Scummvm-git-logs mailing list