[Scummvm-git-logs] scummvm master -> 8f4d3654f2b66c21711eccb73df65e797236a9d2

antoniou79 antoniou at cti.gr
Mon Sep 9 17:12:28 CEST 2019


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

Summary:
8f4d3654f2 BLADERUNNER: Fix Leon Clerk encounter bug


Commit: 8f4d3654f2b66c21711eccb73df65e797236a9d2
    https://github.com/scummvm/scummvm/commit/8f4d3654f2b66c21711eccb73df65e797236a9d2
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-09-09T18:07:21+03:00

Commit Message:
BLADERUNNER: Fix Leon Clerk encounter bug

When McCoy leaves CT09 they should be both gone. They were not

This was our bug, a bad translation of an if clause.
Also added in this commit is a bit different behavior for the restored content case.
In restored content, the player is not allowed to leave until the situation is resolved.

Changed paths:
    engines/bladerunner/script/ai/desk_clerk.cpp
    engines/bladerunner/script/ai/leon.cpp
    engines/bladerunner/script/scene/ct09.cpp


diff --git a/engines/bladerunner/script/ai/desk_clerk.cpp b/engines/bladerunner/script/ai/desk_clerk.cpp
index 363a7e3..8b1e91f 100644
--- a/engines/bladerunner/script/ai/desk_clerk.cpp
+++ b/engines/bladerunner/script/ai/desk_clerk.cpp
@@ -118,11 +118,13 @@ int AIScriptDeskClerk::GetFriendlinessModifierIfGetsClue(int otherActorId, int c
 bool AIScriptDeskClerk::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	switch (newGoalNumber) {
 	case kGoalDeskClerkDefault:
+		// fall through
 	case kGoalDeskClerkRecovered:
 		Actor_Put_In_Set(kActorDeskClerk, kSetCT09);
 		Actor_Set_At_XYZ(kActorDeskClerk, 282.0f, 360.52f, 743.0f, 513);
 		break;
 	case kGoalDeskClerkKnockedOut:
+		// fall through
 	case kGoalDeskClerkGone:
 		Actor_Put_In_Set(kActorDeskClerk, kSetFreeSlotH);
 		Actor_Set_At_Waypoint(kActorDeskClerk, 40, 0);
diff --git a/engines/bladerunner/script/ai/leon.cpp b/engines/bladerunner/script/ai/leon.cpp
index 6a3a1b9..e6e5c4c 100644
--- a/engines/bladerunner/script/ai/leon.cpp
+++ b/engines/bladerunner/script/ai/leon.cpp
@@ -122,7 +122,7 @@ void AIScriptLeon::OtherAgentEnteredThisScene(int otherActorId) {
 
 void AIScriptLeon::OtherAgentExitedThisScene(int otherActorId) {
 	if (otherActorId == kActorMcCoy
-	 && Actor_Query_Which_Set_In(kActorLeon) == kSetCT11
+	 && Actor_Query_Which_Set_In(kActorLeon) != kSetCT11
 	) {
 		AI_Movement_Track_Flush(kActorLeon);
 		ADQ_Flush();
@@ -250,6 +250,9 @@ bool AIScriptLeon::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		return false;
 
 	case kGoalLeonLeave:
+		if (_vm->_cutContent) {
+			Scene_Exits_Enable();
+		}
 		Actor_Force_Stop_Walking(kActorLeon);
 		AI_Movement_Track_Flush(kActorLeon);
 		AI_Movement_Track_Append(kActorLeon, 351, 0);
diff --git a/engines/bladerunner/script/scene/ct09.cpp b/engines/bladerunner/script/scene/ct09.cpp
index 3d4593d..dcf5549 100644
--- a/engines/bladerunner/script/scene/ct09.cpp
+++ b/engines/bladerunner/script/scene/ct09.cpp
@@ -171,6 +171,11 @@ void SceneScriptCT09::PlayerWalkedIn() {
 		Game_Flag_Set(kFlagCT09Entered);
 		Actor_Set_Goal_Number(kActorLeon, kGoalLeonHoldingDeskClerk);
 		leonScene = true;
+		if (_vm->_cutContent) {
+			// don't allow McCoy to leave until the situation is resolved
+			// (the vanilla game allows him to leave)
+			Scene_Exits_Disable();
+		}
 	}
 
 	if (Game_Flag_Query(kFlagCT10toCT09)) {





More information about the Scummvm-git-logs mailing list