void SceneScriptCT08::InitializeScene() { if (Game_Flag_Query(kFlagChapter3Intro)) { Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Outtake_Play(kOuttakeMovieB1, false, -1); if (Game_Flag_Query(kFlagLucyIsReplicant)) { Outtake_Play(kOuttakeMovieB2, false, -1); } else if (Game_Flag_Query(kFlagDektoraIsReplicant)) { Outtake_Play(kOuttakeMovieB3, false, -1); } else { Outtake_Play(kOuttakeMovieB4, false, -1); } Outtake_Play(kOuttakeMovieB5, false, -1); Game_Flag_Reset(kFlagChapter3Intro); } Actor_Force_Stop_Walking(kActorMcCoy); if (Game_Flag_Query(kFlagCT51toCT08)) { Setup_Scene_Information( -11.0f, 0.0f, -156.0f, 769); } else if (Game_Flag_Query(kFlagCT06toCT08)) { Setup_Scene_Information(-143.0f, 0.0f, -92.0f, 420); } else { Setup_Scene_Information(-183.0f, 0.0f, 128.0f, 205); } Scene_Exit_Add_2D_Exit(0, 0, 0, 30, 479, 3); Scene_Exit_Add_2D_Exit(1, 389, 0, 639, 303, 0); Scene_Exit_Add_2D_Exit(2, 115, 87, 137, 267, 3); if (Game_Flag_Query(kFlagMcCoyTiedDown)) { #if BLADERUNNER_ORIGINAL_BUGS Scene_2D_Region_Add(0, 185, 185, 230, 230); #else Scene_2D_Region_Add(0, 155, 180, 214, 235); #endif // BLADERUNNER_ORIGINAL_BUGS } Ambient_Sounds_Add_Looping_Sound(kSfxRAIN10, 100, 1, 1); Ambient_Sounds_Add_Looping_Sound(kSfxCTDRONE1, 20, 1, 1); Ambient_Sounds_Add_Speech_Sound(kActorBlimpGuy, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(kActorBlimpGuy, 20, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(kActorBlimpGuy, 40, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(kActorBlimpGuy, 50, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Sound(kSfxSPIN2A, 80, 180, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(kSfxSPIN2B, 50, 180, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(kSfxTHNDR2, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(kSfxTHNDR3, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(kSfxTHNDER4, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0); if (Game_Flag_Query(kFlagCT51toCT08)) { Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false); Scene_Loop_Set_Default(1); } else { Scene_Loop_Set_Default(1); } }
void SceneScriptUG05::PlayerWalkedIn() { if (Game_Flag_Query(663)) { if (Game_Flag_Query(368)) { Music_Stop(2); Actor_Put_In_Set(kActorOfficerGrayford, 78); Actor_Set_At_XYZ(kActorOfficerGrayford, 4.22f, -1.37f, -925.0f, 750); Actor_Set_Goal_Number(kActorOfficerGrayford, 599); Actor_Retired_Here(kActorOfficerGrayford, 70, 36, 1, -1); int v0 = sub_4021B0(); if (v0 == kActorDektora) { Actor_Put_In_Set(kActorDektora, 78); Actor_Set_At_XYZ(kActorDektora, -100.0f, -10.31f, -906.0f, 866); Actor_Force_Stop_Walking(kActorDektora); } else if (v0 == kActorLucy){ Actor_Put_In_Set(kActorLucy, 78); Actor_Set_At_XYZ(kActorLucy, -100.0f, -10.31f, -906.0f, 866); Actor_Force_Stop_Walking(kActorLucy); } } else { if (!Actor_Query_In_Set(kActorOfficerLeary, 78)) { Actor_Put_In_Set(kActorOfficerLeary, 78); Actor_Set_At_XYZ(kActorOfficerLeary, 0.0f, -1.37f, -1400.0f, 768); } if (!Actor_Query_In_Set(kActorOfficerGrayford, 78)) { ADQ_Flush(); ADQ_Add(kActorOfficerGrayford, 280, 3); Actor_Put_In_Set(kActorOfficerGrayford, 78); Actor_Set_At_XYZ(kActorOfficerGrayford, -16.0f, -1.37f, -960.0f, 768); } } } if (Game_Flag_Query(360)) { if (Game_Flag_Query(663) && !Game_Flag_Query(368)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, -288.35f, 132.77f, -1092.36f, 0, 1, false, 0); } else { Loop_Actor_Travel_Stairs(kActorMcCoy, 2, 0, 0); } } if (Game_Flag_Query(663)) { Game_Flag_Query(368); } Game_Flag_Reset(360); }
void ScriptUG05::PlayerWalkedIn() { if (Game_Flag_Query(663)) { if (Game_Flag_Query(368)) { Music_Stop(2); Actor_Put_In_Set(24, 78); Actor_Set_At_XYZ(24, 4.22f, -1.37f, -925.0f, 750); Actor_Set_Goal_Number(24, 599); Actor_Retired_Here(24, 70, 36, 1, -1); int v0 = sub_4021B0(); if (v0 == 3) { Actor_Put_In_Set(3, 78); Actor_Set_At_XYZ(3, -100.0f, -10.31f, -906.0f, 866); Actor_Force_Stop_Walking(3); } else if (v0 == 6) { Actor_Put_In_Set(6, 78); Actor_Set_At_XYZ(6, -100.0f, -10.31f, -906.0f, 866); Actor_Force_Stop_Walking(6); } } else { if (!Actor_Query_In_Set(23, 78)) { Actor_Put_In_Set(23, 78); Actor_Set_At_XYZ(23, 0.0f, -1.37f, -1400.0f, 768); } if (!Actor_Query_In_Set(24, 78)) { ADQ_Flush(); ADQ_Add(24, 280, 3); Actor_Put_In_Set(24, 78); Actor_Set_At_XYZ(24, -16.0f, -1.37f, -960.0f, 768); } } } if (Game_Flag_Query(360)) { if (Game_Flag_Query(663) && !Game_Flag_Query(368)) { Loop_Actor_Walk_To_XYZ(0, -288.35f, 132.77f, -1092.36f, 0, 1, false, 0); } else { Loop_Actor_Travel_Stairs(0, 2, 0, 0); } } if (Game_Flag_Query(663)) { Game_Flag_Query(368); } Game_Flag_Reset(360); }
void SceneScriptDR04::SceneFrameAdvanced(int frame) { if (Game_Flag_Query(kFlagDR05ViewExplosion)) { Game_Flag_Reset(kFlagDR05ViewExplosion); Game_Flag_Reset(kFlagDR05BombWillExplode); Scene_Loop_Set_Default(kDR04LoopMainPostExplosion); Scene_Loop_Start_Special(kSceneLoopModeOnce, kDR04LoopDR04Explosion, true); Music_Stop(4); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiPerished); } else { if (Game_Flag_Query(kFlagDR05BombWillExplode)) { Game_Flag_Reset(kFlagDR05BombWillExplode); Game_Flag_Set(kFlagDR05BombExploded); Scene_Loop_Set_Default(kDR04LoopMainPostExplosion); Scene_Loop_Start_Special(kSceneLoopModeOnce, kDR04LoopDR04Explosion, true); Item_Remove_From_World(kItemBomb); } switch (frame) { case 193: Sound_Play(301, 100, 0, 100, 50); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiChooseFate); Player_Loses_Control(); Actor_Force_Stop_Walking(kActorMcCoy); if (farEnoughFromExplosion()) { if (Player_Query_Combat_Mode()) { Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatHit); } else { Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeHit); } } else { Sound_Play_Speech_Line(kActorMcCoy, 9905, 100, 0, 99); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); Actor_Retired_Here(kActorMcCoy, 6, 6, true, -1); } Player_Gains_Control(); break; case 235: if (Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiJump && Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiLayDown && Actor_Query_Goal_Number(kActorMoraji) != kGoalMorajiPerished ) { Actor_Set_Goal_Number(kActorOfficerGrayford, 101); } Scene_Exits_Enable(); break; case 237: Overlay_Play("DR04OVER", 0, true, true, 0); break; } } }
void SceneScriptCT08::InitializeScene() { if (Game_Flag_Query(kFlagChapter3Intro)) { Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Outtake_Play(kOuttakeMovieB1, false, -1); if (Game_Flag_Query(kFlagLucyIsReplicant)) { Outtake_Play(kOuttakeMovieB2, false, -1); } else if (Game_Flag_Query(kFlagDektoraIsReplicant)) { Outtake_Play(kOuttakeMovieB3, false, -1); } else { Outtake_Play(kOuttakeMovieB4, false, -1); } Outtake_Play(kOuttakeMovieB5, false, -1); Game_Flag_Reset(kFlagChapter3Intro); } Actor_Force_Stop_Walking(kActorMcCoy); if (Game_Flag_Query(kFlagCT51toCT08)) { Setup_Scene_Information( -11.0f, 0.0f, -156.0f, 769); } else if (Game_Flag_Query(kFlagCT06toCT08)) { Setup_Scene_Information(-143.0f, 0.0f, -92.0f, 420); } else { Setup_Scene_Information(-183.0f, 0.0f, 128.0f, 205); } Scene_Exit_Add_2D_Exit(0, 0, 0, 30, 479, 3); Scene_Exit_Add_2D_Exit(1, 389, 0, 639, 303, 0); Scene_Exit_Add_2D_Exit(2, 115, 87, 137, 267, 3); if (Game_Flag_Query(kFlagMcCoyTiedDown)) { Scene_2D_Region_Add(0, 185, 185, 230, 230); } Ambient_Sounds_Add_Looping_Sound(381, 100, 1, 1); Ambient_Sounds_Add_Looping_Sound(205, 20, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 0, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 20, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 40, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Speech_Sound(60, 50, 10, 260, 17, 24, -100, 100, -101, -101, 1, 1); Ambient_Sounds_Add_Sound( 67, 80, 180, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound( 68, 50, 180, 16, 25, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(379, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(380, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(377, 5, 180, 50, 100, 0, 0, -101, -101, 0, 0); if (Game_Flag_Query(kFlagCT51toCT08)) { Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false); Scene_Loop_Set_Default(1); } else { Scene_Loop_Set_Default(1); } }
bool AIScriptTyrellGuard::GoalChanged(int currentGoalNumber, int newGoalNumber) { switch (newGoalNumber) { case 300: if (currentGoalNumber != newGoalNumber) { Actor_Change_Animation_Mode(kActorTyrellGuard, 55); AI_Countdown_Timer_Start(kActorTyrellGuard, 0, 30); } return true; case 301: Actor_Change_Animation_Mode(kActorTyrellGuard, kAnimationModeIdle); Delay(1000); Actor_Says(kActorTyrellGuard, 320, 14); Actor_Change_Animation_Mode(kActorTyrellGuard, 50); Ambient_Sounds_Play_Sound(590, 100, 0, 0, 0); Delay(1000); Actor_Force_Stop_Walking(kActorMcCoy); Actor_Set_Goal_Number(kActorMcCoy, 500); return true; case 302: AI_Countdown_Timer_Reset(kActorTyrellGuard, 0); Actor_Says(kActorTyrellGuard, 310, 14); AI_Countdown_Timer_Start(kActorTyrellGuard, 1, 20); return true; case 303: Actor_Change_Animation_Mode(kActorTyrellGuard, 50); Ambient_Sounds_Play_Sound(590, 100, 0, 0, 0); Delay(1000); Actor_Force_Stop_Walking(kActorMcCoy); Actor_Set_Goal_Number(kActorMcCoy, 500); return true; case 304: AI_Countdown_Timer_Reset(kActorTyrellGuard, 1); return true; } return false; }
bool SceneScriptDR04::ClickedOnExit(int exitId) { if (Actor_Query_Goal_Number(kActorMoraji) == kGoalMorajiLayDown) { Actor_Force_Stop_Walking(kActorMcCoy); Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiDie); Actor_Set_Goal_Number(kActorOfficerGrayford, 101); return true; } if (exitId == 0) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -761.0f, -0.04f, 97.0f, 0, true, false, 0)) { Async_Actor_Walk_To_XYZ(kActorMcCoy, -683.0f, -0.04f, 43.0f, 0, false); Game_Flag_Set(kFlagDR04toDR01); Set_Enter(kSetDR01_DR02_DR04, kSceneDR01); } return true; } if (exitId == 1) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1067.0f, 7.18f, 421.0f, 0, true, false, 0)) { Game_Flag_Set(kFlagNotUsed232); Game_Flag_Set(kFlagDR04toDR05); Set_Enter(kSetDR05, kSceneDR05); } return true; } if (exitId == 2) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -851.0f, 6.98f, 560.0f, 0, true, false, 0)) { Footstep_Sound_Override_On(3); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, true); Actor_Face_Heading(kActorMcCoy, 512, false); Loop_Actor_Travel_Stairs(kActorMcCoy, 7, true, kAnimationModeIdle); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -899.0f, 71.64f, 647.0f, 0, false, false, 0); Actor_Face_Heading(kActorMcCoy, 0, false); Loop_Actor_Travel_Stairs(kActorMcCoy, 7, true, kAnimationModeIdle); Actor_Set_Immunity_To_Obstacles(kActorMcCoy, false); Footstep_Sound_Override_Off(); Game_Flag_Set(kFlagDR04toDR06); Set_Enter(kSetDR06, kSceneDR06); } return true; } return true; //bug? }
bool AIScriptBulletBob::GoalChanged(int currentGoalNumber, int newGoalNumber) { if (newGoalNumber == kGoalBulletBobDefault && Game_Flag_Query(kFlagRC04McCoyWarned) && Player_Query_Current_Scene() == kSceneRC04 ) { Actor_Says(kActorBulletBob, 140, 16); return true; } if ( newGoalNumber == kGoalBulletBobWarningMcCoy && !Game_Flag_Query(kFlagRC04McCoyWarned) && Player_Query_Current_Scene() == kSceneRC04 ) { Actor_Says(kActorBulletBob, 120, 37); Actor_Says(kActorMcCoy, 4915, 13); return true; } if (newGoalNumber == kGoalBulletBobDead && !Actor_Clue_Query(kActorMcCoy, kClueVKBobGorskyReplicant) ) { Delay(2000); Actor_Voice_Over(2100, kActorVoiceOver); Actor_Voice_Over(2110, kActorVoiceOver); Actor_Voice_Over(2120, kActorVoiceOver); Actor_Voice_Over(2130, kActorVoiceOver); return true; } if (newGoalNumber == 6) { Scene_Exits_Disable(); Actor_Force_Stop_Walking(kActorMcCoy); Ambient_Sounds_Play_Speech_Sound(kActorMcCoy, 9900, 100, 0, 0, 0); Actor_Change_Animation_Mode(kActorMcCoy, 48); Actor_Retired_Here(kActorMcCoy, 6, 6, 1, -1); Scene_Exits_Enable(); return true; } 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; }
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; }
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; }
void SceneScriptUG18::DialogueQueueFlushed(int a1) { switch (Actor_Query_Goal_Number(kActorGuzza)) { case kGoalGuzzaUG18Target: Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18WillGetShotBySadik); Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack); Sound_Play(14, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatHit); ADQ_Add(kActorClovis, 630, 13); Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18SadikWillShootGuzza); break; case kGoalGuzzaUG18ShotByMcCoy: // Bug in the game, shot animation is not reset so McCoy looks still while he is shooting Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAttack); Sound_Play(13, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatHit); Delay(900); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAttack); Sound_Play(14, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatHit); Delay(1100); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAttack); Sound_Play(12, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatHit); Delay(900); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAttack); Sound_Play(14, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorGuzza, 61); Overlay_Play("UG18over", 1, false, true, 0); Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18FallDown); Player_Gains_Control(); ADQ_Add_Pause(2000); ADQ_Add(kActorSadik, 360, -1); ADQ_Add_Pause(2000); ADQ_Add(kActorClovis, 650, 14); ADQ_Add(kActorSadik, 370, 14); ADQ_Add(kActorClovis, 1320, 14); Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18GuzzaDied); break; case kGoalGuzzaUG18ShootMcCoy: Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatAttack); Sound_Play(13, 100, 0, 0, 50); Actor_Force_Stop_Walking(kActorMcCoy); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); Player_Loses_Control(); Actor_Retired_Here(kActorMcCoy, 6, 6, true, kActorGuzza); Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18FallDown); break; } switch (Actor_Query_Goal_Number(kActorClovis)) { case kGoalClovisUG18SadikWillShootGuzza: Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack); Sound_Play(14, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorGuzza, kAnimationModeCombatHit); ADQ_Add(kActorClovis, 640, 13); ADQ_Add(kActorGuzza, 1210, 13); Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18SadikIsShootingGuzza); break; case kGoalClovisUG18SadikIsShootingGuzza: Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack); Sound_Play(14, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorGuzza, 61); ADQ_Add_Pause(2000); ADQ_Add(kActorClovis, 650, 14); ADQ_Add(kActorSadik, 370, 14); ADQ_Add(kActorClovis, 1320, 14); Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18ShotBySadik); Actor_Retired_Here(kActorGuzza, 72, 32, true, kActorSadik); Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18GuzzaDied); Scene_Exits_Enable(); break; case kGoalClovisUG18GuzzaDied: Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18Move); break; } if (Actor_Query_Goal_Number(kActorSadik) == kGoalSadikUG18WillShootMcCoy) { Actor_Change_Animation_Mode(kActorSadik, kAnimationModeDie); Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18PrepareShootMcCoy); Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18Leave); } }
void SceneScriptUG18::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet) { if (actorId == kActorGuzza) { switch (newGoal) { case kGoalGuzzaUG18HitByMcCoy: Game_Flag_Set(kFlagMcCoyRetiredHuman); ADQ_Flush(); Actor_Modify_Friendliness_To_Other(kActorClovis, kActorMcCoy, 7); Actor_Modify_Friendliness_To_Other(kActorSadik, kActorMcCoy, 10); Player_Loses_Control(); Actor_Face_Actor(kActorGuzza, kActorMcCoy, true); ADQ_Add(kActorGuzza, 1220, 58); Scene_Exits_Enable(); Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18ShotByMcCoy); break; case kGoalGuzzaUG18MissedByMcCoy: ADQ_Flush(); Actor_Modify_Friendliness_To_Other(kActorClovis, kActorMcCoy, 7); Actor_Modify_Friendliness_To_Other(kActorSadik, kActorMcCoy, 10); Player_Loses_Control(); Actor_Face_Actor(kActorGuzza, kActorMcCoy, true); ADQ_Add(kActorGuzza, 1220, 58); Scene_Exits_Enable(); Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaUG18ShootMcCoy); break; } return; } if (actorId == kActorSadik) { switch (newGoal) { case kGoalSadikUG18Decide: if (Actor_Query_Friendliness_To_Other(kActorClovis, kActorMcCoy) > 55 && Game_Flag_Query(kFlagMcCoyRetiredHuman) ) { Actor_Says(kActorClovis, 660, 13); Actor_Says(kActorMcCoy, 5995, 13); Actor_Says(kActorClovis, 670, 13); Actor_Says(kActorMcCoy, 6000, 13); Actor_Says_With_Pause(kActorClovis, 680, 2.0f, 13); Actor_Says(kActorClovis, 690, 13); Actor_Says(kActorClovis, 700, 13); Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18Leave); Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18Leave); } else { Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18PrepareShootMcCoy); Actor_Set_Goal_Number(kActorClovis, kGoalClovisUG18Leave); } break; // goals 303, 304 and 305 are never set, cut out part of game? case 304: Actor_Modify_Friendliness_To_Other(kActorClovis, kActorMcCoy, -3); ADQ_Add(kActorSadik, 380, -1); Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18WillShootMcCoy); break; case 305: Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack); Sound_Play(12, 100, 0, 0, 50); Actor_Force_Stop_Walking(kActorMcCoy); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); Player_Loses_Control(); Actor_Retired_Here(kActorMcCoy, 6, 6, true, kActorSadik); break; } } }