8#define _AI_FLYING_INC_ 0
15 4.5, 3.5, 2.6, 2.0, 1.5, 20.0,
32 script->functionTemp[1] = 0;
38 enemy->varTable[4] = npc->
pos.
y * 100.0;
46 f32 vt7 = (
f32)enemy->varTable[7] / 100.0;
47 f32 vt3 = (
f32)enemy->varTable[3] / 100.0;
48 f32 vt4 = (
f32)enemy->varTable[4] / 100.0;
49 f32 vt1 = (
f32)enemy->varTable[1] / 100.0;
53 enemy->varTable[4] = npc->
pos.
y * 100.0;
57 if ((enemy->varTable[0] & 0x11) == 1) {
60 enemy->varTable[0] |= 0x10;
69 enemy->varTable[0] |= 0x10;
74 if ((enemy->varTable[0] & 0x11) == 0x11) {
97 enemy->varTable[0] &= ~0x10;
100 if (enemy->varTable[1] > 0) {
120 enemy->varTable[2] =
clamp_angle(enemy->varTable[2] + 10);
124 if (enemy->varTable[9] <= 0) {
126 if (
script->functionTemp[1] <= 0) {
144 script->functionTemp[1]--;
147 enemy->varTable[9]--;
169 enemy->varTable[4] = npc->
pos.
y * 100.0;
188 script->functionTemp[0] = 3;
203 if (enemy->varTable[1] > 0) {
224 enemy->varTable[2] =
clamp_angle(enemy->varTable[2] + 10);
227 if (enemy->varTable[9] <= 0) {
241 enemy->varTable[9]--;
245 script->functionTemp[1]--;
246 if (
script->functionTemp[1] > 0) {
281 f32 jumpVel = (
f32)enemy->varTable[5] / 100.0;
282 f32 jumpScale = (
f32)enemy->varTable[6] / 100.0;
290 enemy->varTable[2] = 0;
326 f32 a = enemy->varTable[3];
327 f32 b = enemy->varTable[7];
351 script->functionTemp[0] = 0;
354 script->functionTemp[0] = 0;
356 }
else if (npc->
jumpVel < 0.0) {
406 script->functionTemp[0] = 0;
411 if (enemy->territory->wander.isFlying) {
422 enemy->varTable[2] = 0;
423 enemy->varTable[9] = 0;
424 enemy->varTable[3] = (
depth * 100.0) + 0.5;
425 enemy->varTable[7] = (posY * 100.0) + 0.5;
460 switch (
script->AI_TEMP_STATE) {
BSS s32 PopupMenu_SelectedIndex
void N FlyingAI_ChaseInit(Evt *script, MobileAISettings *aiSettings, EnemyDetectVolume *territory)
void N FlyingAI_LoiterInit(Evt *script, MobileAISettings *aiSettings, EnemyDetectVolume *territory)
void N FlyingAI_Loiter(Evt *script, MobileAISettings *aiSettings, EnemyDetectVolume *territory)
void N FlyingAI_Jump(Evt *script, MobileAISettings *aiSettings, EnemyDetectVolume *territory)
void N FlyingAI_Wander(Evt *script, MobileAISettings *aiSettings, EnemyDetectVolume *territory)
void N FlyingAI_JumpInit(Evt *script, MobileAISettings *aiSettings, EnemyDetectVolume *territory)
void N FlyingAI_Init(Npc *npc, Enemy *enemy, Evt *script, MobileAISettings *aiSettings)
void N FlyingAI_WanderInit(Evt *script, MobileAISettings *aiSettings, EnemyDetectVolume *territory)
void N FlyingAI_Chase(Evt *script, MobileAISettings *aiSettings, EnemyDetectVolume *territory)
void N FlyingAI_LosePlayer(Evt *script, MobileAISettings *aiSettings, EnemyDetectVolume *territory)
#define npc_raycast_down_sides
@ ENEMY_ANIM_INDEX_MELEE_PRE
@ ENEMY_ANIM_INDEX_MELEE_HIT
@ AI_FLAG_SKIP_IDLE_ANIM_AFTER_FLEE
@ AI_ACTION_LOOK_AROUND_DURING_LOITER
@ AI_ACTION_JUMP_WHEN_SEE_PLAYER
s32 evt_get_variable(Evt *script, Bytecode var)
b32 is_point_outside_territory(s32 shape, f32 pointX, f32 pointY, f32 centerX, f32 centerY, f32 sizeX, f32 sizeZ)
void ai_enemy_play_sound(Npc *npc, s32 arg1, s32 arg2)
f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by)
f32 get_clamped_angle_diff(f32, f32)
enum TerritoryShape shape
enum TerritoryShape detectShape
b32 basic_ai_check_player_dist(EnemyDetectVolume *arg0, Enemy *arg1, f32 arg2, f32 arg3, s8 arg4)
Npc * get_npc_unsafe(s32 npcID)
NpcSettings * npcSettings
enum TerritoryShape wanderShape
void npc_move_heading(Npc *npc, f32 speed, f32 yaw)
s32 skipPlayerDetectChance
EnemyTerritoryWander wander
EnemyTerritory * territory
s16 turnAroundYawAdjustment
PlayerStatus * gPlayerStatusPtr