bool AIScriptTyrell::GoalChanged(int currentGoalNumber, int newGoalNumber) { if (newGoalNumber == 300) { Actor_Put_In_Set(kActorTyrell, kSetFreeSlotH); Actor_Set_At_Waypoint(kActorTyrell, 40, 0); } return false; }
void SceneScriptBB05::PlayerWalkedIn() { if (Game_Flag_Query(298)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, 95.0f, -60.31f, 303.0f, 0, 0, false, 0); Game_Flag_Reset(298); } else if (Game_Flag_Query(300)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, 231.0f, -60.31f, 203.0f, 0, 0, false, 0); Game_Flag_Reset(300); } else if (Game_Flag_Query(302)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, 111.0f, -60.31f, -24.0f, 0, 0, false, 0); Game_Flag_Reset(302); } else { Loop_Actor_Walk_To_XYZ(kActorMcCoy, -76.0f, -60.31f, 131.0f, 0, 0, false, 0); Game_Flag_Reset(285); } if (Actor_Query_Goal_Number(kActorSebastian) == 200) { Actor_Face_Actor(kActorSebastian, kActorMcCoy, true); Actor_Face_Actor(kActorMcCoy, kActorSebastian, true); Actor_Says(kActorSebastian, 120, 13); Actor_Says(kActorMcCoy, 7030, 15); Actor_Says(kActorSebastian, 130, 17); Actor_Says(kActorSebastian, 140, 16); Actor_Says(kActorSebastian, 150, 14); Actor_Says(kActorSebastian, 160, 15); Actor_Says(kActorMcCoy, 7035, 14); Actor_Says(kActorSebastian, 170, 12); Actor_Says(kActorMcCoy, 7040, 14); Actor_Says(kActorSebastian, 180, 16); Actor_Says(kActorMcCoy, 7045, 14); if (Game_Flag_Query(399)) { Actor_Says(kActorSebastian, 190, 15); Actor_Says(kActorMcCoy, 7050, 17); Actor_Says(kActorSebastian, 200, 16); Actor_Says_With_Pause(kActorSebastian, 210, 1.5f, 14); Actor_Says(kActorMcCoy, 7055, 15); } else { Actor_Put_In_Set(kActorGeneralDoll, 22); Actor_Set_At_Waypoint(kActorGeneralDoll, 134, 0); Loop_Actor_Walk_To_Waypoint(kActorGeneralDoll, 135, 0, 0, false); Actor_Says(kActorGeneralDoll, 0, 3); Actor_Face_Actor(kActorMcCoy, kActorGeneralDoll, true); Actor_Face_Actor(kActorSebastian, kActorGeneralDoll, true); Actor_Says(kActorSebastian, 220, 13); Loop_Actor_Walk_To_Waypoint(kActorGeneralDoll, 134, 0, 0, false); Actor_Face_Actor(kActorSebastian, kActorMcCoy, true); Actor_Face_Actor(kActorMcCoy, kActorSebastian, true); Actor_Says(kActorSebastian, 230, 15); Actor_Says(kActorMcCoy, 7060, 17); Actor_Says(kActorSebastian, 240, 12); } Actor_Says(kActorMcCoy, 7065, 16); Actor_Says(kActorSebastian, 250, 16); Actor_Says(kActorMcCoy, 7070, 18); Actor_Set_Goal_Number(kActorSebastian, 205); Actor_Set_Goal_Number(kActorGeneralDoll, 201); Actor_Set_Goal_Number(kActorBryant, 101); Actor_Set_Goal_Number(kActorGeneralDoll, 200); } }
void AIScriptLucy::FledCombat() { if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorLucy) == 450) { Actor_Put_In_Set(kActorLucy, kSetFreeSlotG); Actor_Set_At_Waypoint(kActorLucy, 39, 0); Actor_Set_Goal_Number(kActorLucy, 599); } return; //true; }
void SceneScriptHF01::PlayerWalkedOut() { Ambient_Sounds_Remove_All_Non_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1); if (!Game_Flag_Query(312) && !Game_Flag_Query(308) && !Game_Flag_Query(310) && !Game_Flag_Query(722)) { Ambient_Sounds_Remove_All_Non_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1); Outtake_Play(kOuttakeInside2, true, -1); Outtake_Play(kOuttakeTowards3, true, -1); } Game_Flag_Reset(722); if (Actor_Query_Goal_Number(kActorLucy) == 450) { Actor_Put_In_Set(kActorLucy, 97); Actor_Set_At_Waypoint(kActorLucy, 39, 0); Actor_Set_Goal_Number(kActorLucy, 599); } if (Actor_Query_Goal_Number(kActorDektora) == 450) { Actor_Put_In_Set(kActorDektora, 97); Actor_Set_At_Waypoint(kActorDektora, 39, 0); Actor_Set_Goal_Number(kActorDektora, 599); } }
void AIScriptMutant1::Initialize() { _animationFrame = 0; _animationState = 0; _animationStateNext = 0; _animationNext = 0; _flag = 0; Actor_Put_In_Set(kActorMutant1, kSetFreeSlotG); Actor_Set_At_Waypoint(kActorMutant1, 39, 0); Actor_Set_Goal_Number(kActorMutant1, 400); }
void ScriptHF01::PlayerWalkedOut() { Ambient_Sounds_Remove_All_Non_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1); if (!Game_Flag_Query(312) && !Game_Flag_Query(308) && !Game_Flag_Query(310) && !Game_Flag_Query(722)) { Ambient_Sounds_Remove_All_Non_Looping_Sounds(1); Ambient_Sounds_Remove_All_Looping_Sounds(1); Outtake_Play(35, 1, -1); Outtake_Play(38, 1, -1); } Game_Flag_Reset(722); if (Actor_Query_Goal_Number(6) == 450) { Actor_Put_In_Set(6, 97); Actor_Set_At_Waypoint(6, 39, 0); Actor_Set_Goal_Number(6, 599); } if (Actor_Query_Goal_Number(3) == 450) { Actor_Put_In_Set(3, 97); Actor_Set_At_Waypoint(3, 39, 0); Actor_Set_Goal_Number(3, 599); } }
bool AIScriptDeskClerk::GoalChanged(int currentGoalNumber, int newGoalNumber) { switch (newGoalNumber) { case kGoalDeskClerkDefault: case kGoalDeskClerkRecovered: Actor_Put_In_Set(kActorDeskClerk, kSetCT09); Actor_Set_At_XYZ(kActorDeskClerk, 282.0f, 360.52f, 743.0f, 513); break; case kGoalDeskClerkKnockedOut: case kGoalDeskClerkGone: Actor_Put_In_Set(kActorDeskClerk, kSetFreeSlotH); Actor_Set_At_Waypoint(kActorDeskClerk, 40, 0); break; } return false; }
void SceneScriptUG18::SceneLoaded() { Obstacle_Object("MACHINE_01", true); Unobstacle_Object("PLATFM_RAIL 01", true); Unobstacle_Object("PLATFM_RAIL 02", true); Unobstacle_Object("OBSTACLE1", true); Clickable_Object("MACHINE_01"); Unclickable_Object("MACHINE_01"); if (Game_Flag_Query(kFlagUG18GuzzaScene)) { Actor_Put_In_Set(kActorGuzza, kSetFreeSlotI); Actor_Set_At_Waypoint(kActorGuzza, 41, 0); if (Actor_Query_Which_Set_In(kActorSadik) == kSetUG18) { Actor_Put_In_Set(kActorSadik, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorSadik, 33, 0); } } if ( Game_Flag_Query(kFlagCallWithGuzza) && !Game_Flag_Query(kFlagUG18GuzzaScene) && Global_Variable_Query(kVariableChapter) == 4 ) { Item_Add_To_World(kItemBriefcase, 987, kSetUG18, -55.21f, 0.0f, -302.17f, 0, 12, 12, false, true, false, true); } }
void SceneScriptBB05::SceneLoaded() { Obstacle_Object("PINHEAD", true); Obstacle_Object("X2WALLS&MOLDNG05", true); Obstacle_Object("QUADPATCH04", true); Unobstacle_Object("BOX16", true); Clickable_Object("PINHEAD"); Clickable_Object("BOX06"); Unclickable_Object("BOX06"); Unclickable_Object("BOX14"); if (Actor_Query_Goal_Number(kActorSebastian) == 200) { Actor_Set_Goal_Number(kActorGeneralDoll, 299); Actor_Put_In_Set(kActorGeneralDoll, 97); Actor_Set_At_Waypoint(kActorGeneralDoll, 39, 0); } }
bool AIScriptRajif::GoalChanged(int currentGoalNumber, int newGoalNumber) { if (newGoalNumber == 300) { Actor_Put_In_Set(kActorRajif, kSetMA02_MA04); Actor_Set_At_XYZ(kActorRajif, -73.34f, -140.40f, 342.0f, 300); Actor_Change_Animation_Mode(kActorRajif, 0); return true; } if (newGoalNumber == 599) { Actor_Put_In_Set(kActorRajif, kSetFreeSlotI); Actor_Set_At_Waypoint(kActorRajif, 41, 0); return true; } return false; }
void AIScriptSadik::Initialize() { _animationFrame = 0; _animationState = 0; _animationStateNext = 0; _animationNext = 0; _flag = 0; _var1 = 0; _var2 = 0; _var3 = 0; _var4 = 1; Actor_Put_In_Set(kActorSadik, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorSadik, 33, 0); Actor_Set_Goal_Number(kActorSadik, kGoalSadikDefaut); }
void AIScriptSadik::Initialize() { _animationFrame = 0; _animationState = 0; _animationStateNext = 0; _animationNext = 0; _flag = 0; _nextSoundId = -1; // changed from original (0) to be more clear that this is an invalid sfx id _var2 = 0; _var3 = 0; _var4 = 1; Actor_Put_In_Set(kActorSadik, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorSadik, 33, 0); Actor_Set_Goal_Number(kActorSadik, kGoalSadikDefaut); }
void ScriptNR07::sub_4018D4() { Actor_Set_Goal_Number(25, 201); Player_Loses_Control(); Actor_Set_At_XYZ(3, -136.0f, -73.0f, -18.0f, 300); Actor_Change_Animation_Mode(3, 71); Actor_Change_Animation_Mode(0, 21); Loop_Actor_Walk_To_XYZ(3, -102.0f, -73.5f, -233.0f, 0, 0, true, 0); if (Game_Flag_Query(47)) { Actor_Set_Goal_Number(3, 245); } else { Actor_Set_Goal_Number(3, 295); Game_Flag_Set(591); Actor_Put_In_Set(3, 91); Actor_Set_At_Waypoint(3, 33, 0); } Player_Gains_Control(); }
void ScriptNR08::SceneFrameAdvanced(int frame) { if (!Music_Is_Playing()) { sub_4021B4(); } Set_Fade_Color(0, 0, 0); if (frame >= 76 && frame < 91) { Set_Fade_Density((frame - 76) / 14.0f); Music_Stop(3); Ambient_Sounds_Play_Sound(566, 27, 0, 99, 0); } else if (frame >= 91 && frame < 120) { Actor_Set_Invisible(0, true); Set_Fade_Density(1.0f); } else if (frame >= 120 && frame < 135) { Set_Fade_Density((134 - frame) / 14.0f); Music_Play(7, 61, 0, 1, -1, 0, 0); } else { Actor_Set_Invisible(0, false); Set_Fade_Density(0.0f); } if (Game_Flag_Query(651) && !Game_Flag_Query(636)) { Game_Flag_Set(636); Scene_Exits_Disable(); Scene_Loop_Set_Default(1); Scene_Loop_Start_Special(2, 3, 1); } if (frame == 95) { Actor_Put_In_Set(3, 91); Actor_Set_At_Waypoint(3, 33, 0); Actor_Change_Animation_Mode(3, 0); Actor_Set_Goal_Number(3, 200); Scene_Exit_Add_2D_Exit(1, 0, 309, 30, 398, 3); Scene_Exit_Add_2D_Exit(2, 520, 330, 556, 386, 0); } if (frame == 130) { Scene_Exits_Enable(); } //return false; }
bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) { switch (newGoalNumber) { case kGoalClovisDefault: AI_Movement_Track_Flush(kActorClovis); AI_Movement_Track_Append(kActorClovis, 33, 0); AI_Movement_Track_Repeat(kActorClovis); return true; case kGoalClovisBB11WalkToMcCoy: AI_Movement_Track_Flush(kActorClovis); AI_Movement_Track_Append(kActorClovis, 319, 0); AI_Movement_Track_Append(kActorClovis, 320, 0); AI_Movement_Track_Repeat(kActorClovis); return true; case kGoalClovisBB11StopSadik: Actor_Start_Speech_Sample(kActorClovis, 0); AI_Movement_Track_Flush(kActorClovis); AI_Movement_Track_Append(kActorClovis, 321, 0); AI_Movement_Track_Repeat(kActorClovis); return true; case kGoalClovisBB11TalkWithSadik: Actor_Set_Goal_Number(kActorSadik, kGoalSadikBB11TalkWithClovis); Actor_Says(kActorClovis, 10, 15); Actor_Says(kActorSadik, 0, kAnimationModeTalk); Actor_Face_Actor(kActorClovis, kActorSadik, true); Actor_Says(kActorClovis, 20, 13); Actor_Says(kActorClovis, 30, 12); Actor_Face_Actor(kActorSadik, kActorClovis, true); Actor_Says(kActorSadik, 10, kAnimationModeTalk); Actor_Says(kActorClovis, 40, 17); Actor_Says(kActorSadik, 20, kAnimationModeTalk); Actor_Face_Actor(kActorClovis, kActorMcCoy, true); Actor_Face_Actor(kActorSadik, kActorMcCoy, true); Actor_Says(kActorClovis, 50, 14); Actor_Change_Animation_Mode(kActorClovis, kAnimationModeSit); return true; case kGoalClovisBB11TalkToMcCoy: Actor_Says(kActorClovis, 60, 30); Actor_Says(kActorSadik, 30, kAnimationModeTalk); Actor_Says(kActorClovis, 70, 30); Actor_Says(kActorClovis, 80, 30); Actor_Change_Animation_Mode(kActorClovis, 29); Actor_Says(kActorSadik, 40, kAnimationModeTalk); Actor_Says(kActorSadik, 50, kAnimationModeTalk); Actor_Says(kActorClovis, 90, 13); Actor_Face_Current_Camera(5, true); Actor_Says(kActorClovis, 100, 17); Delay(1000); if (!Game_Flag_Query(kFlagSadikIsReplicant)) { Actor_Clue_Acquire(kActorMcCoy, kClueStaggeredbyPunches, true, kActorSadik); } Game_Flag_Set(kFlagNotUsed383); Game_Flag_Reset(kFlagBB11SadikFight); Global_Variable_Set(kVariableChapter, 3); Actor_Set_Goal_Number(kActorClovis, 200); Actor_Set_Goal_Number(kActorSadik, 200); Actor_Clue_Acquire(kActorMcCoy, kClueAct2Ended, true, -1); Player_Gains_Control(); Chapter_Enter(3, kSetCT08_CT51_UG12, kSceneCT08); Game_Flag_Set(kFlagMcCoyTiedDown); Game_Flag_Set(kFlagChapter3Intro); return true; case 300: Actor_Put_In_Set(kActorClovis, kSetUG18); Actor_Set_At_XYZ(kActorClovis, -52.26f, 0.0f, 611.02f, 900); Actor_Change_Animation_Mode(kActorClovis, kAnimationModeIdle); return true; case 301: case 302: case 303: case 310: return true; case 350: Actor_Put_In_Set(kActorClovis, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorClovis, 33, 0); return true; case 400: AI_Movement_Track_Flush(kActorClovis); Actor_Put_In_Set(kActorClovis, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorClovis, 33, 0); return true; case 401: AI_Movement_Track_Flush(kActorClovis); AI_Movement_Track_Append(kActorClovis, 341, 0); AI_Movement_Track_Append(kActorClovis, 342, 0); AI_Movement_Track_Repeat(kActorClovis); return true; case 402: Player_Loses_Control(); Actor_Force_Stop_Walking(kActorMcCoy); Actor_Face_Actor(kActorMcCoy, kActorClovis, 1); Loop_Actor_Walk_To_Actor(kActorClovis, kActorMcCoy, 48, 0, 1); Actor_Face_Actor(kActorClovis, kActorMcCoy, 1); Actor_Change_Animation_Mode(kActorClovis, 6); if (Player_Query_Combat_Mode()) { Actor_Change_Animation_Mode(kActorMcCoy, 49); } else { Actor_Change_Animation_Mode(kActorMcCoy, 48); } Delay(3000); Actor_Retired_Here(kActorMcCoy, 12, 48, 1, kActorClovis); return true; case 500: Actor_Set_Goal_Number(kActorClovis, 510); return true; case 510: if (Game_Flag_Query(653)) { Actor_Set_Goal_Number(kActorClovis, 513); } else { Actor_Set_Goal_Number(kActorClovis, 511); Game_Flag_Set(685); } return true; case 511: Actor_Put_In_Set(kActorClovis, kSetKP05_KP06); Actor_Set_At_XYZ(kActorClovis, -1072.0f, 8.26f, -708.0f, 530); return true; case 512: Actor_Says(kActorClovis, 110, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2255, kAnimationModeTalk); Actor_Says(kActorClovis, 120, kAnimationModeTalk); Actor_Says(kActorClovis, 130, kAnimationModeTalk); Actor_Says(kActorClovis, 140, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2260, kAnimationModeTalk); Actor_Says(kActorClovis, 150, kAnimationModeTalk); Actor_Set_Goal_Number(kActorClovis, 513); return true; case 513: Actor_Put_In_Set(kActorClovis, kSetKP07); Actor_Set_Targetable(kActorClovis, true); if (Game_Flag_Query(653)) { Global_Variable_Set(kVariableReplicants, 0); Global_Variable_Increment(kVariableReplicants, 1); Actor_Set_At_XYZ(kActorClovis, 45.0f, -41.52f, -85.0f, 750); } else { Actor_Set_At_XYZ(kActorClovis, 84.85f, -50.56f, -68.87f, 800); Actor_Face_Heading(kActorClovis, 1022, false); } someAnim(); return true; case 514: Actor_Says(kActorMcCoy, 2345, 16); Actor_Says(kActorClovis, 170, -1); Actor_Says(kActorClovis, 180, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2350, 17); if (!Game_Flag_Query(714)) { Actor_Says(kActorMcCoy, 2355, 11); } Actor_Says(kActorClovis, 190, -1); Actor_Says(kActorClovis, 200, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2360, 18); Actor_Says(kActorClovis, 210, kAnimationModeTalk); Actor_Says(kActorClovis, 220, -1); Actor_Set_Goal_Number(kActorClovis, 515); return true; case 515: ADQ_Add(kActorClovis, 240, -1); ADQ_Add(kActorClovis, 250, -1); ADQ_Add(kActorClovis, 260, -1); ADQ_Add(kActorClovis, 270, -1); ADQ_Add_Pause(1000); ADQ_Add(kActorClovis, 280, -1); ADQ_Add(kActorClovis, 290, -1); ADQ_Add(kActorClovis, 300, -1); return true; case 516: Actor_Says(kActorMcCoy, 8501, kAnimationModeTalk); Actor_Says(kActorClovis, 1260, kAnimationModeTalk); Actor_Says(kActorMcCoy, 8502, kAnimationModeTalk); Actor_Says(kActorClovis, 1270, kAnimationModeTalk); Actor_Says(kActorMcCoy, 8504, kAnimationModeTalk); Actor_Says(kActorClovis, 1290, kAnimationModeTalk); Actor_Says(kActorMcCoy, 8505, kAnimationModeTalk); Actor_Says(kActorClovis, 1300, kAnimationModeTalk); Actor_Says(kActorClovis, 1310, kAnimationModeTalk); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Outtake_Play(kOuttakeEnd4A, 0, -1); if (Global_Variable_Query(kVariableAffectionTowards) == kAffectionTowardsLucy && Game_Flag_Query(kFlagLucyIsReplicant) ) { Outtake_Play(kOuttakeEnd4B, 0, -1); } else if (Global_Variable_Query(kVariableAffectionTowards) == kAffectionTowardsDektora && Game_Flag_Query(kFlagDektoraIsReplicant) ) { Outtake_Play(kOuttakeEnd4C, 0, -1); } Outtake_Play(kOuttakeEnd4D, 0, -1); Game_Over(); return true; case 517: if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorLucy, kSetKP07)) { Actor_Set_Goal_Number(kActorLucy, 599); Global_Variable_Decrement(kVariableReplicants, 1); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorLuther, kSetKP07)) { Actor_Set_Goal_Number(kActorLuther, 599); Global_Variable_Decrement(kVariableReplicants, 1); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorDektora, kSetKP07)) { Non_Player_Actor_Combat_Mode_On(kActorDektora, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorZuben, kSetKP07)) { Non_Player_Actor_Combat_Mode_On(kActorZuben, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorSadik, kSetKP07)) { Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorIzo, kSetKP07)) { Non_Player_Actor_Combat_Mode_On(kActorIzo, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorGordo, kSetKP07)) { Non_Player_Actor_Combat_Mode_On(kActorGordo, kActorCombatStateIdle, true, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorClovis, kSetKP07)) { Non_Player_Actor_Combat_Mode_On(kActorClovis, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false); } return true; case 518: Actor_Set_At_XYZ(kActorClovis, 84.85f, -50.56f, -68.87f, 800); Actor_Face_Heading(kActorClovis, 1022, false); Actor_Set_Targetable(kActorClovis, true); Game_Flag_Set(685); someAnim(); return true; default: break; } return false; }
void AIScriptLucy::CompletedMovementTrack() { switch (Actor_Query_Goal_Number(kActorLucy)) { case 205: if (!Game_Flag_Query(616) || Global_Variable_Query(40) != 3) { AI_Countdown_Timer_Reset(kActorLucy, 0); AI_Countdown_Timer_Start(kActorLucy, 0, 30); return; //false; } Actor_Set_Goal_Number(kActorLucy, 250); return; //true; case 210: Actor_Set_Goal_Number(kActorLucy, 211); break; case 211: Game_Flag_Set(593); Actor_Set_Goal_Number(kActorLucy, 299); break; case 212: Actor_Set_Goal_Number(kActorLucy, 213); break; case 213: if (Actor_Clue_Query(kActorLucy, 219) && Global_Variable_Query(40) != 3) { Game_Flag_Set(593); } else { Actor_Set_Goal_Number(kActorLucy, 230); Game_Flag_Reset(584); } break; case 214: Actor_Set_Goal_Number(kActorLucy, 215); break; case 215: Actor_Set_Goal_Number(kActorLucy, 201); break; case 220: case 225: Actor_Set_Goal_Number(kActorLucy, 200); break; case 233: Game_Flag_Set(585); Actor_Set_Goal_Number(kActorLucy, 234); break; case 234: Actor_Set_Goal_Number(kActorLucy, 235); break; case 236: Actor_Set_Goal_Number(kActorLucy, 237); break; case 238: Game_Flag_Set(593); Actor_Put_In_Set(kActorLucy, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorLucy, 33, 0); Actor_Set_Health(kActorLucy, 30, 30); if (Global_Variable_Query(40) == 3) { Actor_Set_Goal_Number(kActorSteele, 240); } break; case 239: Game_Flag_Set(593); break; default: break; } return; //false; }
void ScriptMA04::PlayerWalkedIn() { if (Game_Flag_Query(647)) { Player_Gains_Control(); } if (sub_402820() || sub_402758()) { Overlay_Play("MA04OVER", 0, 1, 0, 0); } if (Game_Flag_Query(647)) { Loop_Actor_Walk_To_XYZ(0, -7139.0f, 954.0f, 1746.0f, 0, 1, false, 0); } else if (Game_Flag_Query(35)) { Loop_Actor_Walk_To_XYZ(0, -7143.0f, 954.0f, 1868.0f, 0, 1, false, 0); } Game_Flag_Reset(35); Game_Flag_Reset(63); Game_Flag_Reset(647); if (Game_Flag_Query(61)) { if (Global_Variable_Query(1) == 2 && !Actor_Clue_Query(0, 43)) { Sound_Play(403, 100, 0, 0, 50); Loop_Actor_Walk_To_XYZ(0, -7176.0f, 954.0f, 1806.0f, 0, 0, false, 0); Actor_Face_Heading(0, 256, true); Actor_Says(0, 2680, 0); Sound_Play(123, 100, 0, 0, 50); Delay(500); Actor_Says(4, 0, 3); Actor_Says(0, 2685, 13); Actor_Says(4, 10, 3); Actor_Says(0, 2690, 17); Actor_Says(4, 30, 3); Actor_Says(0, 2695, 12); Actor_Says(4, 40, 3); Actor_Says(4, 50, 3); Actor_Says(0, 2700, 3); Actor_Says(4, 60, 3); Actor_Says(4, 70, 3); Sound_Play(123, 100, 0, 0, 50); Actor_Clue_Acquire(0, 43, 1, 4); Spinner_Set_Selectable_Destination_Flag(5, 1); Game_Flag_Set(186); if (!Game_Flag_Query(163)) { Game_Flag_Set(163); Item_Remove_From_World(66); } Actor_Set_Goal_Number(23, 99); Actor_Put_In_Set(23, 93); Actor_Set_At_Waypoint(23, 35, 0); Autosave_Game(0); } //return false; return; } if ((Game_Flag_Query(40) || Game_Flag_Query(41)) && !Game_Flag_Query(146)) { Music_Play(2, 52, 0, 2, -1, 0, 0); Player_Loses_Control(); Loop_Actor_Walk_To_XYZ(0, -7199.0f, 955.0f, 1677.0f, 0, 1, false, 0); if (sub_402820() || sub_402758()) { Overlay_Remove("MA04OVER"); } Loop_Actor_Walk_To_XYZ(0, -7199.0f, 955.0f, 1675.0f, 0, 1, false, 0); Game_Flag_Set(146); Async_Actor_Walk_To_XYZ(0, -7204.0f, 956.17f, 1568.0f, 0, false); Set_Enter(51, 51); } }
bool AIScriptGaff::GoalChanged(int currentGoalNumber, int newGoalNumber) { switch (newGoalNumber) { case kGoalGaffCT12WaitForMcCoy: Actor_Put_In_Set(kActorGaff, kSetCT01_CT12); Actor_Set_At_Waypoint(kActorGaff, 43, 0); return true; case kGoalGaffCT12GoToSpinner: AI_Movement_Track_Append(kActorGaff, 123, 1); AI_Movement_Track_Repeat(kActorGaff); return true; case kGoalGaffMA01ApproachMcCoy: Player_Loses_Control(); AI_Movement_Track_Flush(kActorGaff); AI_Movement_Track_Append(kActorGaff, 124, 0); AI_Movement_Track_Append(kActorGaff, 126, 0); AI_Movement_Track_Repeat(kActorGaff); return true; case kGoalGaffMA01Leave: AI_Movement_Track_Flush(kActorGaff); AI_Movement_Track_Append(kActorGaff, 124, 0); AI_Movement_Track_Append(kActorGaff, 35, 0); AI_Movement_Track_Repeat(kActorGaff); return true; case kGoalGaffCT12Leave: AI_Movement_Track_Flush(kActorGaff); AI_Movement_Track_Append(kActorGaff, 35, 90); AI_Movement_Track_Repeat(kActorGaff); return true; case kGoalGaffCT12FlyAway: Game_Flag_Reset(kFlagCT12GaffSpinner); Scene_Loop_Set_Default(2); Scene_Loop_Start_Special(kSceneLoopModeOnce, 6, true); return true; case kGoalGaffStartWalkingAround: AI_Movement_Track_Flush(kActorGaff); AI_Movement_Track_Append(kActorGaff, 35, 300); AI_Movement_Track_Repeat(kActorGaff); return true; case kGoalGaffWalkAround: { AI_Movement_Track_Flush(kActorGaff); AI_Movement_Track_Append(kActorGaff, 82, 1); AI_Movement_Track_Append(kActorGaff, 76, 1); AI_Movement_Track_Append(kActorGaff, 78, 1); int rnd = Random_Query(1, 3); if (rnd == 1) { AI_Movement_Track_Append(kActorGaff, 271, 0); AI_Movement_Track_Append(kActorGaff, 272, 0); AI_Movement_Track_Append(kActorGaff, 273, 0); } else if (rnd == 2) { AI_Movement_Track_Append(kActorGaff, 273, 0); AI_Movement_Track_Append(kActorGaff, 272, 0); AI_Movement_Track_Append(kActorGaff, 271, 0); } else if (rnd == 3) { AI_Movement_Track_Append(kActorGaff, 272, 0); AI_Movement_Track_Append(kActorGaff, 273, 0); } AI_Movement_Track_Append(kActorGaff, 274, 0); AI_Movement_Track_Append(kActorGaff, 275, 0); AI_Movement_Track_Repeat(kActorGaff); } return true; case kGoalGaffRepeatWalkingAround: AI_Movement_Track_Flush(kActorGaff); AI_Movement_Track_Append(kActorGaff, 35, 90); AI_Movement_Track_Repeat(kActorGaff); return true; case 299: AI_Movement_Track_Flush(kActorGaff); Actor_Put_In_Set(kActorGaff, kSetFreeSlotC); Actor_Set_At_Waypoint(kActorGaff, 35, 0); return true; case kGoalGaffMA07Wait: Player_Loses_Control(); Actor_Put_In_Set(kActorGaff, kSetMA07); Actor_Set_At_XYZ(kActorGaff, -102.54f, -172.43f, 463.18f, 1015); Actor_Set_Goal_Number(kActorGaff, kGoalGaffMA07TalkToMcCoy); return true; case kGoalGaffMA07TalkToMcCoy: Game_Flag_Set(kFlagMA07GaffTalk); Actor_Face_Actor(kActorGaff, kActorMcCoy, true); Actor_Says(kActorGaff, 110, 12); Actor_Face_Actor(kActorMcCoy, kActorGaff, true); Actor_Says(kActorMcCoy, 2945, 14); Loop_Actor_Walk_To_Actor(kActorGaff, kActorMcCoy, 180, false, false); Actor_Says(kActorGaff, 120, 16); Actor_Says(kActorGaff, 130, 13); Actor_Says(kActorMcCoy, 2950, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2955, 16); Actor_Says_With_Pause(kActorGaff, 140, 1.0f, 14); Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorGaff, 36, false, false); Actor_Says(kActorGaff, 150, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2960, 12); Actor_Says_With_Pause(kActorGaff, 160, 1.0f, 16); Actor_Says(kActorMcCoy, 2965, 13); Actor_Says_With_Pause(kActorGaff, 170, 1.0f, kAnimationModeTalk); Actor_Says_With_Pause(kActorGaff, 180, 1.0f, 12); Actor_Says(kActorGaff, 190, 14); Actor_Says(kActorGaff, 200, 15); Async_Actor_Walk_To_XYZ(kActorGaff, -388.44f, -162.8f, 165.08f, false, false); Delay(4000); Player_Gains_Control(); Actor_Start_Speech_Sample(kActorGaff, 210); Actor_Set_Goal_Number(kActorGaff, kGoalGaffMA07Left); return true; case kGoalGaffMA07Left: return true; case kGoalGaffMA07ShootMcCoy: Actor_Face_Actor(kActorGaff, kActorMcCoy, true); Actor_Change_Animation_Mode(kActorGaff, kAnimationModeCombatAttack); Sound_Play(kSfxSMCAL3, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); Actor_Retired_Here(kActorMcCoy, 12, 12, true, -1); return true; case kGoalGaffGone: AI_Movement_Track_Flush(kActorGaff); Actor_Put_In_Set(kActorGaff, kSetKP05_KP06); Actor_Set_At_XYZ(kActorGaff, -782.15f, 8.26f, -263.64f, 52); return true; } return false; }
bool AIScriptLucy::GoalChanged(int currentGoalNumber, int newGoalNumber) { if (!newGoalNumber) { Actor_Put_In_Set(kActorLucy, kSetFreeSlotA); return false; } switch (newGoalNumber) { case 200: if (Global_Variable_Query(40) == 3) { if (Game_Flag_Query(591) && Game_Flag_Query(592) && Player_Query_Current_Scene() != 36) { Actor_Set_Goal_Number(kActorLucy, 205); } else { if (Random_Query(1, 2) - 1) { Actor_Set_Goal_Number(kActorLucy, 225); } else { Actor_Set_Goal_Number(kActorLucy, 220); } } } else { int rnd = Random_Query(1, 4) - 1; if (rnd) { if (rnd == 1) { Actor_Set_Goal_Number(kActorLucy, 225); } else if (Player_Query_Current_Scene() == 36) { Actor_Set_Goal_Number(kActorLucy, 220); } else { Actor_Set_Goal_Number(kActorLucy, 205); } } else { Actor_Set_Goal_Number(kActorLucy, 220); } } break; case 205: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_With_Facing(kActorLucy, 371, 0, 156); AI_Movement_Track_Repeat(kActorLucy); break; case 210: Actor_Set_Immunity_To_Obstacles(kActorLucy, 1); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 377, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 211: Actor_Set_Immunity_To_Obstacles(kActorLucy, 0); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 372, 0); AI_Movement_Track_Append(kActorLucy, 33, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 212: Actor_Set_Immunity_To_Obstacles(kActorLucy, 1); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 378, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 213: Actor_Set_Immunity_To_Obstacles(kActorLucy, 0); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 373, 0); AI_Movement_Track_Append(kActorLucy, 33, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 214: Actor_Says(kActorLucy, 320, 16); Actor_Set_Goal_Number(kActorHolloway, 242); Actor_Set_Immunity_To_Obstacles(6, 1); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append(kActorLucy, 378, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 215: Actor_Set_Immunity_To_Obstacles(kActorLucy, 0); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 373, 0); AI_Movement_Track_Append(kActorLucy, 33, 30); AI_Movement_Track_Repeat(kActorLucy); break; case 220: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append(kActorLucy, 39, Random_Query(5, 10)); AI_Movement_Track_Append(kActorLucy, 33, Random_Query(5, 10)); AI_Movement_Track_Append(kActorLucy, 39, Random_Query(5, 10)); AI_Movement_Track_Repeat(kActorLucy); break; case 225: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append(kActorLucy, 39, Random_Query(5, 15)); AI_Movement_Track_Append(kActorLucy, 33, Random_Query(10, 30)); AI_Movement_Track_Append(kActorLucy, 40, Random_Query(15, 30)); AI_Movement_Track_Append(kActorLucy, 42, Random_Query(10, 20)); AI_Movement_Track_Repeat(kActorLucy); break; case 230: AI_Movement_Track_Flush(kActorLucy); Actor_Put_In_Set(kActorLucy, kSetHF04); Actor_Set_At_Waypoint(kActorLucy, 518, 0); Actor_Set_Targetable(kActorLucy, 1); Actor_Set_Health(kActorLucy, 5, 5); break; case 232: Player_Loses_Control(); Actor_Says(kActorMcCoy, 1700, 16); AI_Movement_Track_Flush(kActorLucy); Actor_Face_Actor(kActorLucy, 0, 1); Actor_Face_Actor(kActorMcCoy, kActorLucy, 1); Actor_Says(kActorLucy, 350, 13); Actor_Says(kActorMcCoy, 1705, 13); Actor_Says(kActorLucy, 360, 13); Actor_Says(kActorMcCoy, 1710, 13); if (Global_Variable_Query(kVariableAffectionTowards) == 3) { Actor_Says(kActorLucy, 940, 13); Actor_Says(kActorMcCoy, 6780, 12); Actor_Says(kActorLucy, 950, 12); Actor_Says(kActorLucy, 960, 14); Actor_Says(kActorMcCoy, 6785, 13); Actor_Says(kActorLucy, 970, 16); Actor_Says(kActorLucy, 980, 13); if (Game_Flag_Query(47)) { Actor_Says(kActorLucy, 990, 15); } Actor_Says(kActorMcCoy, 6790, 13); if (Game_Flag_Query(47) && Game_Flag_Query(46)) { Actor_Says(kActorLucy, 1000, 12); } Actor_Says(kActorLucy, 1010, 15); Actor_Says(kActorLucy, 1020, 12); Actor_Says(kActorMcCoy, 6795, 18); Actor_Says(kActorLucy, 1030, 15); Actor_Says(kActorMcCoy, 6800, 16); Actor_Says(kActorLucy, 1040, 12); Actor_Says(kActorMcCoy, 6805, 15); Actor_Says(kActorLucy, 1050, 12); } Actor_Says(kActorLucy, 370, 14); Actor_Set_Goal_Number(kActorLucy, 239); if (Global_Variable_Query(40) == 3) { Actor_Set_Goal_Number(kActorSteele, 243); Game_Flag_Set(593); } Player_Gains_Control(); break; case 233: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 519, 0); AI_Movement_Track_Repeat(kActorLucy); Actor_Set_Health(kActorLucy, 5, 5); break; case 234: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 520, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 236: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 521, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 238: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 522, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 239: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 523, 0); AI_Movement_Track_Append(kActorLucy, 33, 0); AI_Movement_Track_Repeat(kActorLucy); Player_Gains_Control(); Actor_Set_Health(kActorLucy, 30, 30); break; case 240: if (Global_Variable_Query(40) == 3) { Actor_Set_Goal_Number(kActorLucy, 599); Actor_Set_Goal_Number(kActorSteele, 240); } else { Actor_Set_Goal_Number(kActorLucy, 299); Game_Flag_Set(593); } break; case 250: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append(kActorLucy, 372, 0); AI_Movement_Track_Append_With_Facing(kActorLucy, 371, 0, 156); AI_Movement_Track_Repeat(kActorLucy); break; case 300: Actor_Put_In_Set(kActorLucy, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorLucy, 33, 0); if (Global_Variable_Query(kVariableAffectionTowards) == 3) { Actor_Set_Goal_Number(kActorLucy, 310); } break; case 310: Actor_Put_In_Set(kActorLucy, kSetUG01); Actor_Set_At_Waypoint(kActorLucy, 544, 651); break; case 311: voightKempTest(); break; case 312: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 545, 0); AI_Movement_Track_Append(kActorLucy, 33, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 599: Game_Flag_Set(593); break; } return false; }
bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) { switch (newGoalNumber) { case kGoalSadikDefaut: AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append(kActorSadik, 33, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikRunFromBB09: AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append_Run(kActorSadik, 131, 0); AI_Movement_Track_Append_Run(kActorSadik, 132, 0); AI_Movement_Track_Append_Run(kActorSadik, 133, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikBB11Wait: AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append(kActorSadik, 313, 0); AI_Movement_Track_Repeat(kActorSadik); Game_Flag_Set(kFlagBB11SadikFight); return true; case kGoalSadikBB11ThrowMcCoy: Actor_Set_Immunity_To_Obstacles(kActorSadik, true); Actor_Face_Heading(kActorSadik, kActorMcCoy, kActorMcCoy); _animationState = 32; _animationFrame = -1; Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); return true; case kGoalSadikBB11CatchMcCoy: Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyBB11GetUp); AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append(kActorSadik, 314, 0); AI_Movement_Track_Append_Run(kActorSadik, 317, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikBB11KnockOutMcCoy: Actor_Change_Animation_Mode(kActorSadik, 62); return true; case kGoalSadikBB11KickMcCoy: Actor_Face_Heading(kActorSadik, 100, false); Actor_Change_Animation_Mode(kActorSadik, 63); Actor_Set_Goal_Number(kActorClovis, kGoalClovisBB11WalkToMcCoy); Actor_Set_Immunity_To_Obstacles(kActorSadik, false); return true; case kGoalSadikBB11TalkWithClovis: _var1 = 0; return false; case 200: Actor_Put_In_Set(kActorSadik, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorSadik, 33, 0); Actor_Set_Goal_Number(kActorMcCoy, 199); return true; case 300: Actor_Put_In_Set(kActorSadik, kSetUG18); Actor_Set_At_XYZ(kActorSadik, 111.89f, 0.0f, 408.42f, 0); Actor_Change_Animation_Mode(kActorSadik, 4); return true; case 301: Actor_Set_Targetable(kActorSadik, true); World_Waypoint_Set(436, 89, -356.11f, 0.0f, 652.42f); AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append_Run(kActorSadik, 436, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case 302: Actor_Set_Targetable(kActorSadik, false); return true; case 303: AI_Countdown_Timer_Reset(kActorSadik, 0); AI_Countdown_Timer_Start(kActorSadik, 0, 5); return true; case 304: Actor_Set_Targetable(kActorSadik, false); AI_Countdown_Timer_Reset(kActorSadik, 0); return true; case 305: case 306: case 310: return true; case 307: Sound_Play(12, 100, 0, 0, 50); AI_Countdown_Timer_Start(kActorSadik, 0, 2); return true; case 308: if (Player_Query_Current_Scene() == kSceneUG18) { Actor_Force_Stop_Walking(kActorMcCoy); Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack); Sound_Play(12, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); Actor_Retired_Here(kActorMcCoy, 6, 6, true, -1); } return true; case 309: AI_Countdown_Timer_Reset(kActorSadik, 0); return true; case 400: Actor_Set_Goal_Number(kActorSadik, 410); return true; case 410: if (Game_Flag_Query(653) == 1) { Actor_Set_Goal_Number(kActorSadik, 414); } else { Actor_Set_Goal_Number(kActorSadik, 411); } return true; case 411: Actor_Put_In_Set(kActorSadik, kSetKP05_KP06); Actor_Set_At_XYZ(kActorSadik, -1134.0f, 0.0f, 73.45f, 398); Actor_Set_Goal_Number(kActorClovis, 513); Actor_Set_Goal_Number(kActorMaggie, 411); return true; case 412: Actor_Says(kActorSadik, 60, 3); Actor_Says(kActorMcCoy, 2240, 3); Actor_Says(kActorSadik, 70, 3); Actor_Says(kActorSadik, 80, 3); Actor_Says(kActorMcCoy, 2245, 3); Actor_Says(kActorSadik, 90, 3); Actor_Says(kActorSadik, 100, 3); Actor_Says(kActorMcCoy, 2250, 3); Actor_Set_Goal_Number(kActorSadik, 413); return true; case 413: Loop_Actor_Walk_To_XYZ(kActorSadik, -1062.0f, 0.0f, 219.0f, 0, false, true, 0); Actor_Set_Targetable(kActorSadik, true); Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 9, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, false); Actor_Set_Goal_Number(kActorSadik, 450); return true; case 414: Actor_Put_In_Set(kActorSadik, kSetKP05_KP06); Actor_Set_At_XYZ(kActorSadik, -961.0f, 0.0f, -778.0f, 150); Actor_Set_Targetable(kActorSadik, true); return true; case 415: Actor_Says(kActorSadik, 110, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2290, kAnimationModeTalk); Actor_Says(kActorSadik, 310, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2300, kAnimationModeTalk); if (Game_Flag_Query(kFlagSadikIsReplicant)) { Actor_Says(kActorSadik, 180, kAnimationModeTalk); Actor_Says(kActorSadik, 190, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2310, kAnimationModeTalk); Actor_Says(kActorSadik, 200, kAnimationModeTalk); } else { Actor_Says(kActorSadik, 140, kAnimationModeTalk); Actor_Says(kActorSadik, 150, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2305, kAnimationModeTalk); Actor_Says(kActorSadik, 160, kAnimationModeTalk); Actor_Says(kActorSadik, 170, kAnimationModeTalk); } Actor_Says(kActorMcCoy, 2315, kAnimationModeTalk); Actor_Says(kActorSadik, 210, kAnimationModeTalk); Actor_Says(kActorSadik, 220, kAnimationModeTalk); Actor_Says(kActorSadik, 230, kAnimationModeTalk); Actor_Says(kActorSadik, 240, kAnimationModeTalk); Actor_Says(kActorSadik, 250, kAnimationModeTalk); Actor_Says(kActorSadik, 260, kAnimationModeTalk); Actor_Set_Goal_Number(kActorSadik, 416); return true; case 416: Loop_Actor_Walk_To_XYZ(kActorSadik, -961.0f, 0.0f, -778.0f, 0, false, false, 0); Actor_Face_Heading(kActorSadik, 150, false); return true; case 417: Actor_Face_Actor(kActorSadik, kActorMcCoy, true); Actor_Says(kActorSadik, 320, kAnimationModeTalk); Loop_Actor_Walk_To_XYZ(kActorSadik, -857.0f, 0.0f, -703.0f, 0, false, true, 0); Actor_Says(kActorMcCoy, 2330, kAnimationModeTalk); Actor_Says(kActorSadik, 330, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2335, kAnimationModeTalk); Actor_Says(kActorSadik, 340, kAnimationModeTalk); Actor_Set_Goal_Number(kActorSadik, 416); return true; case 418: Game_Flag_Reset(653); Actor_Set_Goal_Number(kActorClovis, 518); Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 9, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, false); return true; case 419: Actor_Put_In_Set(kActorSadik, kSetKP07); Actor_Set_At_XYZ(kActorSadik, -12.0f, -41.58f, 72.0f, 0); return true; case 420: case 450: return true; } return false; }
bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) { switch (newGoalNumber) { case kGoalSadikDefaut: AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append(kActorSadik, 33, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikRunFromBB09: AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append_Run(kActorSadik, 131, 0); AI_Movement_Track_Append_Run(kActorSadik, 132, 0); AI_Movement_Track_Append_Run(kActorSadik, 133, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikBB11Wait: AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append(kActorSadik, 313, 0); AI_Movement_Track_Repeat(kActorSadik); Game_Flag_Set(kFlagBB11SadikFight); return true; case kGoalSadikBB11ThrowMcCoy: Actor_Set_Immunity_To_Obstacles(kActorSadik, true); Actor_Face_Heading(kActorSadik, kActorMcCoy, kActorMcCoy); _animationState = 32; _animationFrame = -1; Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); return true; case kGoalSadikBB11CatchMcCoy: Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyBB11GetUp); AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append(kActorSadik, 314, 0); AI_Movement_Track_Append_Run(kActorSadik, 317, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikBB11KnockOutMcCoy: Actor_Change_Animation_Mode(kActorSadik, 62); return true; case kGoalSadikBB11KickMcCoy: Actor_Face_Heading(kActorSadik, 100, false); Actor_Change_Animation_Mode(kActorSadik, 63); Actor_Set_Goal_Number(kActorClovis, kGoalClovisBB11WalkToMcCoy); Actor_Set_Immunity_To_Obstacles(kActorSadik, false); return true; case kGoalSadikBB11TalkWithClovis: _nextSoundId = -1; // changed from original (0) to be more clear that this is an invalid sfx id return false; case 200: Actor_Put_In_Set(kActorSadik, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorSadik, 33, 0); Actor_Set_Goal_Number(kActorMcCoy, 199); return true; case kGoalSadikUG18Wait: Actor_Put_In_Set(kActorSadik, kSetUG18); Actor_Set_At_XYZ(kActorSadik, 111.89f, 0.0f, 408.42f, 0); Actor_Change_Animation_Mode(kActorSadik, 4); return true; case kGoalSadikUG18Move: Actor_Set_Targetable(kActorSadik, true); World_Waypoint_Set(436, kSetUG18, -356.11f, 0.0f, 652.42f); AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append_Run(kActorSadik, 436, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikUG18Decide: Actor_Set_Targetable(kActorSadik, false); return true; // goals 303, 304 and 305 are never set, cut out part of game? case 303: AI_Countdown_Timer_Reset(kActorSadik, kActorTimerAIScriptCustomTask0); AI_Countdown_Timer_Start(kActorSadik, kActorTimerAIScriptCustomTask0, 5); return true; case 304: Actor_Set_Targetable(kActorSadik, false); AI_Countdown_Timer_Reset(kActorSadik, kActorTimerAIScriptCustomTask0); return true; case 305: case kGoalSadikUG18WillShootMcCoy: case kGoalSadikUG18Leave: return true; case kGoalSadikUG18PrepareShootMcCoy: Sound_Play(kSfxLGCAL1, 100, 0, 0, 50); AI_Countdown_Timer_Start(kActorSadik, kActorTimerAIScriptCustomTask0, 2); return true; case kGoalSadikUG18ShootMcCoy: if (Player_Query_Current_Scene() == kSceneUG18) { Actor_Force_Stop_Walking(kActorMcCoy); Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack); Sound_Play(kSfxLGCAL1, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); Actor_Retired_Here(kActorMcCoy, 6, 6, true, -1); } return true; case 309: AI_Countdown_Timer_Reset(kActorSadik, kActorTimerAIScriptCustomTask0); return true; case 400: Actor_Set_Goal_Number(kActorSadik, 410); return true; case 410: if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants) == 1) { Actor_Set_Goal_Number(kActorSadik, 414); } else { Actor_Set_Goal_Number(kActorSadik, 411); } return true; case 411: Actor_Put_In_Set(kActorSadik, kSetKP05_KP06); Actor_Set_At_XYZ(kActorSadik, -1134.0f, 0.0f, 73.45f, 398); Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07Wait); Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieKP05Wait); return true; case 412: Actor_Says(kActorSadik, 60, 3); Actor_Says(kActorMcCoy, 2240, 3); Actor_Says(kActorSadik, 70, 3); Actor_Says(kActorSadik, 80, 3); Actor_Says(kActorMcCoy, 2245, 3); Actor_Says(kActorSadik, 90, 3); Actor_Says(kActorSadik, 100, 3); Actor_Says(kActorMcCoy, 2250, 3); Actor_Set_Goal_Number(kActorSadik, 413); return true; case 413: Loop_Actor_Walk_To_XYZ(kActorSadik, -1062.0f, 0.0f, 219.0f, 0, false, true, false); Actor_Set_Targetable(kActorSadik, true); Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 9, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, false); Actor_Set_Goal_Number(kActorSadik, 450); return true; case 414: Actor_Put_In_Set(kActorSadik, kSetKP05_KP06); Actor_Set_At_XYZ(kActorSadik, -961.0f, 0.0f, -778.0f, 150); Actor_Set_Targetable(kActorSadik, true); return true; case 415: Actor_Says(kActorSadik, 110, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2290, kAnimationModeTalk); Actor_Says(kActorSadik, 310, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2300, kAnimationModeTalk); if (Game_Flag_Query(kFlagSadikIsReplicant)) { Actor_Says(kActorSadik, 180, kAnimationModeTalk); Actor_Says(kActorSadik, 190, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2310, kAnimationModeTalk); Actor_Says(kActorSadik, 200, kAnimationModeTalk); } else { Actor_Says(kActorSadik, 140, kAnimationModeTalk); Actor_Says(kActorSadik, 150, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2305, kAnimationModeTalk); Actor_Says(kActorSadik, 160, kAnimationModeTalk); Actor_Says(kActorSadik, 170, kAnimationModeTalk); } Actor_Says(kActorMcCoy, 2315, kAnimationModeTalk); Actor_Says(kActorSadik, 210, kAnimationModeTalk); Actor_Says(kActorSadik, 220, kAnimationModeTalk); Actor_Says(kActorSadik, 230, kAnimationModeTalk); Actor_Says(kActorSadik, 240, kAnimationModeTalk); Actor_Says(kActorSadik, 250, kAnimationModeTalk); Actor_Says(kActorSadik, 260, kAnimationModeTalk); Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18NeedsReactorCoreFromMcCoy); return true; case kGoalSadikUG18NeedsReactorCoreFromMcCoy: Loop_Actor_Walk_To_XYZ(kActorSadik, -961.0f, 0.0f, -778.0f, 0, false, false, false); Actor_Face_Heading(kActorSadik, 150, false); return true; case 417: Actor_Face_Actor(kActorSadik, kActorMcCoy, true); Actor_Says(kActorSadik, 320, kAnimationModeTalk); Loop_Actor_Walk_To_XYZ(kActorSadik, -857.0f, 0.0f, -703.0f, 0, false, true, false); Actor_Says(kActorMcCoy, 2330, kAnimationModeTalk); Actor_Says(kActorSadik, 330, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2335, kAnimationModeTalk); Actor_Says(kActorSadik, 340, kAnimationModeTalk); Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18NeedsReactorCoreFromMcCoy); return true; case 418: Game_Flag_Reset(kFlagMcCoyIsHelpingReplicants); Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07LayDown); Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 9, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, false); return true; case 419: Actor_Put_In_Set(kActorSadik, kSetKP07); Actor_Set_At_XYZ(kActorSadik, -12.0f, -41.58f, 72.0f, 0); return true; case 420: case 450: return true; } return false; }