diff options
Diffstat (limited to 'engines/bladerunner/script/ai/officer_grayford.cpp')
-rw-r--r-- | engines/bladerunner/script/ai/officer_grayford.cpp | 359 |
1 files changed, 206 insertions, 153 deletions
diff --git a/engines/bladerunner/script/ai/officer_grayford.cpp b/engines/bladerunner/script/ai/officer_grayford.cpp index 3c54790335..af0bc3c65f 100644 --- a/engines/bladerunner/script/ai/officer_grayford.cpp +++ b/engines/bladerunner/script/ai/officer_grayford.cpp @@ -40,47 +40,47 @@ void AIScriptOfficerGrayford::Initialize() { _var3 = 0; Actor_Put_In_Set(kActorOfficerGrayford, kSetFreeSlotG); - Actor_Set_At_Waypoint(kActorOfficerGrayford, 39, 0); - Actor_Set_Goal_Number(kActorOfficerGrayford, 0); + Actor_Set_At_Waypoint(kActorOfficerGrayford, 39, 0); // kSetFreeSlotG + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordDefault); } bool AIScriptOfficerGrayford::Update() { if (Global_Variable_Query(kVariableChapter) == 4 - && Actor_Query_Goal_Number(kActorOfficerGrayford) < 300) { + && Actor_Query_Goal_Number(kActorOfficerGrayford) < kGoalOfficerGrayfordStartOfAct4) { AI_Movement_Track_Flush(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 300); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordStartOfAct4); return false; } if (Global_Variable_Query(kVariableChapter) == 5 - && Actor_Query_Goal_Number(kActorOfficerGrayford) < 400 + && Actor_Query_Goal_Number(kActorOfficerGrayford) < kGoalOfficerGrayfordStartOfAct5 ) { AI_Movement_Track_Flush(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 400); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordStartOfAct5); return false; } if (!Game_Flag_Query(kFlagMcCoyInDNARow) - && Actor_Query_Goal_Number(kActorOfficerGrayford) > 102 - && Actor_Query_Goal_Number(kActorOfficerGrayford) < 110 + && Actor_Query_Goal_Number(kActorOfficerGrayford) > kGoalOfficerGrayfordArrivedAtDR04 + && Actor_Query_Goal_Number(kActorOfficerGrayford) < kGoalOfficerGrayfordLeavesWithMorajiCorpseDR04 ) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 110); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordLeavesWithMorajiCorpseDR04); return false; } - if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 0) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 1); + if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordDefault) { + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordWalksInPS03a); return false; } - if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 10) { + if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordPrepareToRestartWalkAround) { AI_Movement_Track_Flush(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 0); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordDefault); return false; } - if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 102) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 103); + if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordArrivedAtDR04) { + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordTalkToMcCoyAndReportAtDR04); return false; } @@ -91,106 +91,110 @@ bool AIScriptOfficerGrayford::Update() { return false; } - if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 310 + if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordAttackMcCoyAct4 && Actor_Query_Which_Set_In(kActorOfficerGrayford) != Player_Query_Current_Set() ) { Non_Player_Actor_Combat_Mode_Off(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 305); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordHuntingAroundAct4); return false; } - if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 599 + if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordDead && Actor_Query_Which_Set_In(kActorOfficerGrayford) != Player_Query_Current_Set() ) { + // dead officer gets revived and re-used Actor_Set_Health(kActorOfficerGrayford, 50, 50); - Actor_Set_Goal_Number(kActorOfficerGrayford, 305); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordHuntingAroundAct4); return false; } - if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 305) { + if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordHuntingAroundAct4) { switch (Actor_Query_Which_Set_In(kActorOfficerGrayford)) { case kSetRC03: if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 310); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordAttackMcCoyAct4); Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 18, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, 10, 300, false); } break; case kSetUG01: if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 310); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordAttackMcCoyAct4); Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 11, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, 10, 300, false); } break; case kSetUG04: + // fall through case kSetUG05: + // fall through case kSetUG06: if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 310); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordAttackMcCoyAct4); Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 10, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, 10, 300, false); } break; - +// asdf UG07 whould be a type 10 combat, 12 flee? case kSetUG08: if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 310); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordAttackMcCoyAct4); Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 13, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, 10, 300, false); } break; +// asdf UG09 whould be a type ?? // case kSetUG10: if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 310); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordAttackMcCoyAct4); Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 14, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, 10, 300, false); } break; case kSetUG12: if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 310); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordAttackMcCoyAct4); Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 16, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, 10, 300, false); } break; case kSetUG14: if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 310); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordAttackMcCoyAct4); Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 17, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, 10, 300, false); } break; case kSetMA07: if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 310); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordAttackMcCoyAct4); Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 7, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, 10, 300, false); } break; case kSetNR01: if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 310); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordAttackMcCoyAct4); Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 3, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, 10, 300, false); } break; case kSetDR01_DR02_DR04: if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 310); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordAttackMcCoyAct4); Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 0, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, 10, 300, false); } break; case kSetBB01: if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 310); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordAttackMcCoyAct4); Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 1, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, 10, 300, false); } break; case kSetCT11: if (Actor_Query_Which_Set_In(kActorOfficerGrayford) == Player_Query_Current_Set()) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 310); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordAttackMcCoyAct4); Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 5, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, 10, 300, false); } break; @@ -204,73 +208,75 @@ bool AIScriptOfficerGrayford::Update() { void AIScriptOfficerGrayford::TimerExpired(int timer) { if (timer == kActorTimerAIScriptCustomTask2) { AI_Countdown_Timer_Reset(kActorOfficerGrayford, kActorTimerAIScriptCustomTask2); - if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 104) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 105); - } else if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 105) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 104); + if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordPatrolsAtDR04a) { + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordPatrolsAtDR04b); + } else if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordPatrolsAtDR04b) { + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordPatrolsAtDR04a); } } } void AIScriptOfficerGrayford::CompletedMovementTrack() { switch (Actor_Query_Goal_Number(kActorOfficerGrayford)) { - case 1: - Actor_Set_Goal_Number(kActorOfficerGrayford, 2); + case kGoalOfficerGrayfordWalksInPS03a: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordWalksInPS03b); break; - case 2: - Actor_Set_Goal_Number(kActorOfficerGrayford, 3); + case kGoalOfficerGrayfordWalksInPS03b: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordWalksInPS03c); break; - case 3: - Actor_Set_Goal_Number(kActorOfficerGrayford, 4); + case kGoalOfficerGrayfordWalksInPS03c: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordWalksInPS03d); break; - case 4: - Actor_Set_Goal_Number(kActorOfficerGrayford, 5); + case kGoalOfficerGrayfordWalksInPS03d: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordWalksInFreeSlotC); break; - case 5: - Actor_Set_Goal_Number(kActorOfficerGrayford, 6); + case kGoalOfficerGrayfordWalksInFreeSlotC: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordWalksInPS09a); break; - case 6: - Actor_Set_Goal_Number(kActorOfficerGrayford, 7); + case kGoalOfficerGrayfordWalksInPS09a: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordWalksInPS09b); break; - case 7: - Actor_Set_Goal_Number(kActorOfficerGrayford, 8); + case kGoalOfficerGrayfordWalksInPS09b: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordWalksInPS09c); break; - case 8: - Actor_Set_Goal_Number(kActorOfficerGrayford, 9); + case kGoalOfficerGrayfordWalksInPS09c: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordWalksInPS03e); break; - case 9: - Actor_Set_Goal_Number(kActorOfficerGrayford, 10); + case kGoalOfficerGrayfordWalksInPS03e: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordPrepareToRestartWalkAround); break; - case 104: - case 105: + case kGoalOfficerGrayfordPatrolsAtDR04a: + // fall through + case kGoalOfficerGrayfordPatrolsAtDR04b: if (Random_Query(0, 2)) { Actor_Change_Animation_Mode(kActorOfficerGrayford, 43); } else { AI_Countdown_Timer_Reset(kActorOfficerGrayford, kActorTimerAIScriptCustomTask2); AI_Countdown_Timer_Start(kActorOfficerGrayford, kActorTimerAIScriptCustomTask2, Random_Query(6, 12)); } - Actor_Face_Waypoint(kActorOfficerGrayford, 97, true); + Actor_Face_Waypoint(kActorOfficerGrayford, 97, true); // kSetDR01_DR02_DR04 // return false; break; - case 305: - Actor_Set_Goal_Number(kActorOfficerGrayford, 306); + case kGoalOfficerGrayfordHuntingAroundAct4: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordPrepareToHuntAroundAct4); break; - case 307: + case kGoalOfficerGrayfordBlockingUG07: + // UG07 before McCoy visits his apartment in Act 4 Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateIdle, true, kActorMcCoy, 12, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, false); break; - case 308: + case kGoalOfficerGrayfordArrestsMcCoyAct4CT12: Actor_Change_Animation_Mode(kActorOfficerGrayford, kAnimationModeCombatIdle); Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true); break; @@ -288,7 +294,7 @@ void AIScriptOfficerGrayford::ClickedByPlayer() { switch (Actor_Query_Goal_Number(kActorOfficerGrayford)) { case 1: AI_Movement_Track_Flush(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 99); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordStopAndTalk1); Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true); Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true); if (Random_Query(1, 2) == 1) { @@ -302,7 +308,7 @@ void AIScriptOfficerGrayford::ClickedByPlayer() { case 2: AI_Movement_Track_Flush(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 99); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordStopAndTalk1); Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true); Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true); if (Random_Query(1, 2) == 1) { @@ -316,7 +322,7 @@ void AIScriptOfficerGrayford::ClickedByPlayer() { case 3: AI_Movement_Track_Flush(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 99); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordStopAndTalk1); Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true); Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true); if (Random_Query(1, 2) == 1) { @@ -329,7 +335,7 @@ void AIScriptOfficerGrayford::ClickedByPlayer() { case 4: AI_Movement_Track_Flush(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 99); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordStopAndTalk1); Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true); Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true); if (Random_Query(1, 2) == 1) { @@ -344,7 +350,7 @@ void AIScriptOfficerGrayford::ClickedByPlayer() { case 7: AI_Movement_Track_Flush(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 99); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordStopAndTalk1); Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true); Actor_Says(kActorMcCoy, 4515, 14); Actor_Says(kActorOfficerGrayford, 330, 13); @@ -353,17 +359,17 @@ void AIScriptOfficerGrayford::ClickedByPlayer() { case 8: AI_Movement_Track_Flush(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 99); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordStopAndTalk1); Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true); Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true); Actor_Says(kActorMcCoy, 5075, 13); Actor_Set_Goal_Number(kActorOfficerGrayford, 8); break; - case 104: - Actor_Set_Goal_Number(kActorOfficerGrayford, 199); + case kGoalOfficerGrayfordPatrolsAtDR04a: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordStopAndTalkDR04); Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true); - Actor_Says(kActorMcCoy, 1005, kAnimationModeTalk); + Actor_Says(kActorMcCoy, 1005, kAnimationModeTalk); // Don't miss anything. AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Countdown_Timer_Reset(kActorOfficerGrayford, kActorTimerAIScriptCustomTask2); if (_animationState == 35 || _animationState == 34) { @@ -372,13 +378,13 @@ void AIScriptOfficerGrayford::ClickedByPlayer() { } Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true); Actor_Says(kActorOfficerGrayford, 190, 19); - Actor_Set_Goal_Number(kActorOfficerGrayford, 104); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordPatrolsAtDR04a); break; - case 105: - Actor_Set_Goal_Number(kActorOfficerGrayford, 199); + case kGoalOfficerGrayfordPatrolsAtDR04b: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordStopAndTalkDR04); Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true); - Actor_Says(kActorMcCoy, 1005, kAnimationModeTalk); + Actor_Says(kActorMcCoy, 1005, kAnimationModeTalk); // Don't miss anything. AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Countdown_Timer_Reset(kActorOfficerGrayford, kActorTimerAIScriptCustomTask2); if (_animationState == 35 || _animationState == 34) { @@ -387,12 +393,12 @@ void AIScriptOfficerGrayford::ClickedByPlayer() { } Actor_Face_Actor(kActorOfficerGrayford, kActorMcCoy, true); Actor_Says(kActorOfficerGrayford, 190, 19); - Actor_Set_Goal_Number(kActorOfficerGrayford, 105); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordPatrolsAtDR04b); break; default: return; //false; - break; +// break; // redundant } return; //true; @@ -419,14 +425,15 @@ void AIScriptOfficerGrayford::ShotAtAndMissed() { } bool AIScriptOfficerGrayford::ShotAtAndHit() { - if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 307) + // Grayford is invincible while blocking the UG07 (before McCoy visits his apartment in Act 4) + if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordBlockingUG07) { Actor_Set_Health(kActorOfficerGrayford, 50, 50); - + } return false; } void AIScriptOfficerGrayford::Retired(int byActorId) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 599); + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordDead); Game_Flag_Set(kFlagMcCoyRetiredHuman); } @@ -436,61 +443,71 @@ int AIScriptOfficerGrayford::GetFriendlinessModifierIfGetsClue(int otherActorId, bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumber) { switch (newGoalNumber) { - case 1: + case kGoalOfficerGrayfordWalksInPS03a: + // kSetPS03 AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Append(kActorOfficerGrayford, 82, Random_Query(5, 20)); AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 2: + case kGoalOfficerGrayfordWalksInPS03b: + // kSetPS03 AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Append(kActorOfficerGrayford, 76, Random_Query(10, 20)); AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 3: + case kGoalOfficerGrayfordWalksInPS03c: + // kSetPS03 AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Append(kActorOfficerGrayford, 77, Random_Query(5, 15)); AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 4: + case kGoalOfficerGrayfordWalksInPS03d: + // kSetPS03 AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Append(kActorOfficerGrayford, 78, Random_Query(5, 15)); AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 5: + case kGoalOfficerGrayfordWalksInFreeSlotC: + // kSetFreeSlotC AI_Movement_Track_Flush(kActorOfficerGrayford); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 6: + case kGoalOfficerGrayfordWalksInPS09a: + // kSetPS09 AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Append(kActorOfficerGrayford, 79, Random_Query(5, 15)); AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 7: + case kGoalOfficerGrayfordWalksInPS09b: + // kSetPS09 AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Append(kActorOfficerGrayford, 80, 1); AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 8: + case kGoalOfficerGrayfordWalksInPS09c: + // kSetPS09 AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Append(kActorOfficerGrayford, 81, Random_Query(5, 15)); AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 9: + case kGoalOfficerGrayfordWalksInPS03e: + // kSetPS03 AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Append(kActorOfficerGrayford, 82, Random_Query(5, 15)); AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 101: + case kGoalOfficerGrayfordArrivesToDR04: + // kSetDR01_DR02_DR04 Player_Loses_Control(); AI_Movement_Track_Flush(kActorOfficerGrayford); Actor_Put_In_Set(kActorOfficerGrayford, kSetDR01_DR02_DR04); @@ -513,13 +530,14 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb } return true; - case 102: + case kGoalOfficerGrayfordArrivedAtDR04: return true; - case 103: + case kGoalOfficerGrayfordTalkToMcCoyAndReportAtDR04: + // kSetDR01_DR02_DR04 Actor_Says(kActorOfficerGrayford, 120, 19); - Actor_Says_With_Pause(kActorMcCoy, 970, 0.2f, 13); - Actor_Says(kActorMcCoy, 975, 12); + Actor_Says_With_Pause(kActorMcCoy, 970, 0.2f, 13); // Got a dead man here. Victim of an explosion. + Actor_Says(kActorMcCoy, 975, 12); // TODO - a bug? McCoy may not know Moraji's name here(?) if (Actor_Clue_Query(kActorMcCoy, kClueMorajiInterview) == 1) { Actor_Says(kActorMcCoy, 980, 16); @@ -537,33 +555,35 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiDead) { Actor_Face_Actor(kActorOfficerGrayford, kActorMoraji, true); } else { - Actor_Face_Waypoint(kActorOfficerGrayford, 97, 1); + Actor_Face_Waypoint(kActorOfficerGrayford, 97, true); } Actor_Change_Animation_Mode(kActorOfficerGrayford, 43); if (Player_Query_Current_Scene() == kSceneDR04) { - Actor_Says(kActorOfficerGrayford, 170, kAnimationModeTalk); + Actor_Says(kActorOfficerGrayford, 170, kAnimationModeTalk); // This is 32, Sector 3. Reporting a homicide. Possible act of terrorism. } return true; - case 104: + case kGoalOfficerGrayfordPatrolsAtDR04a: + // kSetDR01_DR02_DR04 AI_Countdown_Timer_Reset(kActorOfficerGrayford, kActorTimerAIScriptCustomTask2); AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Append(kActorOfficerGrayford, 112, 0); AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 105: + case kGoalOfficerGrayfordPatrolsAtDR04b: + // kSetDR01_DR02_DR04 AI_Countdown_Timer_Reset(kActorOfficerGrayford, kActorTimerAIScriptCustomTask2); AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Append(kActorOfficerGrayford, 113, 0); AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 106: + case kGoalOfficerGrayfordStopPatrolToTalkToMcCoyAtDR04: Actor_Face_Actor(kActorMcCoy, kActorOfficerGrayford, true); - Actor_Says(kActorMcCoy, 1000, 14); + Actor_Says(kActorMcCoy, 1000, 14); // You got a sheet or something...? AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Countdown_Timer_Reset(kActorOfficerGrayford, kActorTimerAIScriptCustomTask2); @@ -579,23 +599,25 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb Actor_Set_Goal_Number(kActorOfficerGrayford, currentGoalNumber); return true; // possible bugfix: was break; - case 110: + case kGoalOfficerGrayfordLeavesWithMorajiCorpseDR04: + // kSetFreeSlotC AI_Movement_Track_Flush(kActorOfficerGrayford); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 0); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 0); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); AI_Movement_Track_Flush(kActorMoraji); - AI_Movement_Track_Append(kActorMoraji, 41, 0); + AI_Movement_Track_Append(kActorMoraji, 41, 0); // kSetFreeSlotI AI_Movement_Track_Repeat(kActorMoraji); return true; - case 300: - Actor_Set_Goal_Number(kActorOfficerGrayford, 305); + case kGoalOfficerGrayfordStartOfAct4: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordHuntingAroundAct4); return true; - case 305: + case kGoalOfficerGrayfordHuntingAroundAct4: AI_Movement_Track_Flush(kActorOfficerGrayford); switch (Random_Query(1, 10)) { case 1: + // kSetNR01 AI_Movement_Track_Append(kActorOfficerGrayford, 398, 15); AI_Movement_Track_Append(kActorOfficerGrayford, 399, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 400, 0); @@ -604,54 +626,59 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb AI_Movement_Track_Append(kActorOfficerGrayford, 403, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 404, 15); AI_Movement_Track_Repeat(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 305); + //Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordHuntingAroundAct4); // redundant return true; case 2: + // kSetCT11 AI_Movement_Track_Append(kActorOfficerGrayford, 385, 10); AI_Movement_Track_Append(kActorOfficerGrayford, 242, 2); AI_Movement_Track_Append(kActorOfficerGrayford, 386, 2); AI_Movement_Track_Append(kActorOfficerGrayford, 387, 15); AI_Movement_Track_Repeat(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 305); + //Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordHuntingAroundAct4); // redundant return true; case 3: + // kSetDR01_DR02_DR04 AI_Movement_Track_Append(kActorOfficerGrayford, 390, 10); AI_Movement_Track_Append(kActorOfficerGrayford, 391, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 392, 5); AI_Movement_Track_Append(kActorOfficerGrayford, 345, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 393, 15); AI_Movement_Track_Repeat(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 305); + //Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordHuntingAroundAct4); // redundant return true; case 4: + // kSetRC03 -> kSetFreeSlotC AI_Movement_Track_Append(kActorOfficerGrayford, 381, 15); AI_Movement_Track_Append(kActorOfficerGrayford, 382, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 383, 15); AI_Movement_Track_Append(kActorOfficerGrayford, 382, 3); AI_Movement_Track_Append(kActorOfficerGrayford, 384, 0); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 305); + //Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordHuntingAroundAct4); // redundant return true; case 5: + // kSetBB01 -> kSetFreeSlotC AI_Movement_Track_Append(kActorOfficerGrayford, 388, 10); AI_Movement_Track_Append(kActorOfficerGrayford, 389, 10); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 305); + //Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordHuntingAroundAct4); // redundant return true; case 6: + // kSetCT11 - identical to case 2 AI_Movement_Track_Append(kActorOfficerGrayford, 385, 10); AI_Movement_Track_Append(kActorOfficerGrayford, 242, 2); AI_Movement_Track_Append(kActorOfficerGrayford, 386, 2); AI_Movement_Track_Append(kActorOfficerGrayford, 387, 15); AI_Movement_Track_Repeat(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 305); + //Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordHuntingAroundAct4); // redundant return true; #if BLADERUNNER_ORIGINAL_BUGS @@ -659,6 +686,7 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb // When the police officer is there as well he will kill McCoy because player cannot control him. case 7: + // kSetMA07 -> kSetFreeSlotC AI_Movement_Track_Append(kActorOfficerGrayford, 394, 15); AI_Movement_Track_Append(kActorOfficerGrayford, 395, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 396, 0); @@ -666,141 +694,165 @@ bool AIScriptOfficerGrayford::GoalChanged(int currentGoalNumber, int newGoalNumb AI_Movement_Track_Append(kActorOfficerGrayford, 396, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 395, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 430, 15); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); - Actor_Set_Goal_Number(kActorOfficerGrayford, 305); + //Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordHuntingAroundAct4); // redundant return true; #else case 7: - // fall through -#endif + // just put him away for a few seconds + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC + AI_Movement_Track_Repeat(kActorOfficerGrayford); + return true; +#endif // BLADERUNNER_ORIGINAL_BUGS case 8: switch (Random_Query(1, 7)) { case 1: + // kSetUG10 -> kSetFreeSlotC AI_Movement_Track_Append(kActorOfficerGrayford, 302, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 407, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 408, 0); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); - break; // and go to case 9 below + break; case 2: + // kSetUG14 AI_Movement_Track_Append(kActorOfficerGrayford, 536, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 537, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 538, 5); AI_Movement_Track_Append(kActorOfficerGrayford, 537, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 536, 0); AI_Movement_Track_Repeat(kActorOfficerGrayford); - break; // and go to case 9 below + break; case 3: + // kSetUG04 -> kSetFreeSlotC AI_Movement_Track_Append(kActorOfficerGrayford, 296, 10); AI_Movement_Track_Append(kActorOfficerGrayford, 409, 2); AI_Movement_Track_Append(kActorOfficerGrayford, 296, 10); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); - break; // and go to case 9 below + break; case 4: + // kSetUG05 -> kSetFreeSlotC AI_Movement_Track_Append(kActorOfficerGrayford, 411, 10); AI_Movement_Track_Append(kActorOfficerGrayford, 412, 5); AI_Movement_Track_Append(kActorOfficerGrayford, 411, 0); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); - break; // and go to case 9 below + break; case 5: + // kSetUG06 -> kSetFreeSlotC AI_Movement_Track_Append(kActorOfficerGrayford, 413, 10); AI_Movement_Track_Append(kActorOfficerGrayford, 414, 0); AI_Movement_Track_Append_With_Facing(kActorOfficerGrayford, 431, 0, 1017); AI_Movement_Track_Append(kActorOfficerGrayford, 432, 10); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); - break; // and go to case 9 below + break; case 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); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); - break; // and go to case 9 below + break; case 7: + // kSetUG01 -> kSetFreeSlotC AI_Movement_Track_Append(kActorOfficerGrayford, 405, 10); AI_Movement_Track_Append(kActorOfficerGrayford, 406, 0); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); return false; } +#if BLADERUNNER_ORIGINAL_BUGS // fall through - // TODO bug in the game? there should be nothing track related after AI_Movement_Track_Repeat - + // bug in the game - there should be nothing track related after AI_Movement_Track_Repeat +#else + return false; // does it matter if false or true? case 9 and 10 return false +#endif // BLADERUNNER_ORIGINAL_BUGS case 9: if (Random_Query(0, 1)) { + // kSetUG09 -> kSetFreeSlotC AI_Movement_Track_Append(kActorOfficerGrayford, 433, 10); AI_Movement_Track_Append(kActorOfficerGrayford, 434, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 435, 0); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); } else { + // kSetUG08 -> kSetFreeSlotC AI_Movement_Track_Append(kActorOfficerGrayford, 420, 10); AI_Movement_Track_Append(kActorOfficerGrayford, 422, 2); AI_Movement_Track_Append(kActorOfficerGrayford, 421, 1); AI_Movement_Track_Append_With_Facing(kActorOfficerGrayford, 422, 4, 182); AI_Movement_Track_Append(kActorOfficerGrayford, 420, 10); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); - // TODO bug in the game? Same code bellow looks like a case 10 and are from set 84 whereas upper one are from set 81 +#if BLADERUNNER_ORIGINAL_BUGS + // bug in the game? Same code bellow looks like a case 10 and are from set 84 whereas upper one are from set 81 AI_Movement_Track_Append(kActorOfficerGrayford, 310, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 307, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 309, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 310, 0); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); +#endif } return false; case 10: + // kSetUG12 -> kSetFreeSlotC AI_Movement_Track_Append(kActorOfficerGrayford, 310, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 307, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 309, 0); AI_Movement_Track_Append(kActorOfficerGrayford, 310, 0); - AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); + AI_Movement_Track_Append(kActorOfficerGrayford, 35, 30); // kSetFreeSlotC AI_Movement_Track_Repeat(kActorOfficerGrayford); return false; } return false; - case 306: - Actor_Set_Goal_Number(kActorOfficerGrayford, 305); + case kGoalOfficerGrayfordPrepareToHuntAroundAct4: + // aux goal in order to immediately switch back to kGoalOfficerGrayfordHuntingAroundAct4 goal + // and run GoalChanged() for kGoalOfficerGrayfordHuntingAroundAct4 again + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordHuntingAroundAct4); return true; - case 307: + case kGoalOfficerGrayfordBlockingUG07: + // kSetUG07 AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Append_With_Facing(kActorOfficerGrayford, 419, 0, 512); AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 308: + case kGoalOfficerGrayfordArrestsMcCoyAct4CT12: + // kSetCT01_CT12 + // never triggered in original game AI_Movement_Track_Flush(kActorOfficerGrayford); AI_Movement_Track_Append_Run(kActorOfficerGrayford, 440, 0); AI_Movement_Track_Append_Run(kActorOfficerGrayford, 441, 0); AI_Movement_Track_Repeat(kActorOfficerGrayford); return true; - case 399: + case kGoalOfficerGrayfordArrestMcCoyInTB03Act4: + // kSetTB02_TB03 AI_Movement_Track_Flush(kActorOfficerGrayford); Actor_Put_In_Set(kActorOfficerGrayford, kSetTB02_TB03); Actor_Set_At_XYZ(kActorOfficerGrayford, -173.89f, 0.0f, 2084.22f, 859); Actor_Change_Animation_Mode(kActorOfficerGrayford, kAnimationModeCombatIdle); return true; - case 599: + case kGoalOfficerGrayfordDead: _animationState = 32; _animationFrame = Slice_Animation_Query_Number_Of_Frames(624) - 1; return true; @@ -988,8 +1040,8 @@ bool AIScriptOfficerGrayford::UpdateAnimation(int *animation, int *frame) { _animationFrame = 0; _animationState = 0; _var1 = 0; - if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 101) { - Actor_Set_Goal_Number(kActorOfficerGrayford, 102); + if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordArrivesToDR04) { + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordArrivedAtDR04); } } break; @@ -1156,13 +1208,14 @@ bool AIScriptOfficerGrayford::UpdateAnimation(int *animation, int *frame) { _animationFrame = 0; switch (Actor_Query_Goal_Number(kActorOfficerGrayford)) { - case 103: - case 104: - Actor_Set_Goal_Number(kActorOfficerGrayford, 105); + case kGoalOfficerGrayfordTalkToMcCoyAndReportAtDR04: + // fall through + case kGoalOfficerGrayfordPatrolsAtDR04a: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordPatrolsAtDR04b); break; - case 105: - Actor_Set_Goal_Number(kActorOfficerGrayford, 104); + case kGoalOfficerGrayfordPatrolsAtDR04b: + Actor_Set_Goal_Number(kActorOfficerGrayford, kGoalOfficerGrayfordPatrolsAtDR04a); break; } } @@ -1223,7 +1276,7 @@ bool AIScriptOfficerGrayford::ChangeAnimationMode(int mode) { break; case kAnimationModeWalk: - if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 101) { + if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordArrivesToDR04) { _animationState = 6; _animationFrame = 0; } else if (_animationState != 1) { @@ -1233,7 +1286,7 @@ bool AIScriptOfficerGrayford::ChangeAnimationMode(int mode) { break; case kAnimationModeRun: - if (Actor_Query_Goal_Number(kActorOfficerGrayford) == 101) { + if (Actor_Query_Goal_Number(kActorOfficerGrayford) == kGoalOfficerGrayfordArrivesToDR04) { _animationState = 5; _animationFrame = 0; } else if (_animationState != 2) { |