From 4a2d7269f43bcdd09d2ad42833243f9b1afd2462 Mon Sep 17 00:00:00 2001 From: Peter Kohaut Date: Sun, 5 May 2019 23:04:44 +0200 Subject: BLADERUNNER: Remove police officers from MA07 They are causing issues with Gaff dialogue if they are in the same scene at the same time. --- engines/bladerunner/script/ai/officer_grayford.cpp | 8 ++++++++ engines/bladerunner/script/ai/officer_leary.cpp | 12 ++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/engines/bladerunner/script/ai/officer_grayford.cpp b/engines/bladerunner/script/ai/officer_grayford.cpp index 15f7044ba9..7f502cd6db 100644 --- a/engines/bladerunner/script/ai/officer_grayford.cpp +++ b/engines/bladerunner/script/ai/officer_grayford.cpp @@ -654,6 +654,10 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb Actor_Set_Goal_Number(kActorOfficerGrayford, 305); return true; +#if BLADERUNNER_ORIGINAL_BUGS + // Gaff is waiting at MA07 and he will trigger a non-interactive dialogue with McCoy. + // When the police officer is there as well he will kill McCoy because player cannot control him. + case 7: AI_Movement_Track_Append(kActorOfficerGrayford, 394, 15); AI_Movement_Track_Append(kActorOfficerGrayford, 395, 0); @@ -666,6 +670,10 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb AI_Movement_Track_Repeat(kActorOfficerGrayford); Actor_Set_Goal_Number(kActorOfficerGrayford, 305); return true; +#else + case 7: + // fall through +#endif case 8: switch (Random_Query(1, 7)) { diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp index a4ece9fece..8d2bd3b9c5 100644 --- a/engines/bladerunner/script/ai/officer_leary.cpp +++ b/engines/bladerunner/script/ai/officer_leary.cpp @@ -419,6 +419,10 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber) AI_Movement_Track_Append(kActorOfficerLeary, 387, 15); AI_Movement_Track_Repeat(kActorOfficerLeary); break; +#if BLADERUNNER_ORIGINAL_BUGS + // Gaff is waiting at MA07 and he will trigger a non-interactive dialogue with McCoy. + // When the police officer is there as well he will kill McCoy because player cannot control him. + case 7: AI_Movement_Track_Append(kActorOfficerLeary, 394, 15); AI_Movement_Track_Append(kActorOfficerLeary, 395, 0); @@ -430,6 +434,10 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber) AI_Movement_Track_Append(kActorOfficerLeary, 35, 30); AI_Movement_Track_Repeat(kActorOfficerLeary); break; +#else + case 7: + // fall through +#endif case 8: switch (Random_Query(1, 7)) { case 1: @@ -486,7 +494,7 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber) default: return false; } - // fall through + // fall through, a bug in original game? case 9: if (Random_Query(1, 2) - 1 == 1) { AI_Movement_Track_Append(kActorOfficerLeary, 433, 10); @@ -503,7 +511,7 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber) AI_Movement_Track_Append(kActorOfficerLeary, 420, 10); AI_Movement_Track_Append(kActorOfficerLeary, 35, 30); AI_Movement_Track_Repeat(kActorOfficerLeary); - // fall through + // fall through, a bug in original game? case 10: AI_Movement_Track_Append(kActorOfficerLeary, 310, 0); AI_Movement_Track_Append(kActorOfficerLeary, 307, 0); -- cgit v1.2.3