/* ScummVM - Graphic Adventure Engine * * ScummVM is the legal property of its developers, whose names * are too numerous to list here. Please refer to the COPYRIGHT * file distributed with this source distribution. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ #include "bladerunner/script/ai_script.h" namespace BladeRunner { AIScriptSteele::AIScriptSteele(BladeRunnerEngine *vm) : AIScriptBase(vm) { _flag = false; _var1 = 0; _var2 = 0; } void AIScriptSteele::Initialize() { _animationFrame = 0; _animationState = 0; _animationStateNext = 0; _animationNext = 0; _flag = false; _var1 = 0; _var2 = 0; Actor_Put_In_Set(kActorSteele, kSetFreeSlotG); Actor_Set_At_Waypoint(kActorSteele, 39, 0); Actor_Set_Goal_Number(kActorSteele, 0); Actor_Clue_Acquire(kActorSteele, 178, 1, -1); } bool AIScriptSteele::Update() { if (Global_Variable_Query(14) <= 5 || Actor_Clue_Query(kActorSteele, 239)) { switch (Global_Variable_Query(kVariableChapter)) { case 1: if (Game_Flag_Query(182) == 1 && Game_Flag_Query(183) == 1) { Actor_Set_Goal_Number(kActorSteele, 3); return true; } else if (Game_Flag_Query(176) == 1 && Game_Flag_Query(184) == 1) { Actor_Set_Goal_Number(kActorSteele, 6); return true; } else if (Game_Flag_Query(178) == 1 && Game_Flag_Query(185) == 1) { Actor_Set_Goal_Number(kActorSteele, 10); return true; } else if (Actor_Query_Goal_Number(kActorSteele) || Game_Flag_Query(182) || Player_Query_Current_Scene() == kSceneRC01) { if (Actor_Query_Goal_Number(kActorSteele) != 11) { break; // go to after switch } Actor_Set_Goal_Number(kActorSteele, 0); return true; } else { Actor_Set_Goal_Number(kActorSteele, 1); Game_Flag_Set(183); return true; } case 2: if (Game_Flag_Query(451) != 1 || Game_Flag_Query(457)) { if (Actor_Query_Goal_Number(kActorSteele) == 110 && Game_Flag_Query(456) == 1) { Actor_Set_Goal_Number(kActorSteele, 111); return true; } else if (Game_Flag_Query(460) || Actor_Query_Goal_Number(kActorSteele) != 112) { if (Actor_Query_Goal_Number(kActorSteele) != 190) { break; // go to after switch } Game_Flag_Reset(460); Actor_Set_Goal_Number(kActorSteele, 112); return true; } else { Actor_Set_Goal_Number(kActorSteele, 113); Game_Flag_Set(460); return true; } } else { Actor_Set_Goal_Number(kActorSteele, 110); Game_Flag_Set(457); return true; } case 3: if (Global_Variable_Query(kVariableChapter) != 3) { break; // go to after switch } if (Actor_Query_Goal_Number(kActorSteele) < 205) Actor_Set_Goal_Number(kActorSteele, 205); if (Actor_Query_Goal_Number(kActorSteele) == 251 && Player_Query_Current_Scene() == kSceneNR01 && Actor_Query_In_Between_Two_Actors(0, 1, 2)) { Actor_Set_Goal_Number(kActorSteele, 255); } if (Actor_Query_Goal_Number(kActorSteele) == 213) { Actor_Set_Goal_Number(kActorSteele, 214); return true; } else if (Actor_Query_Goal_Number(kActorSteele) == 261) { Actor_Set_Goal_Number(kActorSteele, 262); return true; } else { if (Actor_Query_Goal_Number(kActorSteele) != 271) { break; // go to after switch } Actor_Set_Goal_Number(kActorSteele, 270); return true; } case 4: if (Actor_Query_Goal_Number(kActorSteele) < 300) { Actor_Set_Goal_Number(kActorSteele, 300); } break; // go to after switch case 5: if (Game_Flag_Query(653) != 1 || Actor_Query_Goal_Number(kActorSteele) >= 400) { break; // go to after switch } Actor_Set_Goal_Number(kActorSteele, 400); return true; default: break; // go to after switch } if (Actor_Query_Goal_Number(kActorSteele) == 599 && !Actor_Query_In_Set(kActorSteele, kSetFreeSlotI)) { if (Actor_Query_Which_Set_In(kActorMcCoy) != Actor_Query_Which_Set_In(kActorSteele)) { AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append(kActorSteele, 41, 100); AI_Movement_Track_Repeat(kActorSteele); } } return false; } else { Actor_Clue_Acquire(kActorSteele, 239, 1, -1); return true; } } void AIScriptSteele::TimerExpired(int timer) { if (Actor_Query_Goal_Number(kActorSteele) != 210 || timer || Player_Query_Current_Scene() != kSceneNR11) { if (Actor_Query_Goal_Number(kActorSteele) != 210 || timer) { if (timer == 1) { int goal = Actor_Query_Goal_Number(kActorSteele); AI_Countdown_Timer_Reset(kActorSteele, 1); if (goal == 415) { Actor_Set_Goal_Number(kActorSteele, 416); } else if (goal == 416) { Actor_Set_Goal_Number(kActorSteele, 419); } } return; // false; } else { Actor_Set_Goal_Number(kActorSteele, 211); return; // true; } } else { Actor_Set_Goal_Number(kActorSteele, 212); return; // true; } } void AIScriptSteele::CompletedMovementTrack() { switch (Actor_Query_Goal_Number(kActorSteele)) { case 1: Actor_Set_Goal_Number(kActorSteele, 2); break; case 2: Actor_Set_Goal_Number(kActorSteele, 3); break; case 3: if (Random_Query(1, 3) == 1) { Actor_Clues_Transfer_New_To_Mainframe(kActorSteele); Actor_Clues_Transfer_New_From_Mainframe(kActorSteele); } if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele) && Query_Score(kActorMcCoy) < 75) Set_Score(kActorSteele, Random_Query(2, 5) + Query_Score(kActorMcCoy)); Actor_Set_Goal_Number(kActorSteele, 4); break; case 4: Actor_Set_Goal_Number(kActorSteele, 5); break; case 5: Actor_Set_Goal_Number(kActorSteele, 6); break; case 6: if (Random_Query(1, 3) == 1) { Actor_Clues_Transfer_New_To_Mainframe(kActorSteele); Actor_Clues_Transfer_New_From_Mainframe(kActorSteele); } if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele) && Query_Score(kActorMcCoy) < 75) Set_Score(kActorSteele, Random_Query(2, 5) + Query_Score(kActorMcCoy)); Actor_Set_Goal_Number(kActorSteele, 7); break; case 7: Actor_Set_Goal_Number(kActorSteele, 8); break; case 8: Actor_Set_Goal_Number(kActorSteele, 9); break; case 9: Actor_Set_Goal_Number(kActorSteele, 10); break; case 10: Actor_Set_Goal_Number(kActorSteele, 11); break; case 100: if (Actor_Query_Goal_Number(kActorSteele) == 100) { Player_Set_Combat_Mode(kActorMcCoy); if (Actor_Query_Goal_Number(kActorIzo) != 199) { if (Actor_Query_In_Between_Two_Actors(kActorMcCoy, kActorSteele, kActorIzo)) { Actor_Set_Goal_Number(kActorSteele, 125); } else if (Game_Flag_Query(44)) { Actor_Set_Goal_Number(kActorSteele, 120); } else { Actor_Set_Goal_Number(kActorSteele, 121); } } } break; case 111: Actor_Set_Goal_Number(kActorSteele, 112); break; case 113: Actor_Set_Goal_Number(kActorSteele, 190); break; case 241: Actor_Set_Goal_Number(kActorSteele, 242); break; case 423: case 424: case 425: case 426: case 427: case 428: case 429: case 430: case 431: Actor_Set_Goal_Number(kActorSteele, 423); break; case 432: Player_Set_Combat_Mode(kActorMcCoy); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Says(kActorMcCoy, 2265, 11); Actor_Says(kActorSteele, 640, 58); Actor_Says(kActorMcCoy, 2270, 12); Actor_Says(kActorSteele, 650, 59); Actor_Says(kActorMcCoy, 2275, 16); Actor_Says(kActorMcCoy, 2280, 15); Actor_Says(kActorSteele, 660, 60); Actor_Says(kActorSteele, 670, 59); Actor_Set_Goal_Number(kActorSteele, 433); Player_Set_Combat_Mode(kActorSteele); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, 0, 0, 0); Ambient_Sounds_Remove_All_Non_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1); Game_Flag_Set(578); Set_Enter(kSetKP07, kSetKP04); break; default: break; } return; //true; } void AIScriptSteele::ReceivedClue(int clueId, int fromActorId) { //return false; } void AIScriptSteele::ClickedByPlayer() { int goal = Actor_Query_Goal_Number(kActorSteele); if (goal == 599) { Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Says(kActorMcCoy, 8630, 14); return; //true; } if (goal > 399 || Global_Variable_Query(kVariableChapter) > 2) { return; //true; } if (goal - 241 <= 9) { if (goal == 241) { Actor_Set_Goal_Number(kActorSteele, 242); return; //true; } if (goal == 250) { return; //true; } } AI_Movement_Track_Pause(1); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); switch (Random_Query(1, 3)) { case 1: Actor_Says(kActorMcCoy, 3970, 15); Actor_Says(kActorSteele, 2700, 15); break; case 2: Actor_Says(kActorMcCoy, 3970, 15); Actor_Says(kActorSteele, 2060, 15); break; case 3: Actor_Says(kActorMcCoy, 3970, 15); Actor_Says(kActorSteele, 1750, 15); break; } AI_Movement_Track_Unpause(1); return; //false; } void AIScriptSteele::EnteredScene(int sceneId) { if (Actor_Query_Goal_Number(kActorSteele) == 2) { if (Game_Flag_Query(147) || Random_Query(1, 3) != 1) { if (Game_Flag_Query(148) || Random_Query(1, 3) != 1) { if (!Game_Flag_Query(149) && Random_Query(1, 20) == 1) { Actor_Clue_Acquire(kActorSteele, 7, 1, -1); Game_Flag_Set(149); if (Game_Flag_Query(709)) Item_Remove_From_World(98); } } else { Actor_Clue_Acquire(kActorSteele, 6, 1, -1); Game_Flag_Set(148); if (Game_Flag_Query(709)) Item_Remove_From_World(79); } } else { Actor_Clue_Acquire(kActorSteele, 8, 1, -1); Game_Flag_Set(147); if (Game_Flag_Query(709)) Item_Remove_From_World(82); Global_Variable_Increment(14, 1); } } if (Actor_Query_Goal_Number(kActorSteele) != 5 || !Actor_Query_In_Set(kActorSteele, kSetCT03_CT04) || Game_Flag_Query(169) != 1 || Game_Flag_Query(170) || Game_Flag_Query(171)) { return; //false; } Game_Flag_Set(171); return; //true; } void AIScriptSteele::OtherAgentEnteredThisScene(int otherActorId) { // return false; } void AIScriptSteele::OtherAgentExitedThisScene(int otherActorId) { // return false; } void AIScriptSteele::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) { if (!otherActorId && Actor_Query_Goal_Number(kActorSteele) == 410) Actor_Set_Goal_Number(kActorSteele, 418); } void AIScriptSteele::ShotAtAndMissed() { // return false; } bool AIScriptSteele::ShotAtAndHit() { if (Actor_Query_Goal_Number(kActorSteele) == 251) Actor_Set_Goal_Number(kActorSteele, 271); if (/* !a1 && */ Actor_Query_In_Set(kActorSteele, kSetHF06)) Non_Player_Actor_Combat_Mode_On(kActorSteele, kActorCombatStateUncover, true, kActorMcCoy, 15, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 25, 300, false); return false; } void AIScriptSteele::Retired(int byActorId) { Game_Flag_Set(646); if (Actor_Query_Goal_Number(kActorSteele) == 450) { Scene_Exits_Enable(); Game_Flag_Set(484); } if (Actor_Query_Goal_Number(kActorSteele) != 599) { Actor_Change_Animation_Mode(kActorSteele, 49); Actor_Set_Goal_Number(kActorSteele, 599); } } int AIScriptSteele::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueId) { if (otherActorId != kActorMcCoy) return 0; switch (clueId) { case 202: case 223: case 224: case 226: case 227: case 228: case 231: case 241: case 242: return 5; case 212: case 221: case 230: return 0; case 215: return -4; case 216: case 217: case 218: case 219: case 220: return -5; case 222: return 4; case 239: return -3; case 240: return -2; } return 0; } double AIScriptSteele::comp_distance(int actorId, float a5, float a6, int a1, float a2, float a3, float a4) { float actorZ; float actorX; float actorY; Actor_Query_XYZ(actorId, &actorX, &actorY, &actorZ); return sqrt((a4 - actorZ) * (a4 - actorZ) + (a2 - actorX) * (a2 - actorX) + (a3 - actorY) * (a3 - actorY)); } bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) { if (currentGoalNumber == 599) return false; switch (newGoalNumber) { case 1: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append(kActorSteele, 12, 5); AI_Movement_Track_Repeat(kActorSteele); return true; case 2: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append(kActorSteele, 61, 30); AI_Movement_Track_Repeat(kActorSteele); return true; case 3: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append(kActorSteele, 35, 45); AI_Movement_Track_Repeat(kActorSteele); return true; case 4: AI_Movement_Track_Flush(kActorSteele); Game_Flag_Set(184); Game_Flag_Reset(183); AI_Movement_Track_Append(kActorSteele, 39, 45); AI_Movement_Track_Repeat(kActorSteele); return true; case 5: AI_Movement_Track_Flush(kActorSteele); if (Random_Query(1, 10) == 1) { AI_Movement_Track_Append(kActorSteele, 63, 20); } else { AI_Movement_Track_Append(kActorSteele, 64, 10); } AI_Movement_Track_Repeat(kActorSteele); return true; case 6: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append(kActorSteele, 35, 45); AI_Movement_Track_Repeat(kActorSteele); return true; case 7: AI_Movement_Track_Flush(kActorSteele); Game_Flag_Set(185); Game_Flag_Reset(184); AI_Movement_Track_Append(kActorSteele, 39, 45); AI_Movement_Track_Repeat(kActorSteele); return true; case 8: AI_Movement_Track_Flush(kActorSteele); if (Random_Query(1, 2) == 1) { AI_Movement_Track_Append(kActorSteele, 19, 10); } else { AI_Movement_Track_Append(kActorSteele, 35, 30); } AI_Movement_Track_Repeat(kActorSteele); return true; case 9: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append(kActorSteele, 62, 1); AI_Movement_Track_Repeat(kActorSteele); return true; case 10: AI_Movement_Track_Flush(kActorSteele); Game_Flag_Reset(185); AI_Movement_Track_Append(kActorSteele, 39, 30); AI_Movement_Track_Repeat(kActorSteele); return true; case 11: Actor_Clue_Acquire(kActorSteele, kClueGrigorianInterviewA, 1, kActorGrigorian); if (Game_Flag_Query(44)) { Actor_Clue_Acquire(kActorSteele, kClueGrigorianInterviewB1, 1, kActorGrigorian); } else { Actor_Clue_Acquire(kActorSteele, kClueGrigorianInterviewB2, 1, kActorGrigorian); } Actor_Set_Goal_Number(kActorSteele, 0); return true; case 100: AI_Movement_Track_Flush(kActorSteele); if (Game_Flag_Query(44)) { AI_Movement_Track_Append_Run(kActorSteele, 202, 0); AI_Movement_Track_Append_Run(kActorSteele, 203, 0); } else { AI_Movement_Track_Append(kActorSteele, 174, 0); AI_Movement_Track_Append_Run(kActorSteele, 175, 0); } AI_Movement_Track_Repeat(kActorSteele); return true; case 110: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append(kActorSteele, 192, 0); AI_Movement_Track_Repeat(kActorSteele); return true; case 111: Loop_Actor_Walk_To_XYZ(kActorSteele, -187.82f, 0.08f, 1460.74f, 0, 0, 0, 0); Actor_Face_Heading(kActorSteele, 802, 0); Loop_Actor_Travel_Stairs(kActorSteele, 10, 0, 0); AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append(kActorSteele, 35, 0); AI_Movement_Track_Repeat(kActorSteele); return true; case 112: if (Random_Query(1, 2) == 1) { Actor_Clues_Transfer_New_To_Mainframe(kActorSteele); Actor_Clues_Transfer_New_From_Mainframe(kActorSteele); } if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele) && Query_Score(kActorMcCoy) < 75) { Set_Score(kActorSteele, Random_Query(2, 5) + Query_Score(kActorMcCoy)); } AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append(kActorSteele, 35, Random_Query(45, 120)); AI_Movement_Track_Repeat(kActorSteele); return true; case 113: AI_Movement_Track_Flush(kActorSteele); if (Random_Query(1, 5) == 1) { AI_Movement_Track_Append(kActorSteele, 222, 0); AI_Movement_Track_Append_With_Facing(kActorSteele, 223, 3, 973); AI_Movement_Track_Append(kActorSteele, 224, 5); AI_Movement_Track_Append(kActorSteele, 216, 5); AI_Movement_Track_Append(kActorSteele, 217, 0); AI_Movement_Track_Append(kActorSteele, 218, 0); AI_Movement_Track_Append(kActorSteele, 210, 0); AI_Movement_Track_Append(kActorSteele, 211, 0); AI_Movement_Track_Append(kActorSteele, 204, 0); AI_Movement_Track_Append(kActorSteele, 205, 0); AI_Movement_Track_Append(kActorSteele, 206, 0); AI_Movement_Track_Append(kActorSteele, 39, 20); AI_Movement_Track_Append(kActorSteele, 35, 60); AI_Movement_Track_Append(kActorSteele, 39, 20); AI_Movement_Track_Append(kActorSteele, 228, 0); AI_Movement_Track_Append(kActorSteele, 229, 10); AI_Movement_Track_Repeat(kActorSteele); } else { if (Random_Query(1, 3) == 1) { AI_Movement_Track_Append(kActorSteele, 232, 0); AI_Movement_Track_Append(kActorSteele, 233, 0); AI_Movement_Track_Append(kActorSteele, 234, 3); AI_Movement_Track_Append(kActorSteele, 237, 0); AI_Movement_Track_Append(kActorSteele, 238, 0); AI_Movement_Track_Append(kActorSteele, 239, 0); AI_Movement_Track_Append(kActorSteele, 240, 10); AI_Movement_Track_Append(kActorSteele, 39, 120); AI_Movement_Track_Append(kActorSteele, 243, 0); AI_Movement_Track_Append(kActorSteele, 244, 10); } else { AI_Movement_Track_Append(kActorSteele, 248, 0); AI_Movement_Track_Append(kActorSteele, 249, 0); AI_Movement_Track_Append(kActorSteele, 250, 10); AI_Movement_Track_Append(kActorSteele, 253, 0); AI_Movement_Track_Append_With_Facing(kActorSteele, 254, 3, 1015); AI_Movement_Track_Append_With_Facing(kActorSteele, 255, 2, 1015); AI_Movement_Track_Append_With_Facing(kActorSteele, 256, 3, 1015); AI_Movement_Track_Append(kActorSteele, 257, 0); AI_Movement_Track_Append(kActorSteele, 39, 30); AI_Movement_Track_Append(kActorSteele, 35, 120); AI_Movement_Track_Append(kActorSteele, 39, 30); } AI_Movement_Track_Repeat(kActorSteele); } return true; case 120: Actor_Force_Stop_Walking(kActorMcCoy); Sound_Play(27, 100, 0, 0, 50); Actor_Set_Goal_Number(kActorIzo, 199); Actor_Change_Animation_Mode(kActorMcCoy, 0); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Loop_Actor_Walk_To_Actor(kActorSteele, 0, 48, 0, 1); Actor_Says(kActorSteele, 1860, 3); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Says(kActorMcCoy, 4825, 18); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 1870, 3); Actor_Says(kActorSteele, 1880, 3); Actor_Says(kActorMcCoy, 4830, 13); Actor_Says(kActorSteele, 1890, 3); Actor_Says(kActorSteele, 1900, 3); Actor_Face_Actor(kActorSteele, kActorIzo, 1); Actor_Says(kActorSteele, 1910, 3); Actor_Says(kActorSteele, 1920, 3); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 1930, 3); Actor_Set_Goal_Number(kActorSteele, 130); Player_Gains_Control(); return true; case 121: Actor_Force_Stop_Walking(kActorMcCoy); Actor_Face_Actor(kActorSteele, kActorIzo, 1); Actor_Change_Animation_Mode(kActorIzo, 0); Actor_Face_Actor(kActorIzo, kActorSteele, 1); Actor_Says_With_Pause(kActorSteele, 2010, 0.0, 4); Actor_Change_Animation_Mode(kActorSteele, 4); Loop_Actor_Walk_To_Actor(kActorSteele, kActorIzo, 60, 0, 0); Actor_Change_Animation_Mode(kActorSteele, 4); _animationState = 23; _animationFrame = 0; Actor_Says(kActorIzo, 660, 3); Actor_Says_With_Pause(kActorSteele, 2020, 0.0f, 4); Actor_Says_With_Pause(kActorSteele, 2030, 0.0f, 4); Actor_Change_Animation_Mode(kActorSteele, 4); Actor_Says(kActorIzo, 670, 3); Actor_Says(kActorSteele, 2040, 4); Actor_Says(kActorIzo, 680, 3); Actor_Says(kActorSteele, 2050, 3); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 2060, 3); Actor_Says(kActorMcCoy, 4845, 3); Actor_Says(kActorSteele, 2070, 3); Actor_Says(kActorSteele, 2080, 3); Actor_Face_Actor(kActorSteele, kActorIzo, 1); Actor_Says(kActorSteele, 2090, 3); Actor_Says_With_Pause(kActorSteele, 2100, 1.0f, 3); Actor_Says(kActorIzo, 690, 3); Actor_Says(kActorSteele, 2110, 3); Actor_Says(kActorSteele, 2120, 3); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 2140, 3); Actor_Says(kActorMcCoy, 4850, 3); Actor_Says(kActorSteele, 2150, 3); Actor_Set_Goal_Number(kActorIzo, 120); Actor_Set_Goal_Number(kActorSteele, 130); Actor_Set_Goal_Number(kActorSteele, 0); return true; case 125: Actor_Force_Stop_Walking(kActorMcCoy); Actor_Set_Goal_Number(kActorIzo, 114); Actor_Says(kActorSteele, 1940, 3); Loop_Actor_Walk_To_Actor(kActorSteele, 0, 60, 0, 1); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Says(kActorSteele, 1950, 3); Actor_Says(kActorMcCoy, 4835, 14); Actor_Says(kActorSteele, 1980, 3); Actor_Says(kActorMcCoy, 4840, 15); Actor_Says(kActorSteele, 1990, 3); Actor_Says(kActorSteele, 2000, 3); Actor_Set_Goal_Number(kActorSteele, 130); Scene_Exits_Enable(); return true; case 126: return true; case 130: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append(kActorSteele, 174, 0); AI_Movement_Track_Append(kActorSteele, 35, 0); AI_Movement_Track_Repeat(kActorSteele); return true; case 200: AI_Movement_Track_Flush(kActorSteele); return true; case 205: if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele) && Query_Score(kActorMcCoy) < 75) { Set_Score(kActorSteele, Random_Query(2, 5) + Query_Score(kActorMcCoy)); } if (Game_Flag_Query(702)) { Game_Flag_Set(643); } AI_Movement_Track_Flush(kActorSteele); Actor_Put_In_Set(kActorSteele, kSetFreeSlotC); Actor_Set_At_Waypoint(kActorSteele, 35, 0); return true; case 210: AI_Countdown_Timer_Reset(kActorSteele, 0); AI_Countdown_Timer_Start(kActorSteele, 0, 15); return true; case 211: AI_Countdown_Timer_Reset(kActorSteele, 0); return true; case 212: if (comp_distance(kActorMcCoy, -4.0, 0.33f, 0.0f, 100.0f, 0.33f, -4.0f) < 48.0f) { Loop_Actor_Walk_To_XYZ(0, 32.0f, 0.33f, 17.0f, 0, 0, 0, 0); } AI_Countdown_Timer_Reset(kActorSteele, 0); Player_Loses_Control(); if (Actor_Query_Goal_Number(kActorDektora) == 250) { Async_Actor_Walk_To_XYZ(kActorMcCoy, -15.53f, 0.33f, 73.49f, 0, 0); } Actor_Put_In_Set(kActorSteele, kSetNR11); Actor_Set_At_XYZ(kActorSteele, 100.0f, -51.56f, 0.0, 0); _animationState = 10; _animationFrame = 0; return true; case 213: case 216: case 271: return true; case 214: Player_Gains_Control(); switch (Actor_Query_Goal_Number(kActorDektora)) { case 250: Actor_Face_Heading(kActorMcCoy, 954, 0); Actor_Change_Animation_Mode(kActorSteele, 4); Delay(2000); Actor_Says(kActorSteele, 1700, 58); Actor_Says(kActorMcCoy, 3800, 3); Actor_Says(kActorSteele, 1710, 59); Actor_Set_Goal_Number(kActorSteele, 215); break; case 260: Actor_Face_Actor(kActorSteele, kActorDektora, 1); Actor_Says(kActorSteele, 1790, 3); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorMcCoy, 3830, 17); Actor_Says(kActorSteele, 1800, 17); Actor_Says(kActorMcCoy, 3835, 18); Actor_Says(kActorSteele, 1810, 16); Game_Flag_Set(591); Actor_Set_Goal_Number(kActorDektora, 599); Actor_Set_Goal_Number(kActorSteele, 275); break; case 274: Actor_Modify_Friendliness_To_Other(kActorSteele, kActorMcCoy, 6); Actor_Says(kActorSteele, 1750, 12); Actor_Says(kActorMcCoy, 3815, 19); Actor_Says(kActorSteele, 1760, 13); Actor_Says(kActorMcCoy, 3820, 18); Actor_Says(kActorSteele, 1770, 14); Actor_Says(kActorSteele, 1780, 15); Actor_Says(kActorMcCoy, 3825, 14); Game_Flag_Set(591); Actor_Set_Goal_Number(kActorDektora, 599); Actor_Set_Goal_Number(kActorSteele, 275); } return true; case 215: Game_Flag_Set(635); Actor_Change_Animation_Mode(kActorSteele, 6); Scene_Exits_Disable(); return true; case 230: AI_Movement_Track_Flush(kActorSteele); Actor_Put_In_Set(kActorSteele, kSetNR01); Actor_Set_At_XYZ(kActorSteele, 94.03f, 23.88f, -794.46f, 685); return true; case 231: AI_Movement_Track_Flush(kActorSteele); Actor_Put_In_Set(kActorSteele, kSetNR05_NR08); Actor_Set_At_XYZ(kActorSteele, -1034.09f, 0.32f, 224.77f, 440); Game_Flag_Set(722); Set_Enter(kSetNR05_NR08, kSetPS01); return true; case 232: Game_Flag_Set(532); Set_Enter(kSetNR02, kSetNR03); return true; case 233: Game_Flag_Set(310); Game_Flag_Reset(181); Game_Flag_Set(257); Actor_Put_In_Set(kActorSteele, kSetHF03); Actor_Set_At_XYZ(kActorSteele, 291.0f, 47.76f, -892.0f, 453); Set_Enter(kSetHF03, kSetDR06); return true; case 234: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append_Run(kActorSteele, 372, 0); AI_Movement_Track_Append(kActorSteele, 35, 0); AI_Movement_Track_Repeat(kActorSteele); return true; case 235: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append_Run(kActorSteele, 467, 0); AI_Movement_Track_Append(kActorSteele, 35, 0); AI_Movement_Track_Repeat(kActorSteele); return true; case 236: Actor_Put_In_Set(kActorSteele, kSetNR10); Actor_Set_At_XYZ(kActorSteele, -118.13f, 2.84f, -197.90f, 305); return true; case 240: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Flush(kActorLucy); Actor_Put_In_Set(kActorSteele, kSetHF02); Actor_Set_At_XYZ(kActorSteele, 254.94f, 47.76f, -262.58f, 210); Actor_Put_In_Set(kActorLucy, kSetHF02); Actor_Set_At_XYZ(kActorLucy, 596.49f, 47.76f, -260.04f, 731); return true; case 241: Actor_Change_Animation_Mode(kActorSteele, 6); Delay(500); Actor_Change_Animation_Mode(kActorLucy, 48); Actor_Set_Targetable(kActorLucy, 0); Actor_Retired_Here(kActorLucy, 36, 18, 1, -1); Delay(1000); AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append_Run(kActorSteele, 380, 0); AI_Movement_Track_Repeat(kActorSteele); Delay(500); ADQ_Add(6, 340, 48); return true; case 242: AI_Movement_Track_Flush(kActorSteele); Player_Loses_Control(); Delay(500); Actor_Says(kActorSteele, 0, 14); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Says(kActorMcCoy, 1540, 16); Actor_Says(kActorSteele, 10, 13); Actor_Says(kActorSteele, 20, 18); Actor_Says(kActorMcCoy, 1545, 13); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 30, 18); Actor_Says(kActorSteele, 40, 18); Actor_Says(kActorMcCoy, 1550, 13); Actor_Face_Actor(kActorSteele, kActorLucy, 1); Actor_Says(kActorSteele, 50, 12); Actor_Says(kActorMcCoy, 1555, 13); Actor_Says(kActorSteele, 60, 12); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 80, 16); Actor_Says(kActorMcCoy, 1560, 13); Delay(500); Game_Flag_Set(617); Player_Gains_Control(); if (Game_Flag_Query(255)) { Actor_Put_In_Set(kActorSteele, kSetNR01); Actor_Set_At_XYZ(kActorSteele, 12.17f, 23.88f, -533.37f, 674); Game_Flag_Reset(255); Game_Flag_Reset(256); Set_Enter(kSetNR01, kSetNR01); } else { Actor_Put_In_Set(kActorSteele, kSetHF01); Actor_Set_At_XYZ(kActorSteele, 324.32f, 8.0f, -465.87f, 674); Game_Flag_Reset(255); Game_Flag_Reset(256); Set_Enter(kSetHF01, kSetDR03); } return true; case 243: Player_Loses_Control(); Delay(500); Actor_Put_In_Set(kActorSteele, kSetHF02); Actor_Set_At_XYZ(kActorSteele, 254.94f, 47.76f, -262.58f, 210); return true; case 244: Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Says(kActorMcCoy, 1560, 14); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 100, 13); Actor_Says(kActorMcCoy, 1575, 13); Actor_Says(kActorSteele, 120, 15); Actor_Set_Goal_Number(kActorSteele, 246); return true; case 245: Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 150, 13); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Says(kActorMcCoy, 1580, 13); Actor_Says(kActorSteele, 160, 14); Actor_Says(kActorMcCoy, 1585, 16); Actor_Says(kActorSteele, 170, 16); Actor_Says(kActorSteele, 180, 17); Actor_Says(kActorMcCoy, 1590, 17); Actor_Says(kActorSteele, 200, 15); Actor_Set_Goal_Number(kActorSteele, 246); return true; case 246: Actor_Says(kActorSteele, 130, 13); Actor_Says(kActorSteele, 140, 13); Delay(500); Game_Flag_Set(617); Player_Gains_Control(); if (Game_Flag_Query(255)) { Actor_Put_In_Set(kActorSteele, kSetNR01); Actor_Set_At_XYZ(kActorSteele, 12.17f, 23.88f, -533.37f, 674); Game_Flag_Reset(255); Game_Flag_Reset(256); Set_Enter(kSetNR01, kSetNR01); } else { Actor_Put_In_Set(kActorSteele, kSetHF01); Actor_Set_At_XYZ(kActorSteele, 324.32f, 8.0f, -465.87f, 674); Game_Flag_Reset(255); Game_Flag_Reset(256); Set_Enter(kSetHF01, kSetDR03); } return true; case 250: AI_Movement_Track_Flush(kActorSteele); Actor_Put_In_Set(kActorSteele, kSetNR01); Actor_Set_At_XYZ(kActorSteele, 94.03f, 23.88f, -794.46f, 685); if (Game_Flag_Query(255)) { Game_Flag_Reset(255); Game_Flag_Reset(256); } Game_Flag_Set(603); Actor_Change_Animation_Mode(kActorSteele, 0); _var1 = 3; return true; case 251: Actor_Set_Targetable(kActorSteele, 1); return true; case 252: Player_Loses_Control(); Actor_Change_Animation_Mode(kActorSteele, 6); Sound_Play(27, 100, 0, 0, 50); Game_Flag_Reset(603); Actor_Set_Targetable(kActorSteele, 0); Actor_Set_Goal_Number(kActorGordo, 299); Delay(1500); Player_Set_Combat_Mode(0); Actor_Says(kActorSteele, 1070, 14); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 1260, 16); Actor_Says(kActorSteele, 1270, 13); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Says(kActorMcCoy, 3065, 18); Actor_Says(kActorSteele, 1280, 13); Actor_Says(kActorSteele, 1290, 13); Game_Flag_Set(592); Player_Gains_Control(); if (Game_Flag_Query(256)) { Actor_Put_In_Set(kActorSteele, kSetHF01); Actor_Set_At_XYZ(kActorSteele, 324.32f, 8.0f, -465.87f, 674); Game_Flag_Set(617); Game_Flag_Reset(255); Game_Flag_Reset(256); Set_Enter(kSetHF01, kSetDR03); } else { Actor_Set_Goal_Number(kActorSteele, 280); } return true; case 255: ADQ_Flush(); Actor_Change_Animation_Mode(kActorSteele, 6); Sound_Play(27, 100, 0, 0, 50); Actor_Force_Stop_Walking(kActorMcCoy); Actor_Change_Animation_Mode(kActorMcCoy, 48); Actor_Retired_Here(kActorMcCoy, 12, 12, 1, -1); Actor_Set_Goal_Number(kActorGordo, 251); Actor_Says(kActorSteele, 1250, 3); return true; case 258: Game_Flag_Reset(603); ADQ_Flush(); Game_Flag_Set(592); Actor_Set_Targetable(kActorSteele, 0); Delay(1000); Player_Set_Combat_Mode(0); Player_Loses_Control(); _animationState = 40; _animationFrame = 0; Delay(2000); Actor_Change_Animation_Mode(kActorSteele, 0); Actor_Change_Animation_Mode(kActorMcCoy, 0); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 1080, 17); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Says(kActorMcCoy, 3025, 14); Actor_Says(kActorSteele, 1090, 16); Actor_Face_Actor(kActorSteele, kActorGordo, 1); Actor_Says(kActorSteele, 1100, 13); Actor_Says(kActorSteele, 1110, 17); Actor_Says(kActorMcCoy, 3030, 19); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 1130, 15); Actor_Says(kActorSteele, 1140, 12); Player_Gains_Control(); Actor_Set_Goal_Number(kActorSteele, 280); return true; case 260: ADQ_Flush(); Actor_Change_Animation_Mode(kActorMcCoy, 6); Sound_Play(27, 100, 0, 0, 50); _animationState = 38; _animationFrame = 0; Actor_Set_Goal_Number(kActorGordo, 251); Game_Flag_Reset(603); Game_Flag_Set(592); Actor_Set_Targetable(kActorSteele, 0); Player_Loses_Control(); return true; case 262: Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 1160, 15); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Says(kActorMcCoy, 3035, 14); Actor_Says(kActorSteele, 1170, 16); Actor_Says(kActorMcCoy, 3040, 15); Actor_Says(kActorSteele, 1180, 16); Actor_Says(kActorMcCoy, 3045, 15); Actor_Says(kActorMcCoy, 3055, 15); Actor_Says(kActorSteele, 1190, 16); Actor_Says(kActorMcCoy, 3060, 15); Actor_Says(kActorSteele, 1200, 16); Actor_Says(kActorSteele, 1210, 14); Actor_Modify_Friendliness_To_Other(kActorSteele, kActorMcCoy, -5); Actor_Modify_Friendliness_To_Other(kActorClovis, kActorMcCoy, 2); Player_Set_Combat_Mode(0); Music_Stop(2); Player_Gains_Control(); Actor_Set_Goal_Number(kActorSteele, 280); return true; case 270: ADQ_Flush(); Player_Loses_Control(); Game_Flag_Reset(603); Actor_Set_Targetable(kActorSteele, 0); Actor_Set_Goal_Number(kActorGordo, 251); Actor_Start_Speech_Sample(kActorSteele, 1150); Actor_Change_Animation_Mode(kActorSteele, 49); Delay(5000); Actor_Set_Goal_Number(kActorMcCoy, 500); return true; case 275: Delay(500); Game_Flag_Set(617); Player_Gains_Control(); if (Game_Flag_Query(255)) { Actor_Put_In_Set(kActorSteele, kSetNR01); Actor_Set_At_XYZ(kActorSteele, 12.17f, 23.88f, -533.37f, 674); Game_Flag_Reset(255); Game_Flag_Reset(256); Set_Enter(kSetNR01, kSetNR01); } else { Actor_Put_In_Set(kActorSteele, kSetHF01); Actor_Set_At_XYZ(kActorSteele, 324.32f, 8.0f, -465.87f, 674); Game_Flag_Reset(255); Game_Flag_Reset(256); Set_Enter(kSetHF01, kSetDR03); } return true; case 280: Actor_Says(kActorMcCoy, 2970, 15); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 840, 16); Actor_Says(kActorMcCoy, 2975, 15); Actor_Says(kActorSteele, 850, 16); Actor_Says(kActorDispatcher, 0, 3); Actor_Says(kActorDispatcher, 10, 3); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Says(kActorMcCoy, 2980, 12); Actor_Says(kActorSteele, 860, 14); Actor_Says(kActorMcCoy, 2985, 13); Actor_Says(kActorSteele, 870, 15); Actor_Says(kActorMcCoy, 2990, 16); Actor_Says(kActorSteele, 880, 17); Actor_Says(kActorSteele, 890, 18); Actor_Says(kActorMcCoy, 2995, 12); Actor_Says(kActorSteele, 900, 13); Actor_Says(kActorMcCoy, 3000, 13); Actor_Says(kActorSteele, 920, 12); Actor_Says(kActorDispatcher, 30, 3); Actor_Says(kActorMcCoy, 3005, 14); Actor_Says(kActorSteele, 930, 16); Actor_Says(kActorSteele, 950, 13); Actor_Says(kActorMcCoy, 3010, 15); Actor_Says(kActorSteele, 960, 15); Actor_Says(kActorSteele, 970, 13); Actor_Says(kActorMcCoy, 3015, 12); Actor_Says(kActorSteele, 980, 17); if (Player_Query_Current_Scene() == 54) { Actor_Set_Goal_Number(kActorSteele, 290); } else { Actor_Set_Goal_Number(kActorSteele, 291); } return true; case 285: Actor_Set_Goal_Number(kActorSteele, 290); return true; case 290: Loop_Actor_Walk_To_XYZ(kActorMcCoy, -281.0f, 31.93f, -1061.0f, 0, 0, 1, 0); Actor_Face_Heading(kActorMcCoy, 45, 0); Loop_Actor_Travel_Stairs(kActorMcCoy, 3, 0, 0); Global_Variable_Set(1, 4); Scene_Exits_Enable(); Actor_Set_Health(kActorMcCoy, 50, 50); Game_Flag_Set(523); Game_Flag_Set(343); Game_Flag_Set(680); Chapter_Enter(4, 79, 91); return true; case 291: Game_Flag_Set(722); Global_Variable_Set(1, 4); Scene_Exits_Enable(); Game_Flag_Set(523); Game_Flag_Set(680); Chapter_Enter(4, 79, 91); return true; case 300: if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele) && Query_Score(kActorMcCoy) < 75) { Set_Score(kActorSteele, Random_Query(2, 5) + Query_Score(kActorMcCoy)); } if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele) && Query_Score(kActorMcCoy) > 74) { Actor_Modify_Friendliness_To_Other(kActorSteele, kActorMcCoy, 3); } Actor_Set_Goal_Number(kActorSteele, 305); return true; case 305: Actor_Put_In_Set(kActorSteele, kSetFreeSlotC); Actor_Set_At_Waypoint(kActorSteele, 35, 0); return true; case 400: case 401: case 423: return true; case 410: Actor_Set_Targetable(kActorSteele, 1); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Start_Speech_Sample(kActorSteele, 2510); Actor_Change_Animation_Mode(kActorSteele, 4); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Delay(3000); Async_Actor_Walk_To_XYZ(kActorSteele, -109.0f, -36.55f, 26.0f, 0, 0); return true; case 411: Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); Actor_Says(kActorSteele, 430, 14); Actor_Change_Animation_Mode(kActorSteele, 4); Delay(4000); Async_Actor_Walk_To_XYZ(kActorSteele, -109.0f, -36.55f, 26.0f, 0, 0); return true; case 412: Actor_Force_Stop_Walking(kActorSteele); return true; case 413: Async_Actor_Walk_To_XYZ(kActorSteele, 1.0, -36.55f, 111.0f, 0, 0); return true; case 415: Actor_Force_Stop_Walking(kActorSteele); Actor_Change_Animation_Mode(kActorSteele, 51); AI_Countdown_Timer_Start(kActorSteele, 1, 2); return true; case 416: Actor_Set_At_XYZ(kActorSteele, -48.83f, -36.55f, 69.98f, 280); Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorSteele, 36, 0, 1); Actor_Face_Actor(kActorMcCoy, kActorSteele, 1); if (Game_Flag_Query(653) == 1) { Actor_Says(kActorSteele, 400, 3); Actor_Says(kActorMcCoy, 2165, 14); Actor_Says(kActorSteele, 410, 3); Actor_Says(kActorMcCoy, 2170, 14); Actor_Says(kActorSteele, 420, 3); } else { Actor_Says(kActorSteele, 440, 3); Actor_Says(kActorMcCoy, 2175, 14); Actor_Says(kActorSteele, 450, 3); Actor_Says(kActorSteele, 460, 3); Actor_Says(kActorSteele, 470, 3); } AI_Countdown_Timer_Start(kActorSteele, 1, 3); return true; case 418: Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Change_Animation_Mode(kActorSteele, 6); Actor_Change_Animation_Mode(kActorMcCoy, 48); Actor_Retired_Here(kActorMcCoy, 72, 18, 1, -1); return true; case 419: Actor_Set_Targetable(kActorSteele, 0); Game_Flag_Set(646); Actor_Set_Goal_Number(kActorSteele, 599); Actor_Retired_Here(kActorSteele, 60, 12, 1, -1); return true; case 420: Actor_Put_In_Set(kActorSteele, kSetKP01); Actor_Set_At_XYZ(kActorSteele, 20.0f, -12.2f, -97.0f, 907); Actor_Change_Animation_Mode(kActorSteele, 43); return true; case 421: Game_Flag_Reset(482); Delay(2000); Actor_Face_Actor(kActorSteele, kActorMcCoy, 1); Actor_Says(kActorSteele, 360, -1); Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorSteele, 48, 0, 0); Actor_Says(kActorMcCoy, 2150, 14); Actor_Says(kActorSteele, 370, 15); Actor_Says(kActorMcCoy, 2155, 12); Actor_Says(kActorSteele, 380, 16); Actor_Says(kActorMcCoy, 2160, 18); Actor_Says(kActorSteele, 390, 13); Actor_Set_Goal_Number(kActorSteele, 422); return true; case 422: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append(kActorSteele, 530, 0); AI_Movement_Track_Repeat(kActorSteele); return true; case 430: Actor_Put_In_Set(kActorSteele, kSetKP05_KP06); Actor_Set_At_XYZ(kActorSteele, -1110.0f, 0.0f, 952.0f, 155); Actor_Change_Animation_Mode(kActorSteele, 4); return true; case 431: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append_Run(kActorSteele, 541, 0); AI_Movement_Track_Repeat(kActorSteele); return true; case 432: Actor_Set_At_Waypoint(kActorSteele, 542, 0); AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append_Run(kActorSteele, 543, 0); AI_Movement_Track_Repeat(kActorSteele); return true; case 433: AI_Movement_Track_Flush(kActorSteele); AI_Movement_Track_Append_Run(kActorSteele, 542, 0); AI_Movement_Track_Repeat(kActorSteele); return true; case 450: Actor_Put_In_Set(kActorSteele, kSetKP05_KP06); Actor_Set_At_XYZ(kActorSteele, -947.39f, 0.0f, 728.89f, 0); return true; case 499: AI_Movement_Track_Flush(kActorSteele); Actor_Put_In_Set(kActorSteele, kSetKP05_KP06); Actor_Set_At_XYZ(kActorSteele, -782.15f, 8.26f, -263.64f, 52); return true; default: return false; } } bool AIScriptSteele::UpdateAnimation(int *animation, int *frame) { switch (_animationState) { case 0: if (_var1 <= 3) { if (_var1) { if (_var1 == 1) { Game_Flag_Set(482); _animationState = 41; _var1 = 1; _var2 = 0; } else if (_var1 == 3) { *animation = 88; _animationFrame++; if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(88) - 1) _animationFrame = 0; } } else { *animation = 74; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(74)) { _animationFrame = 0; if (Game_Flag_Query(482) == 1) { _animationState = 41; _var1 = 1; _var2 = 0; } } } } break; case 1: _animationFrame = 0; *animation = _animationNext; _animationState = _animationStateNext; break; case 2: *animation = 67; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(67)) _animationFrame = 0; break; case 3: *animation = 68; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(68)) _animationFrame = 0; break; case 4: *animation = 59; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(59)) { _animationFrame = 0; } break; case 5: *animation = 60; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(60)) { _animationFrame = 0; } break; case 6: *animation = 69; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(69)) { _animationFrame = 0; } break; case 7: *animation = 70; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(70)) { _animationFrame = 0; } break; case 8: *animation = 62; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(62)) { _animationFrame = 0; } break; case 9: *animation = 63; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(63)) { _animationFrame = 0; } break; case 10: *animation = 83; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(83)) { Actor_Change_Animation_Mode(kActorSteele, 0); *animation = 74; _animationFrame = 0; _animationState = 0; if (Actor_Query_Goal_Number(kActorSteele) == 212) { Actor_Set_Goal_Number(kActorSteele, 213); } } break; case 11: *animation = 84; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(84)) { _animationFrame = 0; } break; case 12: *animation = 85; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(85)) { _animationFrame = 0; } break; case 13: *animation = 86; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(86)) { _animationFrame = 0; _animationState = 0; } break; case 14: *animation = 77; if (!_animationFrame && _flag) { *animation = 74; _animationFrame = 0; _animationState = 0; _flag = 0; } else { _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(77) - 1) { _animationFrame = 0; } } break; case 15: *animation = 78; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(78) - 1) { _animationFrame = 0; _animationState = 14; *animation = 77; } break; case 16: *animation = 79; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(79) - 1) { _animationFrame = 0; _animationState = 14; *animation = 77; } break; case 17: *animation = 80; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(80) - 1) { _animationFrame = 0; _animationState = 14; *animation = 77; } break; case 18: *animation = 81; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(81) - 1) { _animationFrame = 0; _animationState = 14; *animation = 77; } break; case 19: *animation = 81; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(81) - 1) { _animationFrame = 0; _animationState = 14; *animation = 77; } break; case 20: *animation = 82; if (!_animationFrame && _flag) { _animationFrame = 0; _animationState = 23; *animation = 66; Actor_Change_Animation_Mode(kActorSteele, 4); _flag = 0; } else { _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(82) - 1) { _animationFrame = 0; } } break; case 21: *animation = 82; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(82) - 1) { _animationFrame = 0; _animationState = 20; *animation = 82; } break; case 22: *animation = 82; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(82) - 1) { _animationFrame = 0; _animationState = 20; *animation = 82; } break; case 23: *animation = 54; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(54) - 1) { _animationFrame = 0; } break; case 24: *animation = 65; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(65) - 1) { *animation = 74; _animationFrame = 0; _animationState = 0; } break; case 25: *animation = 64; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(64) - 1) { _animationFrame = 0; _animationState = 23; *animation = 54; } break; case 26: *animation = 66; _animationFrame++; if (_animationFrame == 3) { int snd; if (Random_Query(1, 2) == 1) { snd = 9010; } else { snd = 9015; } Sound_Play_Speech_Line(1, snd, 75, 0, 99); } if (_animationFrame == 4) Actor_Combat_AI_Hit_Attempt(1); if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(66) - 1) { _animationFrame = 0; _animationState = 23; *animation = 54; Actor_Change_Animation_Mode(kActorSteele, 4); if (Actor_Query_Goal_Number(kActorSteele) == 215) { Actor_Change_Animation_Mode(kActorSteele, 6); _animationState = 26; _animationFrame = 0; *animation = 66; } } break; case 27: *animation = 55; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(55) - 1) { _animationFrame = 0; _animationState = 23; *animation = 54; Actor_Change_Animation_Mode(kActorSteele, 4); } break; case 28: *animation = 56; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(56) - 1) { _animationFrame = 0; _animationState = 23; *animation = 54; Actor_Change_Animation_Mode(kActorSteele, 4); } break; case 29: *animation = 57; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(57) - 1) { _animationFrame = 0; _animationState = 23; *animation = 54; Actor_Change_Animation_Mode(kActorSteele, 4); } break; case 30: *animation = 58; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(58) - 1) { _animationFrame = 0; _animationState = 23; *animation = 54; Actor_Change_Animation_Mode(kActorSteele, 4); } break; case 31: *animation = 71; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(71) - 1) { *animation = 74; _animationFrame = 0; _animationState = 0; Actor_Change_Animation_Mode(kActorSteele, 0); } break; case 32: *animation = 72; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(72) - 1) { *animation = 74; _animationFrame = 0; _animationState = 0; Actor_Change_Animation_Mode(kActorSteele, 0); } break; case 33: *animation = 61; if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(61) - 1) _animationFrame++; break; case 34: *animation = 73; if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(73) - 1) _animationFrame++; break; case 35: *animation = 61; if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(61) - 1) _animationFrame++; break; case 36: *animation = 88; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(88) - 1) { _animationFrame = 0; } break; case 37: if (!_animationFrame && _flag) { _animationFrame = 0; _animationState = 0; _var1 = 3; _flag = 0; *animation = 89; } else { *animation = 89; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(89) - 1) { _animationFrame = 0; } } break; case 38: *animation = 90; _animationFrame++; if (_animationFrame > 5) { Actor_Change_Animation_Mode(kActorSteele, 0); _animationState = 0; _animationFrame = 0; *animation = 74; Actor_Set_Goal_Number(kActorSteele, 261); } break; case 39: *animation = 92; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(92) - 1) { _animationFrame = 0; _animationState = 36; *animation = 88; } break; case 40: *animation = 91; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(91) - 1) { *animation = 74; _animationFrame = 0; _animationState = 0; _var1 = 0; } break; case 41: if (_var1 > 3) { break; } if (_var1) { if (_var1 == 1) { *animation = 75; if (_var2) { _var2--; } else { if (++_animationFrame >= 6) { if (_animationFrame <= 9) { _var2 = Random_Query(1, 3); break; } } if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(75)) { _animationFrame = 0; if (Game_Flag_Query(482) == 1) { _var1 = 0; } else { _var1 = 3; } } } } else if (_var1 == 3) { *animation = 76; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(76) - 1) { _animationState = 0; _animationFrame = 0; _var1 = 0; Game_Flag_Reset(482); } } } else { *animation = 74; _animationFrame++; if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(74)) { _animationFrame = 0; if (Game_Flag_Query(482) == 1) { if (Random_Query(1, 3) == 1) { _var1 = 1; } } else { _var1 = 3; } } } break; default: *animation = 406; _animationFrame = 0; break; } *frame = _animationFrame; return true; } bool AIScriptSteele::ChangeAnimationMode(int mode) { switch (mode) { case 0: if (Game_Flag_Query(603)) { _var1 = 3; } else { _var1 = 0; } switch (_animationState) { case 0: case 24: case 34: case 35: case 41: return true; case 4: _animationState = 23; _animationFrame = 0; break; case 14: case 15: case 16: case 17: case 18: case 19: _flag = 1; break; case 20: case 21: case 22: case 37: _flag = 1; _animationState = 23; _animationFrame = 0; break; case 23: case 26: _animationState = 24; _animationFrame = 0; break; default: _animationFrame = 0; if (Game_Flag_Query(482) == 1) { _animationState = 41; _var1 = 1; } else { _animationState = 0; } break; } break; case 1: if ((_animationState != 4 && _animationState != 23 && _animationState != 25 && _animationState != 26) || _animationState > 26) { if (Actor_Query_Goal_Number(kActorSteele) != 100 && Actor_Query_Goal_Number(kActorSteele) != 121) { _animationState = 2; _animationFrame = 0; } else { _animationState = 4; _animationFrame = 0; } } else { _animationState = 4; _animationFrame = 0; } break; case 2: if (Actor_Query_Goal_Number(kActorSteele) != 100 && Actor_Query_Goal_Number(kActorSteele) != 121 && _animationState != 23) { _animationState = 3; _animationFrame = 0; } else { _animationState = 5; _animationFrame = 0; } break; case 3: if (_animationState != 35) { if (Game_Flag_Query(603)) { _animationState = 37; _animationFrame = 0; _flag = 0; } else { if (_animationState) { _animationState = 14; _animationFrame = 0; } else { _animationState = 1; _animationFrame = 0; _animationStateNext = 14; _animationNext = 77; } _flag = 0; } } break; case 4: if (_animationState) { if (_animationState > 25 || (_animationState != 23 && _animationState != 25)) { _animationState = 23; _animationFrame = 0; } } else { _animationState = 25; _animationFrame = 0; } break; case 6: if (Game_Flag_Query(603)) { _animationState = 39; } else { _animationState = 26; } _animationFrame = 0; break; case 7: _animationState = 4; _animationFrame = 0; break; case 8: _animationState = 5; _animationFrame = 0; break; case 12: if (_animationState) { _animationState = 15; _animationFrame = 0; } else { _animationState = 1; _animationFrame = 0; _animationStateNext = 15; _animationNext = 78; } _flag = 0; break; case 13: if (_animationState) { _animationState = 16; _animationFrame = 0; } else { _animationState = 1; _animationFrame = 0; _animationStateNext = 16; _animationNext = 79; } _flag = 0; break; case 14: if (_animationState) { _animationState = 17; _animationFrame = 0; } else { _animationState = 1; _animationFrame = 0; _animationStateNext = 17; _animationNext = 80; } _flag = 0; break; case 15: if (_animationState) { _animationState = 18; _animationFrame = 0; } else { _animationState = 1; _animationFrame = 0; _animationStateNext = 18; _animationNext = 81; } _flag = 0; break; case 16: if (_animationState) { _animationState = 19; _animationFrame = 0; } else { _animationState = 1; _animationFrame = 0; _animationStateNext = 19; _animationNext = 81; } _flag = 0; break; case 21: if (_animationState > 28) { if (Random_Query(0, 1)) { _animationState = 31; } else { _animationState = 32; } } else if (Random_Query(0, 1)) { _animationState = 29; } else { _animationState = 30; } _animationFrame = 0; break; case 22: if (Random_Query(0, 1)) { _animationState = 29; } else { _animationState = 30; } _animationFrame = 0; break; case 43: Game_Flag_Set(482); _animationState = 41; _animationFrame = 0; _var2 = 0; _var1 = 1; break; case 44: _animationState = 6; _animationFrame = 0; break; case 45: _animationState = 7; _animationFrame = 0; break; case 46: _animationState = 8; _animationFrame = 0; break; case 47: _animationState = 9; _animationFrame = 0; break; case 48: if (_animationState != 33 && _animationState != 34) { if (_animationState > 26 || (_animationState != 23 && _animationState != 25 && _animationState != 26)) { _animationState = 34; _animationFrame = 0; } else { _animationState = 33; _animationFrame = 0; } } break; case 49: if (_animationState != 33) { _animationState = 33; _animationFrame = 0; } break; case 51: _animationState = 35; _animationFrame = 0; break; case 58: _animationState = 20; _animationFrame = 0; _flag = 0; break; case 59: _animationState = 21; _animationFrame = 0; _flag = 0; break; case 60: _animationState = 22; _animationFrame = 0; _flag = 0; break; case 86: _animationState = 10; _animationFrame = 0; break; } return true; } void AIScriptSteele::QueryAnimationState(int *animationState, int *animationFrame, int *animationStateNext, int *animationNext) { *animationState = _animationState; *animationFrame = _animationFrame; *animationStateNext = _animationStateNext; *animationNext = _animationNext; } void AIScriptSteele::SetAnimationState(int animationState, int animationFrame, int animationStateNext, int animationNext) { _animationState = animationState; _animationFrame = animationFrame; _animationStateNext = animationStateNext; _animationNext = animationNext; } bool AIScriptSteele::ReachedMovementTrackWaypoint(int waypointId) { if (waypointId == 174 && Actor_Query_Goal_Number(kActorSteele) == 130) Actor_Set_Goal_Number(kActorSteele, 112); return true; } void AIScriptSteele::FledCombat() { // return false; } } // End of namespace BladeRunner