BLADERUNNER: Fix Steele re-arresting Izo at RC03
This commit is contained in:
parent
9fa862c0f4
commit
b64e66a6b5
3 changed files with 22 additions and 2 deletions
|
@ -106,6 +106,7 @@ void AIScriptIzo::CompletedMovementTrack() {
|
|||
return; //true;
|
||||
|
||||
case kGoalIzoRC03Walk:
|
||||
// fall through
|
||||
case kGoalIzoRC03Run:
|
||||
Actor_Set_Goal_Number(kActorIzo, kGoalIzoRC03RunAway);
|
||||
Actor_Set_Goal_Number(kActorSteele, kGoalSteeleApprehendIzo);
|
||||
|
|
|
@ -822,7 +822,9 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
|
|||
// Scene_Exits_Enable() is done in Izo's kGoalIzoGetArrested - CompletedMovementTrack() case
|
||||
Actor_Set_Goal_Number(kActorIzo, kGoalIzoGetArrested);
|
||||
Actor_Set_Goal_Number(kActorSteele, kGoalSteeleLeaveRC03);
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
Actor_Set_Goal_Number(kActorSteele, kGoalSteeleDefault); // TODO - a bug? why set to default here?
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
return true;
|
||||
|
||||
case kGoalSteeleIzoBlockedByMcCoy:
|
||||
|
@ -2333,9 +2335,9 @@ void AIScriptSteele::SetAnimationState(int animationState, int animationFrame, i
|
|||
bool AIScriptSteele::ReachedMovementTrackWaypoint(int waypointId) {
|
||||
if (waypointId == 174
|
||||
&& Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleLeaveRC03
|
||||
)
|
||||
) {
|
||||
Actor_Set_Goal_Number(kActorSteele, kGoalSteeleGoToPoliceStation);
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,12 @@ void SceneScriptRC03::InitializeScene() {
|
|||
Scene_Exit_Add_2D_Exit(0, 610, 0, 639, 479, 1);
|
||||
Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
|
||||
if (Game_Flag_Query(kFlagRC03UnlockedToUG01)) {
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
Scene_Exit_Add_2D_Exit(2, 524, 350, 573, 359, 2);
|
||||
#else
|
||||
// prevent Izo's corpse from blocking the exit hot-spot area
|
||||
Scene_Exit_Add_2D_Exit(2, 524, 340, 573, 359, 2);
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
}
|
||||
Scene_Exit_Add_2D_Exit(3, 85, 255, 112, 315, 0);
|
||||
Scene_Exit_Add_2D_Exit(4, 428, 260, 453, 324, 0);
|
||||
|
@ -316,7 +321,19 @@ void SceneScriptRC03::PlayerWalkedIn() {
|
|||
Loop_Actor_Walk_To_XYZ(kActorIzo, 180.0f, -4.0f, 184.0f, 0, false, false, false);
|
||||
Actor_Change_Animation_Mode(kActorIzo, 6);
|
||||
if (!Game_Flag_Query(kFlagIzoIsReplicant)) {
|
||||
#if BLADERUNNER_ORIGINAL_BUGS
|
||||
Actor_Set_Goal_Number(kActorSteele, kGoalSteeleApprehendIzo);
|
||||
#else
|
||||
if (Actor_Query_Goal_Number(kActorIzo) != kGoalIzoGetArrested
|
||||
&& Actor_Query_Goal_Number(kActorIzo) != kGoalIzoGotArrested
|
||||
&& Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleApprehendIzo
|
||||
&& Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleArrestIzo
|
||||
&& Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleLeaveRC03
|
||||
&& Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleGoToPoliceStation
|
||||
) {
|
||||
Actor_Set_Goal_Number(kActorSteele, kGoalSteeleApprehendIzo);
|
||||
}
|
||||
#endif // BLADERUNNER_ORIGINAL_BUGS
|
||||
}
|
||||
Player_Gains_Control();
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue