aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/ai/maggie.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/script/ai/maggie.cpp')
-rw-r--r--engines/bladerunner/script/ai/maggie.cpp634
1 files changed, 634 insertions, 0 deletions
diff --git a/engines/bladerunner/script/ai/maggie.cpp b/engines/bladerunner/script/ai/maggie.cpp
new file mode 100644
index 0000000000..150a2a3a0b
--- /dev/null
+++ b/engines/bladerunner/script/ai/maggie.cpp
@@ -0,0 +1,634 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "bladerunner/script/ai.h"
+#include "bladerunner/vector.h"
+
+namespace BladeRunner {
+
+void AIScriptMaggie::Initialize() {
+ var_45F3F0_animation_state = 0;
+ var_45F3F4_animation_frame = 0;
+ var_462B30 = 0;
+ var_45F3F8 = 0;
+ var_45F3FC = 0;
+ var_45F400 = 0;
+ var_45F404 = 0;
+ var_45F408 = 0;
+ Actor_Set_Goal_Number(kActorMaggie, 0);
+}
+
+bool AIScriptMaggie::Update() {
+ int goal = Actor_Query_Goal_Number(kActorMaggie);
+ if (Actor_Query_Which_Set_In(kActorMaggie) == 10 && Global_Variable_Query(1) == 4) {
+ Actor_Put_In_Set(kActorMaggie, 97);
+ Actor_Set_At_Waypoint(kActorMaggie, 39, 0);
+ }
+ if (goal == 414) {
+ Actor_Set_Goal_Number(kActorMaggie, 415);
+ } else if (goal == 413 && Actor_Query_Inch_Distance_From_Actor(kActorMcCoy, kActorMaggie) < 60) {
+ Actor_Set_Goal_Number(kActorMaggie, 415);
+ }
+ if (Global_Variable_Query(1) == 5) {
+ if (Actor_Query_Goal_Number(kActorMaggie) < 400) {
+ Actor_Set_Goal_Number(66, 400);
+ }
+ return true;
+ }
+ return false;
+}
+
+void AIScriptMaggie::TimerExpired(int timer) {
+ if (timer != 0) {
+ return;
+ }
+ int goal = Actor_Query_Goal_Number(kActorMaggie);
+ if (goal == 8) {
+ AI_Countdown_Timer_Reset(kActorMaggie, 0);
+ if (Random_Query(0, 4)) {
+ AI_Movement_Track_Flush(kActorMaggie);
+ AI_Movement_Track_Append(kActorMaggie, sub_44B260(), 0);
+ AI_Movement_Track_Repeat(kActorMaggie);
+ } else {
+ Actor_Change_Animation_Mode(kActorMaggie, 54);
+ }
+ return; //true
+ }
+ if (goal == 10) {
+ AI_Countdown_Timer_Reset(kActorMaggie, 0);
+ Actor_Change_Animation_Mode(kActorMaggie, 55);
+ return; //true
+ }
+ return; //false
+}
+
+void AIScriptMaggie::CompletedMovementTrack() {
+ int goal = Actor_Query_Goal_Number(kActorMaggie);
+ if (goal == 0 || goal > 9) {
+ if (goal == 413) {
+ Actor_Set_Goal_Number(kActorMaggie, 414);
+ return; //true
+ }
+ } else {
+ if (goal == 1) {
+ Actor_Set_Goal_Number(kActorMaggie, 7);
+ return; //true
+ }
+ if (goal == 8) {
+ Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
+ AI_Countdown_Timer_Reset(kActorMaggie, 0);
+ AI_Countdown_Timer_Start(kActorMaggie, 0, Random_Query(1, 5));
+ return; //true
+ }
+ if (goal == 9) {
+ Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
+ Actor_Change_Animation_Mode(kActorMaggie, 54);
+ return; //true
+ }
+ }
+ Actor_Set_Goal_Number(kActorMaggie, 8);
+ return; //true
+}
+
+void AIScriptMaggie::ReceivedClue(int clueId, int fromActorId) {
+}
+
+void AIScriptMaggie::ClickedByPlayer() {
+ if (!Game_Flag_Query(653) && Global_Variable_Query(1) == 5) {
+ if (Actor_Query_Goal_Number(kActorMaggie) == 413) {
+ Actor_Set_Targetable(kActorMaggie, true);
+ AI_Movement_Track_Flush(kActorMaggie);
+ Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);
+ Actor_Says(kActorMcCoy, 2400, 52);
+ }
+ return; // true
+ }
+ if (var_45F3F0_animation_state == 1 || var_45F3F0_animation_state == 12 || var_45F3F0_animation_state == 16) {
+ return; // false
+ }
+
+ float mccoy_x, mccoy_y, mccoy_z;
+
+ Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);
+ Actor_Query_XYZ(kActorMcCoy, &mccoy_x, &mccoy_y, &mccoy_z);
+ float distance = sub_44B200(kActorMaggie, mccoy_x, mccoy_y, mccoy_z);
+ if (distance > 60.0f) {
+ Actor_Says(0, 2430, 18);
+ Actor_Set_Goal_Number(kActorMaggie, 7);
+ return; // true
+ }
+
+ int v6 = Random_Query(0, 4);
+ if (v6 == 1) {
+ Actor_Says(kActorMcCoy, 2440, 18);
+ }
+ if (v6 == 0) {
+ Actor_Says(kActorMcCoy, 2435, 13);
+ }
+
+ int goal = Actor_Query_Goal_Number(kActorMaggie);
+ if (goal == 8) {
+ if (Random_Query(0, 1)) {
+ Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
+ Actor_Change_Animation_Mode(kActorMaggie, 57);
+ } else {
+ Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
+ Actor_Change_Animation_Mode(kActorMaggie, 56);
+ }
+ AI_Countdown_Timer_Reset(kActorMaggie, 0);
+ AI_Countdown_Timer_Start(kActorMaggie, 0, Random_Query(3, 9));
+ return; // true
+ }
+ if (goal == 10) {
+ Actor_Change_Animation_Mode(kActorMaggie, 0);
+ return; // true
+ }
+ if (goal == 11) {
+ Actor_Change_Animation_Mode(kActorMaggie, 54);
+ return; // true
+ }
+ Actor_Set_Goal_Number(kActorMaggie, 8);
+ return; // true
+}
+
+void AIScriptMaggie::EnteredScene(int sceneId) {
+}
+
+void AIScriptMaggie::OtherAgentEnteredThisScene(int otherActorId) {
+}
+
+void AIScriptMaggie::OtherAgentExitedThisScene(int otherActorId) {
+ if (otherActorId == kActorMcCoy && Actor_Query_Which_Set_In(kActorMaggie) == 10 && Global_Variable_Query(1) < 4) {
+ AI_Movement_Track_Flush(kActorMaggie);
+ Actor_Set_Goal_Number(kActorMaggie, 0);
+ }
+}
+
+void AIScriptMaggie::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
+}
+
+void AIScriptMaggie::ShotAtAndMissed() {
+}
+
+void AIScriptMaggie::ShotAtAndHit() {
+ AI_Movement_Track_Flush(kActorMaggie);
+ Actor_Set_Goal_Number(kActorMaggie, 414);
+ Actor_Set_Targetable(kActorMaggie, false);
+}
+
+void AIScriptMaggie::Retired(int byActorId) {
+}
+
+int AIScriptMaggie::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueId) {
+ return 0;
+}
+
+bool AIScriptMaggie::GoalChanged(int currentGoalNumber, int newGoalNumber) {
+ if (currentGoalNumber == 599) {
+ return true;
+ }
+ switch (newGoalNumber) {
+ case 11:
+ Actor_Change_Animation_Mode(kActorMaggie, 55);
+ var_45F3F0_animation_state = 9;
+ var_45F3F4_animation_frame = 0;
+ return true;
+ case 10:
+ Actor_Change_Animation_Mode(kActorMaggie, 54);
+ var_45F3F0_animation_state = 6;
+ var_45F3F4_animation_frame = 0;
+ AI_Countdown_Timer_Reset(kActorMaggie, 0);
+ AI_Countdown_Timer_Start(kActorMaggie, 0, Random_Query(2, 9));
+ return true;
+ case 9:
+ if (Random_Query(0, 2) <= 0) {
+ Actor_Face_Actor(kActorMaggie, kActorMcCoy, false);
+ Actor_Change_Animation_Mode(kActorMaggie, 54);
+ } else {
+ AI_Movement_Track_Flush(kActorMaggie);
+ if (Actor_Query_Which_Set_In(kActorMaggie) == 10) {
+ AI_Movement_Track_Append(kActorMaggie, sub_44B260(), 486);
+ }
+ AI_Movement_Track_Repeat(kActorMaggie);
+ }
+ return true;
+ case 8:
+ AI_Countdown_Timer_Reset(kActorMaggie, 0);
+ AI_Countdown_Timer_Start(kActorMaggie, 0, Random_Query(3, 9));
+ return true;
+ case 7:
+ AI_Countdown_Timer_Reset(kActorMaggie, 0);
+ AI_Movement_Track_Flush(kActorMaggie);
+ Loop_Actor_Walk_To_Actor(kActorMaggie, kActorMcCoy, 30, 0, false);
+ Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
+ Actor_Change_Animation_Mode(kActorMaggie, 56);
+ Actor_Set_Goal_Number(kActorMaggie, 8);
+ return true;
+ case 3:
+ Player_Loses_Control();
+ AI_Movement_Track_Flush(kActorMaggie);
+ Loop_Actor_Walk_To_Actor(kActorMaggie, kActorMcCoy, 48, 0, false);
+ Actor_Face_Actor(0, kActorMaggie, true);
+ Actor_Face_Actor(kActorMaggie, 0, false);
+ Actor_Says(kActorMcCoy, 2400, 52);
+ Actor_Set_Goal_Number(kActorMaggie, 8);
+ Player_Gains_Control();
+ return true;
+ case 1:
+ Actor_Put_In_Set(kActorMaggie, 10);
+ Actor_Set_At_Waypoint(kActorMaggie, sub_44B260(), 512);
+ AI_Movement_Track_Flush(kActorMaggie);
+ AI_Movement_Track_Append(kActorMaggie, 264, 0);
+ AI_Movement_Track_Repeat(kActorMaggie);
+ return true;
+ case 0:
+ Actor_Put_In_Set(kActorMaggie, 10);
+ Actor_Set_At_Waypoint(kActorMaggie, 265, 780);
+ return true;
+ case 415:
+ AI_Movement_Track_Flush(kActorMaggie);
+ Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);
+ Sound_Play(494, 50, 0, 0, 100);
+ Actor_Set_Goal_Number(kActorMaggie, 599);
+ Actor_Change_Animation_Mode(kActorMaggie, 51);
+ if (Actor_Query_Inch_Distance_From_Actor(0, kActorMaggie) < 144) {
+ Player_Loses_Control();
+ Actor_Change_Animation_Mode(kActorMcCoy, 48);
+ Actor_Retired_Here(kActorMcCoy, 6, 6, 1, -1);
+ } else {
+ Delay(3000);
+ Scene_Exits_Disable();
+ Actor_Says(kActorMcCoy, 2235, 12);
+ if (Actor_Query_Is_In_Current_Set(kActorSteele)) {
+ Actor_Says(kActorSteele, 1530, 58);
+ Actor_Set_Goal_Number(kActorSteele, 431);
+ }
+ Delay(2000);
+ Actor_Says(kActorMcCoy, 2390, 13);
+ if (Actor_Query_Goal_Number(kActorSadik) == 411) {
+ Actor_Set_Goal_Number(kActorSadik, 412);
+ } else {
+ Actor_Set_Goal_Number(kActorClovis, 512);
+ }
+ }
+ break;
+ case 413:
+ if (Actor_Query_Is_In_Current_Set(kActorSteele)) {
+ Actor_Says(kActorSteele, 3270, 59);
+ }
+ AI_Movement_Track_Flush(kActorMaggie);
+ AI_Movement_Track_Append(kActorMaggie, 540, 0);
+ AI_Movement_Track_Repeat(kActorMaggie);
+ break;
+ case 412:
+ Scene_Exits_Disable();
+ Loop_Actor_Walk_To_XYZ(kActorMaggie, -734.0, 0.0, -432.0, 0, 0, false, 0);
+ Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
+ Actor_Change_Animation_Mode(kActorMaggie, 56);
+ Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);
+ Actor_Says(kActorMcCoy, 2225, 3);
+ Actor_Set_Goal_Number(kActorMaggie, 413);
+ break;
+ case 411:
+ AI_Movement_Track_Flush(kActorMaggie);
+ Game_Flag_Set(461);
+ Actor_Put_In_Set(kActorMaggie, 9);
+ Actor_Set_At_XYZ(kActorMaggie, -672.0, 0.0, -428.0, 653);
+ Actor_Change_Animation_Mode(kActorMaggie, 0);
+ break;
+ case 400:
+ Actor_Set_Goal_Number(kActorMaggie, 410);
+ break;
+ }
+ return false;
+}
+
+bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
+ int goal;
+ switch (var_45F3F0_animation_state) {
+ case 16:
+ *animation = 871;
+ var_45F3F4_animation_frame = 0;
+ break;
+ case 15:
+ *animation = 874;
+ var_45F3F4_animation_frame = Slice_Animation_Query_Number_Of_Frames(874) - 1;
+ break;
+ case 14:
+ *animation = 874;
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(874) - 1) {
+ var_45F3F0_animation_state = 15;
+ var_45F3F4_animation_frame = Slice_Animation_Query_Number_Of_Frames(*animation) - 1;
+ Actor_Put_In_Set(kActorMaggie, 99);
+ Actor_Set_At_Waypoint(kActorMaggie, 41, 0);
+ }
+ break;
+ case 13:
+ *animation = 873;
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(873)) {
+ var_45F3F0_animation_state = 11;
+ var_45F3F4_animation_frame = 0;
+ *animation = 875;
+ Actor_Set_Goal_Number(kActorMaggie, 414);
+ }
+ break;
+ case 12:
+ *animation = 872;
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(872)) {
+ var_45F3F4_animation_frame = 0;
+ }
+ break;
+ case 11:
+ *animation = 875;
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(875)) {
+ var_45F3F4_animation_frame = 0;
+ }
+ break;
+ case 10:
+ *animation = 876;
+ var_45F3F4_animation_frame--;
+ if (var_45F3F4_animation_frame > 0) {
+ break;
+ }
+ var_45F3F0_animation_state = 6;
+ var_45F3F4_animation_frame = 0;
+ *animation = 867;
+ goal = Actor_Query_Goal_Number(66);
+ if (goal == 3) {
+ var_45F3F0_animation_state = 7;
+ var_45F3F4_animation_frame = 0;
+ *animation = 868;
+ } else if (goal == 7) {
+ Actor_Set_Goal_Number(kActorMaggie, 10);
+ Actor_Set_Goal_Number(kActorMaggie, 7);
+ } else {
+ Actor_Set_Goal_Number(kActorMaggie, 10);
+ }
+ break;
+ case 9:
+ *animation = 876;
+ var_45F3F4_animation_frame = Slice_Animation_Query_Number_Of_Frames(876) - 1;
+ break;
+ case 8:
+ *animation = 876;
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(876) - 1) {
+ var_45F3F0_animation_state = 9;
+ Actor_Set_Goal_Number(kActorMaggie, 11);
+ }
+ break;
+ case 7:
+ *animation = 868;
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(868)) {
+ *animation = 864;
+ var_45F3F0_animation_state = 0;
+ var_45F3F4_animation_frame = 0;
+ if (Actor_Query_Goal_Number(kActorMaggie) == 10) {
+ Actor_Set_Goal_Number(kActorMaggie, 8);
+ } else if (Actor_Query_Goal_Number(kActorMaggie) == 7) {
+ Actor_Set_Goal_Number(kActorMaggie, 12);
+ Actor_Set_Goal_Number(kActorMaggie, 7);
+ }
+ }
+ break;
+ case 6:
+ *animation = 867;
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(867)) {
+ var_45F3F4_animation_frame = 0;
+ }
+ break;
+ case 5:
+ *animation = 866;
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(866)) {
+ var_45F3F0_animation_state = 6;
+ var_45F3F4_animation_frame = 0;
+ *animation = 867;
+ if (Actor_Query_Goal_Number(kActorMaggie) == 9) {
+ Actor_Set_Goal_Number(kActorMaggie, 10);
+ }
+ }
+ break;
+ case 4:
+ *animation = 865;
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(865)) {
+ var_45F3F4_animation_frame = 0;
+ var_45F3F8--;
+ if (var_45F3F8 <= 0) {
+ Actor_Change_Animation_Mode(kActorMaggie, 0);
+ *animation = 864;
+ }
+ }
+ break;
+ case 3:
+ *animation = 870;
+ if (var_45F3F4_animation_frame == 1) {
+ Sound_Play(Random_Query(263, 264), 50, 0, 0, 50);
+ }
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
+ var_45F3FC--;
+ if (var_45F3FC <= 0 ) {
+ Actor_Change_Animation_Mode(kActorMaggie, 0);
+ *animation = 864;
+ var_45F3F0_animation_state = 0;
+ }
+ var_45F3F4_animation_frame = 0;
+ }
+ break;
+ case 2:
+ *animation = 869;
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(869)) {
+ Actor_Change_Animation_Mode(kActorMaggie, 0);
+ *animation = 864;
+ var_45F3F0_animation_state = 0;
+ var_45F3F4_animation_frame = 0;
+ }
+ break;
+ case 1:
+ *animation = 863;
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(863)) {
+ var_45F3F4_animation_frame = 0;
+ }
+ break;
+ case 0:
+ *animation = 864;
+ var_45F3F4_animation_frame++;
+ if (var_45F3F4_animation_frame >= Slice_Animation_Query_Number_Of_Frames(864)) {
+ var_45F3F4_animation_frame = 0;
+ }
+ break;
+ }
+ *frame = var_45F3F4_animation_frame;
+ return true;
+}
+
+bool AIScriptMaggie::ChangeAnimationMode(int mode) {
+ if (mode == 1) {
+ if (Game_Flag_Query(461)) {
+ var_45F3F0_animation_state = 12;
+ var_45F3F4_animation_frame = 0;
+ } else {
+ var_45F3F0_animation_state = 1;
+ var_45F3F4_animation_frame = 0;
+ }
+ return true;
+ }
+ if (mode == 0) {
+ if (Game_Flag_Query(461)) {
+ var_45F3F0_animation_state = 11;
+ var_45F3F4_animation_frame = 0;
+ } else {
+ switch (var_45F3F0_animation_state) {
+ case 8:
+ case 9:
+ var_45F3F0_animation_state = 10;
+ break;
+ case 6:
+ var_45F3F0_animation_state = 7;
+ var_45F3F4_animation_frame = 0;
+ break;
+ case 5:
+ var_45F3F0_animation_state = 7;
+ var_45F3F4_animation_frame = 0;
+ break;
+ case 2:
+ case 7:
+ case 10:
+ break;
+ default:
+ var_45F3F0_animation_state = 0;
+ var_45F3F4_animation_frame = 0;
+ break;
+ }
+ }
+ return true;
+ }
+
+ switch (mode) {
+ case 88:
+ var_45F3F0_animation_state = 16;
+ var_45F3F4_animation_frame = 0;
+ break;
+ case 57:
+ if (var_45F3F0_animation_state != 4) {
+ var_45F3F4_animation_frame = 0;
+ var_45F3F0_animation_state = 4;
+ }
+ var_45F3F8 = Random_Query(2, 6);
+ Sound_Play(276, 50, 0, 0, 50);
+ break;
+ case 56:
+ if (var_45F3F0_animation_state != 3) {
+ var_45F3F4_animation_frame = 0;
+ var_45F3F0_animation_state = 3;
+ }
+ var_45F3FC = Random_Query(2, 6);
+ break;
+ case 55:
+ if (var_45F3F0_animation_state == 6) {
+ var_45F3F0_animation_state = 8;
+ var_45F3F4_animation_frame = 0;
+ }
+ break;
+ case 54:
+ if ((unsigned int)var_45F3F0_animation_state <= 9) {
+ if (var_45F3F0_animation_state) {
+ if (var_45F3F0_animation_state == 9) {
+ var_45F3F0_animation_state = 10;
+ var_45F3F4_animation_frame = 0;
+ }
+ } else {
+ var_45F3F0_animation_state = 5;
+ var_45F3F4_animation_frame = 0;
+ }
+ }
+ break;
+ case 52:
+ if (Game_Flag_Query(461)) {
+ var_45F3F0_animation_state = 13;
+ var_45F3F4_animation_frame = 0;
+ } else {
+ var_45F3F0_animation_state = 2;
+ var_45F3F4_animation_frame = 0;
+ }
+ break;
+ case 51:
+ var_45F3F0_animation_state = 14;
+ var_45F3F4_animation_frame = 0;
+ Sound_Play(272, 50, 0, 0, 50);
+ break;
+ }
+ return true;
+}
+
+void AIScriptMaggie::QueryAnimationState(int *animationState, int *animationFrame, int *a3, int *a4) {
+ *animationState = var_45F3F0_animation_state;
+ *animationFrame = var_45F3F4_animation_frame;
+ *a3 = var_462B30;
+ *a4 = var_462B34;
+}
+
+void AIScriptMaggie::SetAnimationState(int animationState, int animationFrame, int a3, int a4) {
+ var_45F3F0_animation_state = animationState;
+ var_45F3F4_animation_frame = animationFrame;
+ var_462B30 = a3;
+ var_462B34 = a4;
+}
+
+bool AIScriptMaggie::ReachedMovementTrackWaypoint(int waypointId) {
+ return true;
+}
+
+void AIScriptMaggie::FledCombat() {
+}
+
+int AIScriptMaggie::sub_44B260() {
+ int random = Random_Query(0, 3);
+ if (random == 0) {
+ return 264;
+ }
+ if (random == 1) {
+ return 265;
+ }
+ if (random == 2) {
+ return 266;
+ }
+ return 267;
+}
+
+float AIScriptMaggie::sub_44B200(int actorId, float x, float y, float z) {
+ float actorX, actorY, actorZ;
+ Actor_Query_XYZ(actorId, &actorX, &actorY, &actorZ);
+ return sqrtf((z - actorZ) * (z - actorZ) + (y - actorY) * (y - actorY) + (x - actorX) * (x - actorX));
+}
+
+} // End of namespace BladeRunner