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

sev- sev at scummvm.org
Fri Jan 13 23:15:38 CET 2017


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:
a3ca4412fa SCUMM: Fix bug #2285 (ZAK C64/V1/V2 Caponians don't disguise after using blue crystal)
e5ebc903ea Merge pull request #877 from segrax/Fix_2285


Commit: a3ca4412fae0cdd6623fb7d47f7d1a8bb1d7ab03
    https://github.com/scummvm/scummvm/commit/a3ca4412fae0cdd6623fb7d47f7d1a8bb1d7ab03
Author: Robert Crossfield (robcrossfield at gmail.com)
Date: 2016-12-28T09:23:54+11:00

Commit Message:
SCUMM: Fix bug #2285 (ZAK C64/V1/V2 Caponians don't disguise after using blue crystal)

Changed paths:
    engines/scumm/script_v2.cpp


diff --git a/engines/scumm/script_v2.cpp b/engines/scumm/script_v2.cpp
index 88c26f8..4e9cffa 100644
--- a/engines/scumm/script_v2.cpp
+++ b/engines/scumm/script_v2.cpp
@@ -1277,6 +1277,35 @@ void ScummEngine_v2::o2_putActorInRoom() {
 
 		a->putActor(0, 0, 0);
 	}
+
+	// WORKAROUND bug #2285: Caponians dont disguise after using blue crystal
+	// This is for a game scripting oversight.
+	// After first using the blue crystal, a cutscene of the two Caponians plays (script-96),
+	// locking object 344 (which prevents the cutscene playing again) and setting Var[245] to 0x18.
+	// script-5 uses this variable to set the Caponian costume
+	// On first apperance after using the blue crystal, the Caponians now will have the disguise on
+	//
+	// If you visit the spacecraft and ring the doorbell, Var[245] will be set to 0x1C (Disguise off)
+	// Using the blue crystal again, will result in the Caponian appearing without his disguise
+	// as Var[245] is never set back to 0x18. This WORKAROUND fixes the problem by ensuring
+	// Var[245] is set to have the Disguise on in most situations
+	//
+	// We don't touch the variable in the following situations
+	//  If the Caponian is being put into the space ship room, or the current room is the 
+	//  space ship and the Caponian is being put into the backroom of the telephone company (you didnt show your fan club card)
+	if (_game.id == GID_ZAK && _game.version <= 2 && act == 7) {
+		// Is script-96 cutscene done
+		if ((getState(344) & kObjectStateLocked)) {
+			// Not 'putting' in the space ship
+			if (room != 10) {
+				// not putting in telephone back room, and not in space ship
+				if (room != 16 && _currentRoom != 10) {
+					// Set caponian costume to 'disguise on'
+					writeVar(245, 0x18);
+				}
+			}
+		}
+	}
 }
 
 void ScummEngine_v2::o2_getActorElevation() {


Commit: e5ebc903ea3e90e2e97c2374a93cedaae0e56f6d
    https://github.com/scummvm/scummvm/commit/e5ebc903ea3e90e2e97c2374a93cedaae0e56f6d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2017-01-13T23:15:35+01:00

Commit Message:
Merge pull request #877 from segrax/Fix_2285

SCUMM: Fix bug #2285 (ZAK C64/V1/V2 Caponians dont disguise after using crystal)

Changed paths:
    engines/scumm/script_v2.cpp







More information about the Scummvm-git-logs mailing list