void SceneScriptNR04::sub_401DB0() { Dialogue_Menu_Clear_List(); DM_Add_To_List(1530, 10, 5, 3); DM_Add_To_List(1540, 3, 5, 10); Dialogue_Menu_Appear(320, 240); int answer = Dialogue_Menu_Query_Input(); Dialogue_Menu_Disappear(); if (answer == 1530) { Loop_Actor_Walk_To_Actor(kActorEarlyQ, kActorMcCoy, 36, 0, false); Actor_Change_Animation_Mode(kActorMcCoy, 23); Actor_Change_Animation_Mode(kActorEarlyQ, 23); Delay(1500); Actor_Says(kActorEarlyQ, 300, 3); Actor_Change_Animation_Mode(kActorMcCoy, 0); Actor_Change_Animation_Mode(kActorEarlyQ, 0); Actor_Says(kActorEarlyQ, 310, 3); ADQ_Add(kActorMcCoy, 3450, 3); Actor_Set_Targetable(kActorEarlyQ, false); Actor_Set_Goal_Number(kActorEarlyQ, 217); Actor_Clue_Lose(kActorMcCoy, kClueEarlyQsClub); Scene_Exits_Enable(); } else if (answer == 1540) { Actor_Says(kActorMcCoy, 8512, 15); Actor_Says(kActorEarlyQ, 320, 12); Actor_Says(kActorMcCoy, 3455, 13); Actor_Says(kActorEarlyQ, 330, 15); Actor_Says(kActorMcCoy, 3460, 12); Actor_Says(kActorEarlyQ, 340, 12); Actor_Says(kActorMcCoy, 3465, 12); Actor_Says(kActorEarlyQ, 350, 16); Actor_Set_Targetable(kActorEarlyQ, false); Actor_Set_Goal_Number(kActorEarlyQ, 217); Scene_Exits_Enable(); } }
void AIScriptSadik::Retired(int byActorId) { if ((Actor_Query_Goal_Number(kActorSadik) == 418 || Actor_Query_Goal_Number(kActorSadik) == 450 ) && Actor_Query_Which_Set_In(kActorSadik) != kSetKP07 ) { Scene_Exits_Enable(); } if (Actor_Query_In_Set(kActorSadik, kSetKP07)) { Global_Variable_Decrement(kVariableReplicantsSurvivorsAtMoonbus, 1); // can't Sadik still be human (Rep-sympathiser here? A bug? Actor_Set_Goal_Number(kActorSadik, kGoalSadikGone); if (Global_Variable_Query(kVariableReplicantsSurvivorsAtMoonbus) == 0) { Player_Loses_Control(); Delay(2000); Player_Set_Combat_Mode(false); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, true, false, false); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Game_Flag_Set(kFlagKP07toKP06); Game_Flag_Reset(kFlagMcCoyIsHelpingReplicants); Set_Enter(kSetKP05_KP06, kSceneKP06); return; //true; } } Actor_Set_Goal_Number(kActorSadik, kGoalSadikGone); return; //false; }
void AIScriptSadik::Retired(int byActorId) { if ((Actor_Query_Goal_Number(kActorSadik) == 418 || Actor_Query_Goal_Number(kActorSadik) == 450 ) && Actor_Query_Which_Set_In(kActorSadik) != kSetKP07 ) { Scene_Exits_Enable(); } if (Actor_Query_In_Set(kActorSadik, kSetKP07)) { Global_Variable_Decrement(kVariableReplicants, 1); Actor_Set_Goal_Number(kActorSadik, 599); if (Global_Variable_Query(kVariableReplicants) == 0) { Player_Loses_Control(); Delay(2000); Player_Set_Combat_Mode(false); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -12.0f, -41.58f, 72.0f, 0, true, false, 0); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Game_Flag_Set(579); Game_Flag_Reset(653); Set_Enter(kSetKP05_KP06, kSceneKP06); return; //true; } } Actor_Set_Goal_Number(kActorSadik, 599); return; //false; }
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; } } }
bool SceneScriptCT08::ClickedOn2DRegion(int region) { if (region == 0) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -108.0f, 0.0f, -178.0f, 0, true, false, 0)) { Actor_Face_Heading(kActorMcCoy, 512, false); Game_Flag_Reset(kFlagMcCoyTiedDown); Player_Set_Combat_Mode_Access(true); Scene_Exits_Enable(); Ambient_Sounds_Play_Sound(564, 40, 99, 0, 0); Scene_2D_Region_Remove(0); Player_Loses_Control(); } return true; } return false; }
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; }
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; }
void SceneScriptPS02::activateElevator() { Scene_Exits_Disable(); switch (Elevator_Activate(kElevatorPS)) { case 7: Game_Flag_Set(kFlagPS02toPS09); break; case 6: Game_Flag_Set(kFlagPS02toPS03); break; case 5: Game_Flag_Set(kFlagPS02toPS05); break; case 4: Game_Flag_Set(kFlagPS02toPS01); break; case 3: Game_Flag_Set(kFlagPS02toPS07); break; default: break; } Scene_Exits_Enable(); }
void ScriptMA07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet) { if (actorId == 53 && newGoal == 302) { Scene_Exits_Enable(); } }
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; } } }