aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/bladerunner/script/ai/officer_grayford.cpp19
-rw-r--r--engines/bladerunner/script/ai/officer_leary.cpp20
2 files changed, 37 insertions, 2 deletions
diff --git a/engines/bladerunner/script/ai/officer_grayford.cpp b/engines/bladerunner/script/ai/officer_grayford.cpp
index ae84933e09..be7c2354ac 100644
--- a/engines/bladerunner/script/ai/officer_grayford.cpp
+++ b/engines/bladerunner/script/ai/officer_grayford.cpp
@@ -788,8 +788,9 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb
// fall through
case 6:
+#if BLADERUNNER_ORIGINAL_BUGS
// kSetUG07 -> kSetFreeSlotC
-// debug("gray 8-6 kSetUG07 -> kSetFreeSlotC");
+ // debug("gray 8-6 kSetUG07 -> kSetFreeSlotC");
AI_Movement_Track_Append(kActorOfficerGrayford, 415, 0);
AI_Movement_Track_Append_With_Facing(kActorOfficerGrayford, 416, 0, 620);
AI_Movement_Track_Append(kActorOfficerGrayford, 417, 0);
@@ -797,6 +798,22 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb
AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC
AI_Movement_Track_Repeat(kActorOfficerGrayford);
break;
+#else
+ // Don't put police in UG07 after the UG18 Guzza scene
+ // since Clovis may be there too and that does not work well
+ if (!Game_Flag_Query(kFlagUG18GuzzaScene)) {
+ // kSetUG07 -> kSetFreeSlotC
+ // debug("gray 8-6 kSetUG07 -> kSetFreeSlotC");
+ AI_Movement_Track_Append(kActorOfficerGrayford, 415, 0);
+ AI_Movement_Track_Append_With_Facing(kActorOfficerGrayford, 416, 0, 620);
+ AI_Movement_Track_Append(kActorOfficerGrayford, 417, 0);
+ AI_Movement_Track_Append(kActorOfficerGrayford, 418, 0);
+ AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC
+ AI_Movement_Track_Repeat(kActorOfficerGrayford);
+ break;
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
+ // fall through
case 7:
// kSetUG01 -> kSetFreeSlotC
diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp
index 8b3f7cf87e..4cea60f103 100644
--- a/engines/bladerunner/script/ai/officer_leary.cpp
+++ b/engines/bladerunner/script/ai/officer_leary.cpp
@@ -539,8 +539,9 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber)
// fall through
case 6:
+#if BLADERUNNER_ORIGINAL_BUGS
// kSetUG07 -> kSetFreeSlotC
-// debug("leary 8-6 kSetUG07 -> kSetFreeSlotC");
+ // debug("leary 8-6 kSetUG07 -> kSetFreeSlotC");
AI_Movement_Track_Append(kActorOfficerLeary, 415, 0);
AI_Movement_Track_Append_With_Facing(kActorOfficerLeary, 416, 0, 620);
AI_Movement_Track_Append(kActorOfficerLeary, 417, 0);
@@ -548,6 +549,23 @@ bool AIScriptOfficerLeary::GoalChanged(int currentGoalNumber, int newGoalNumber)
AI_Movement_Track_Append(kActorOfficerLeary, 35, 30); // kSetFreeSlotC
AI_Movement_Track_Repeat(kActorOfficerLeary);
break;
+#else
+ // Don't put police in UG07 after the UG18 Guzza scene
+ // since Clovis may be there too and that does not work well
+ if (!Game_Flag_Query(kFlagUG18GuzzaScene)) {
+ // kSetUG07 -> kSetFreeSlotC
+ // debug("leary 8-6 kSetUG07 -> kSetFreeSlotC");
+ AI_Movement_Track_Append(kActorOfficerLeary, 415, 0);
+ AI_Movement_Track_Append_With_Facing(kActorOfficerLeary, 416, 0, 620);
+ AI_Movement_Track_Append(kActorOfficerLeary, 417, 0);
+ AI_Movement_Track_Append(kActorOfficerLeary, 418, 0);
+ AI_Movement_Track_Append(kActorOfficerLeary, 35, 30); // kSetFreeSlotC
+ AI_Movement_Track_Repeat(kActorOfficerLeary);
+ break;
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
+ // fall through
+
case 7:
// kSetUG01 -> kSetFreeSlotC
// debug("leary 8-7 kSetUG01 -> kSetFreeSlotC");