aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/scene/rc03.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/script/scene/rc03.cpp')
-rw-r--r--engines/bladerunner/script/scene/rc03.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/engines/bladerunner/script/scene/rc03.cpp b/engines/bladerunner/script/scene/rc03.cpp
index b9a022567d..17837cabb6 100644
--- a/engines/bladerunner/script/scene/rc03.cpp
+++ b/engines/bladerunner/script/scene/rc03.cpp
@@ -315,7 +315,21 @@ void SceneScriptRC03::PlayerWalkedIn() {
Actor_Says_With_Pause(kActorIzo, 640, 0, -1);
Actor_Says_With_Pause(kActorIzo, 650, 0, -1);
if (Game_Flag_Query(kFlagIzoIsReplicant) ) {
+#if BLADERUNNER_ORIGINAL_BUGS
Actor_Set_Goal_Number(kActorSteele, kGoalSteeleApprehendIzo);
+#else
+ // prevent re-apprehending of Izo
+ if (Actor_Query_Goal_Number(kActorIzo) != kGoalIzoDie
+ && Actor_Query_Goal_Number(kActorIzo) != kGoalIzoDieHidden
+ && Actor_Query_Goal_Number(kActorIzo) != kGoalIzoEscape
+ && Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleShootIzo
+ && Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleIzoBlockedByMcCoy
+ && Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleLeaveRC03
+ && Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleGoToPoliceStation
+ ) {
+ Actor_Set_Goal_Number(kActorSteele, kGoalSteeleApprehendIzo);
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
}
Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDodge);
Loop_Actor_Walk_To_XYZ(kActorIzo, 180.0f, -4.0f, 184.0f, 0, false, false, false);
@@ -324,10 +338,13 @@ void SceneScriptRC03::PlayerWalkedIn() {
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Set_Goal_Number(kActorSteele, kGoalSteeleApprehendIzo);
#else
+ // prevent re-apprehending of Izo
if (Actor_Query_Goal_Number(kActorIzo) != kGoalIzoGetArrested
&& Actor_Query_Goal_Number(kActorIzo) != kGoalIzoGotArrested
+ && Actor_Query_Goal_Number(kActorIzo) != kGoalIzoEscape
&& Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleApprehendIzo
&& Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleArrestIzo
+ && Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleIzoBlockedByMcCoy
&& Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleLeaveRC03
&& Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleGoToPoliceStation
) {