aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Kohaut2019-05-05 23:04:44 +0200
committerPeter Kohaut2019-05-05 23:04:44 +0200
commit4a2d7269f43bcdd09d2ad42833243f9b1afd2462 (patch)
tree4af2faa12e431bec368f2d4112be70ffdb4ed389
parentd8ba527cf0c2613bdcdd5869ecc70e626888b82e (diff)
downloadscummvm-rg350-4a2d7269f43bcdd09d2ad42833243f9b1afd2462.tar.gz
scummvm-rg350-4a2d7269f43bcdd09d2ad42833243f9b1afd2462.tar.bz2
scummvm-rg350-4a2d7269f43bcdd09d2ad42833243f9b1afd2462.zip
BLADERUNNER: Remove police officers from MA07
They are causing issues with Gaff dialogue if they are in the same scene at the same time.
-rw-r--r--engines/bladerunner/script/ai/officer_grayford.cpp8
-rw-r--r--engines/bladerunner/script/ai/officer_leary.cpp12
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);