void SceneScriptUG15::SceneFrameAdvanced(int frame) { if (Actor_Query_Goal_Number(kActorFreeSlotA) == 300) { float x, y, z; Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); if (-160.0f <= x && z < 220.0f ) { Actor_Set_Goal_Number(kActorFreeSlotA, 301); } } if (frame == 61) { Ambient_Sounds_Play_Sound(583, 80, 0, 0, 99); } if (Game_Flag_Query(677) && !Game_Flag_Query(682)) { float x, y, z; Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); if (-180.0f <= x && z < 220.0f && !Game_Flag_Query(724) ) { Game_Flag_Set(724); Game_Flag_Set(682); Scene_Loop_Set_Default(3); Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true); Actor_Set_Goal_Number(kActorMcCoy, 390); Actor_Query_XYZ(kActorFreeSlotA, &x, &y, &z); if (-200.0f < x && -62.0f > x ) { Actor_Set_Goal_Number(kActorFreeSlotA, 309); } } } // return false; }
bool AIScriptLucy::Update() { float x, y, z; if (Global_Variable_Query(kVariableChapter) == 3 && Actor_Query_Goal_Number(kActorLucy) < 200) { Actor_Set_Goal_Number(kActorLucy, 200); } if (Actor_Query_Goal_Number(kActorLucy) == 230 && Player_Query_Current_Scene() == 37) { Actor_Set_Goal_Number(kActorLucy, 233); } if (Global_Variable_Query(kVariableChapter) == 4 && Actor_Query_Goal_Number(kActorLucy) < 300) { Actor_Set_Goal_Number(kActorLucy, 300); } if (Global_Variable_Query(kVariableChapter) == 4 && Actor_Query_Goal_Number(kActorLucy) == 599 && Actor_Query_Which_Set_In(kActorLucy) != 99) { if (Actor_Query_Which_Set_In(kActorLucy) != Player_Query_Current_Set()) { Actor_Put_In_Set(kActorLucy, kSetFreeSlotI); Actor_Set_At_Waypoint(kActorLucy, 41, 0); } } if (Game_Flag_Query(616) && Actor_Query_Goal_Number(kActorLucy) == 201) { Actor_Put_In_Set(kActorLucy, kSetHF03); Actor_Set_At_Waypoint(kActorLucy, 371, 156); Actor_Set_Goal_Number(kActorLucy, 250); } if (Actor_Query_Goal_Number(kActorLucy) > 229 && Actor_Query_Goal_Number(kActorLucy) < 239 && Actor_Query_Goal_Number(kActorLucy) != 232 && Player_Query_Current_Scene() == 37 && Actor_Query_Which_Set_In(kActorLucy) == 40 && !Game_Flag_Query(701) && Actor_Query_Inch_Distance_From_Actor(kActorLucy, kActorMcCoy) < 84 && !Player_Query_Combat_Mode() && Actor_Query_Friendliness_To_Other(kActorLucy, kActorMcCoy) > 40) { Actor_Set_Goal_Number(kActorLucy, 232); } if (Actor_Query_Goal_Number(kActorLucy) == 235) { Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); if (z > -875.0f) { Game_Flag_Set(586); Actor_Set_Goal_Number(kActorLucy, 236); } } if (Actor_Query_Goal_Number(kActorLucy) == 237) { Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); if (x > 350.0f) { Game_Flag_Set(585); Actor_Set_Goal_Number(kActorLucy, 238); } } return false; }
bool ScriptMA04::ClickedOnExit(int exitId) { if (exitId == 0) { if (!Loop_Actor_Walk_To_XYZ(0, -7099.0f, 954.0f, 1866.0f, 0, 1, false, 0)) { Game_Flag_Set(36); Set_Enter(10, 49); } return true; } if (exitId == 1) { float x, y, z; Actor_Query_XYZ(0, &x, &y, &z); if (z <= 1677.0f || !Loop_Actor_Walk_To_XYZ(0, -7199.0f, 955.0f, 1675.0f, 0, 1, false, 0)) { if (sub_402888()) { Overlay_Remove("MA04OVER"); } Loop_Actor_Walk_To_XYZ(0, -7199.0f, 955.0f, 1675.0f, 0, 0, false, 1); Game_Flag_Set(62); if (Global_Variable_Query(1) != 2 && Global_Variable_Query(1) != 3) { Async_Actor_Walk_To_XYZ(0, -7199.0f, 956.17f, 1568.0f, 0, false); } Set_Enter(51, 51); } return true; } if (exitId == 2) { if (!Loop_Actor_Walk_To_XYZ(0, -7115.0f, 954.0f, 1742.0f, 0, 1, false, 0)) { int sounds[] = {252, 405, 404, 407, 406}; Ambient_Sounds_Play_Sound(sounds[Random_Query(0, 4)], 50, 0, 0, 0); Delay(3000); Loop_Actor_Walk_To_XYZ(0, -7139.0f, 954.0f, 1746.0f, 0, 1, false, 1); } } return false; }
bool SceneScriptUG10::ClickedOn2DRegion(int region) { float x, y, z; Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); if (region == 0 && !Player_Query_Combat_Mode()) { if (x >= 120.0f) { Actor_Says(kActorMcCoy, 8525, 3); } else if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 4.98f, 0.38f, 83.15f, 0, 1, false, 0)) { if (Game_Flag_Query(474)) { Scene_Loop_Set_Default(1); Scene_Loop_Start_Special(kSceneLoopModeOnce, 0, false); Game_Flag_Reset(474); Obstacle_Object("BOX01 BRIDGE", true); Player_Loses_Control(); } else { Scene_Loop_Set_Default(4); Scene_Loop_Start_Special(kSceneLoopModeOnce, 3, false); Game_Flag_Set(474); Unobstacle_Object("BOX01 BRIDGE", true); Player_Loses_Control(); } } return true; } return false; }
void AIScriptGenericWalkerC::movingStart() { float mccoyX, mccoyY, mccoyZ; float walkerX, walkerY, walkerZ; Actor_Query_XYZ(kActorMcCoy, &mccoyX, &mccoyY, &mccoyZ); Actor_Query_XYZ(kActorGenwalkerC, &walkerX, &walkerY, &walkerZ); deltaX = walkerX - mccoyX; deltaZ = walkerZ - mccoyZ; float dist = sqrt(deltaX * deltaX + deltaZ * deltaZ); if (dist == 0.0f) { deltaZ = 0.0f; deltaX = 0.0f; } else { deltaX *= 10.0f / dist; deltaZ *= 10.0f / dist; } }
void SceneScriptUG15::SceneFrameAdvanced(int frame) { if (Actor_Query_Goal_Number(kActorFreeSlotA) == kGoalFreeSlotAUG15Wait) { float x, y, z; Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); if (-160.0f <= x && 220.0f > z ) { Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15WalkOut); } } if (frame == 61) { Ambient_Sounds_Play_Sound(583, 80, 0, 0, 99); } if ( Game_Flag_Query(kFlagUG15BridgeWillBreak) && !Game_Flag_Query(kFlagUG15BridgeBroken) ) { float x, y, z; Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); if ( -180.0f <= x && 220.0f > z && !Game_Flag_Query(kFlagUG15BridgeBreaks) ) { Game_Flag_Set(kFlagUG15BridgeBreaks); Game_Flag_Set(kFlagUG15BridgeBroken); Scene_Loop_Set_Default(kUG15LoopMainLoopBridgeBroken); Scene_Loop_Start_Special(kSceneLoopModeOnce, kUG15LoopBridgeBreaks, true); Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyUG15Fall); Actor_Query_XYZ(kActorFreeSlotA, &x, &y, &z); if (-200.0f < x && -62.0f > x ) { Actor_Set_Goal_Number(kActorFreeSlotA, kGoalFreeSlotAUG15Fall); } } } // return false; }
bool SceneScriptUG10::ClickedOnExit(int exitId) { float x, y, z; Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); if (exitId == 0) { if ((!Game_Flag_Query(474) && x > 125.0f) || Game_Flag_Query(474)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 235.0f, 1.15f, 29.0f, 0, 1, false, 0)) { Game_Flag_Set(317); Set_Enter(74, kSceneUG01); return true; } } else if (!Game_Flag_Query(474)) { Actor_Says(kActorMcCoy, 8521, 3); } } else if (exitId == 1) { if ((!Game_Flag_Query(474) && x < 120.0f) || Game_Flag_Query(474)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1.83f, 1.15f, -410.8f, 0, 1, false, 0)) { Actor_Face_Heading(kActorMcCoy, 0, false); Loop_Actor_Travel_Stairs(kActorMcCoy, 9, 1, 0); Loop_Actor_Walk_To_XYZ(kActorMcCoy, -92.0f, 81.83f, -652.0f, 0, 0, false, 0); Game_Flag_Set(337); Set_Enter(76, kSceneUG03); return true; } } else if (!Game_Flag_Query(474)) { Actor_Says(kActorMcCoy, 6165, 3); } } else if (exitId == 2) { if ((!Game_Flag_Query(474) && x < 120.0f) || Game_Flag_Query(474)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -385.0f, 1.15f, 57.44f, 0, 1, false, 0)) { Actor_Face_Heading(kActorMcCoy, 1001, false); Loop_Actor_Travel_Ladder(kActorMcCoy, 1, 1, 0); Game_Flag_Set(424); Set_Enter(80, kSceneUG07); return true; } } else if (!Game_Flag_Query(474)) { Actor_Says(kActorMcCoy, 6165, 3); } } else if (exitId == 3) { if ((!Game_Flag_Query(474) && x < 120.0f) || Game_Flag_Query(474)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 2.5f, 1.15f, 405.0f, 0, 1, false, 0)) { Game_Flag_Set(347); Set_Enter(86, kSceneUG14); return true; } } else if (!Game_Flag_Query(474)) { Actor_Says(kActorMcCoy, 6165, 3); } } return false; }
void AIScriptGenericWalkerC::movingUpdate() { float walkerX, walkerY, walkerZ; Actor_Query_XYZ(kActorGenwalkerC, &walkerX, &walkerY, &walkerZ); int facing = Actor_Query_Facing_1024(kActorGenwalkerC); walkerX += deltaX; walkerZ += deltaZ; deltaX = deltaX * 0.97f; deltaZ = deltaZ * 0.97f; Actor_Set_At_XYZ(kActorGenwalkerC, walkerX, walkerY, walkerZ, facing); }
bool SceneScriptDR04::farEnoughFromExplosion() { float x, y, z; Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); return (x + 1089.94f) * (x + 1089.94f) + (z - 443.49f) * (z - 443.49f) >= (360.0f * 360.0f); }
bool ScriptDR01::ClickedOnExit(int exitId) { if (exitId == 0) { if (!Loop_Actor_Walk_To_XYZ(0, -835.0f, -0.04f, -118.0f, 0, 1, false, 0)) { Async_Actor_Walk_To_XYZ(0, -911.0f, -0.04f, -118.0f, 0, false); Ambient_Sounds_Adjust_Looping_Sound(112, 10, -100, 1); Game_Flag_Set(224); Set_Enter(7, 26); } return true; } if (exitId == 1) { if (!Loop_Actor_Walk_To_XYZ(0, -711.0f, -0.04f, 70.0f, 0, 1, false, 0)) { Async_Actor_Walk_To_XYZ(0, -796.0f, -0.04f, 166.0f, 0, false); Game_Flag_Set(10); Set_Enter(7, 28); } return true; } if (exitId == 2) { if (Loop_Actor_Walk_To_XYZ(0, -372.0f, -0.04f, -82.0f, 0, 1, false, 0)) { Game_Flag_Reset(176); Game_Flag_Reset(182); Game_Flag_Reset(179); Game_Flag_Reset(178); Game_Flag_Reset(180); Game_Flag_Reset(261); Game_Flag_Reset(177); Game_Flag_Reset(258); int spinnerDest = Spinner_Interface_Choose_Dest(-1, 0); switch (spinnerDest) { case 2: Game_Flag_Set(182); Game_Flag_Reset(253); Game_Flag_Set(249); Set_Enter(69, 78); break; case 3: Game_Flag_Set(176); Game_Flag_Reset(253); Game_Flag_Set(248); Set_Enter(4, 13); break; case 1: Game_Flag_Set(179); Game_Flag_Reset(253); Game_Flag_Set(250); Set_Enter(49, 48); break; case 0: Game_Flag_Set(178); Game_Flag_Reset(253); Game_Flag_Set(251); Set_Enter(61, 65); break; case 5: Game_Flag_Set(261); Game_Flag_Reset(253); Game_Flag_Set(307); Set_Enter(17, 82); break; case 4: Game_Flag_Set(180); Game_Flag_Reset(253); Game_Flag_Set(252); Set_Enter(0, 0); break; case 7: Game_Flag_Set(258); Game_Flag_Reset(253); Game_Flag_Set(254); Set_Enter(20, 2); break; case 8: Game_Flag_Set(181); Game_Flag_Reset(253); Game_Flag_Set(255); Set_Enter(54, 54); break; case 9: Game_Flag_Set(257); Game_Flag_Reset(253); Game_Flag_Set(256); Set_Enter(37, 34); break; default: Player_Loses_Control(); Game_Flag_Set(177); Loop_Actor_Walk_To_XYZ(0, -447.39f, 0.16f, -92.38f, 0, 0, true, 0); Player_Gains_Control(); break; } } return true; } if (exitId == 3) { float x, y, z; Actor_Query_XYZ(0, &x, &y, &z); bool v7 = false; if (-1200 < x) { v7 = Loop_Actor_Walk_To_XYZ(0, -1236.4f, -0.04f, -13.91f, 0, 1, false, 0); } if (!v7) { Game_Flag_Set(558); Game_Flag_Set(176); Game_Flag_Reset(177); Set_Enter(33, 23); } return true; } return false; }
bool SceneScriptUG14::ClickedOnExit(int exitId) { float x, y, z; Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); bool v1 = y > 57.0f; if (exitId == 0) { if (v1) { if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, 0, true, false, false)) { return false; } Actor_Face_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, true); Footstep_Sound_Override_On(3); Loop_Actor_Travel_Stairs(kActorMcCoy, 13, false, kAnimationModeIdle); Footstep_Sound_Override_Off(); } if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -278.0f, 12.97f, -152.0f, 0, true, false, false)) { Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Game_Flag_Set(kFlagUG14toUG19); Set_Enter(kSetUG19, kSceneUG19); } return true; } if (exitId == 1) { if (!v1) { if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, 0, true, false, false)) { return false; } Actor_Face_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, true); Footstep_Sound_Override_On(3); Loop_Actor_Travel_Stairs(kActorMcCoy, 13, true, kAnimationModeIdle); Footstep_Sound_Override_Off(); } if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -50.0f, 129.0f, -814.0f, 0, true, false, false)) { Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Game_Flag_Set(kFlagUG14toUG12); Set_Enter(kSetCT08_CT51_UG12, kSceneUG12); } return true; } if (exitId == 2) { if (!v1) { if (Loop_Actor_Walk_To_XYZ(kActorMcCoy, -14.53f, 12.12f, -150.16f, 0, true, false, false)) { return false; } Actor_Face_XYZ(kActorMcCoy, 141.47f, 128.92f, -150.16f, true); Footstep_Sound_Override_On(3); Loop_Actor_Travel_Stairs(kActorMcCoy, 13, true, kAnimationModeIdle); Footstep_Sound_Override_Off(); } if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 157.0f, 128.92f, -108.01f, 0, true, false, false)) { Footstep_Sound_Override_On(3); Loop_Actor_Travel_Stairs(kActorMcCoy, 6, true, kAnimationModeIdle); Footstep_Sound_Override_Off(); Loop_Actor_Walk_To_XYZ(kActorMcCoy, 233.0f, 186.04f, -32.0f, 0, false, false, false); Ambient_Sounds_Remove_All_Non_Looping_Sounds(true); Ambient_Sounds_Remove_All_Looping_Sounds(1); Game_Flag_Set(kFlagUG14toUG10); Set_Enter(kSetUG10, kSceneUG10); } return true; } return false; }