3#include "sprite/npc/GrooveGuy.h"
6 Enemy* enemy = script->owner1.enemy;
11 enemy->varTable[0] = 0;
12 script->functionTemp[0] = 3;
16 Enemy* enemy = script->owner1.enemy;
20 switch (enemy->varTable[0]) {
22 enemy->varTable[0] = 1;
23 enemy->varTable[1] = 0;
24 npc->
curAnim = ANIM_GrooveGuy_Anim0C;
29 phase = enemy->varTable[1] % 16;
31 npc->
curAnim = ANIM_GrooveGuy_Anim0C;
32 }
else if (phase < 8) {
33 npc->
curAnim = ANIM_GrooveGuy_Anim0B;
34 }
else if (phase < 12) {
35 npc->
curAnim = ANIM_GrooveGuy_Anim0C;
36 }
else if (phase < 16) {
37 npc->
curAnim = ANIM_GrooveGuy_Anim0D;
40 if (enemy->varTable[1] >= 0x41) {
41 enemy->varTable[0] = 2;
45 enemy->varTable[0] = 3;
46 enemy->varTable[1] = 0;
48 npc->
curAnim = ANIM_GrooveGuy_Anim0C;
52 if (npc->
rot.
y > 360.0) {
56 if (enemy->varTable[1] >= 0x2E) {
57 enemy->varTable[0] = 4;
61 if (enemy->varTable[0] == 4) {
64 script->functionTemp[0] = 0;
68API_CALLABLE(N(GrooveGuyAI_Main)) {
69 Enemy* enemy = script->owner1.enemy;
90 script->functionTemp[0] = 0;
94 npc->
flags &= ~NPC_FLAG_JUMPING;
97 npc->
flags &= ~NPC_FLAG_FLYING;
99 npc->
flags &= ~NPC_FLAG_GRAVITY;
104 script->functionTemp[0] = 99;
105 script->functionTemp[1] = 0;
107 script->functionTemp[0] = 12;
109 enemy->
aiFlags &= ~AI_FLAG_SUSPEND;
110 enemy->
flags &= ~ENEMY_FLAG_BEGIN_WITH_CHASING;
121 switch (script->functionTemp[0]) {
145 if (script->functionTemp[0] != 0xE) {
void N GrooveGuyAI_03(Evt *script, MobileAISettings *aiSettings, EnemyDetectVolume *territory)
void N GrooveGuyAI_02(Evt *script, MobileAISettings *aiSettings, EnemyDetectVolume *territory)
#define npc_raycast_down_sides
@ ENEMY_FLAG_BEGIN_WITH_CHASING
s32 evt_get_variable(Evt *script, Bytecode var)
void basic_ai_chase_init(Evt *script, MobileAISettings *npcAISettings, EnemyDetectVolume *territory)
void basic_ai_lose_player(Evt *script, MobileAISettings *npcAISettings, EnemyDetectVolume *territory)
void basic_ai_wander(Evt *script, MobileAISettings *npcAISettings, EnemyDetectVolume *territory)
void basic_ai_chase(Evt *script, MobileAISettings *npcAISettings, EnemyDetectVolume *territory)
void basic_ai_found_player_jump_init(Evt *script, MobileAISettings *npcAISettings, EnemyDetectVolume *territory)
void basic_ai_wander_init(Evt *script, MobileAISettings *npcAISettings, EnemyDetectVolume *territory)
void basic_ai_found_player_jump(Evt *script, MobileAISettings *npcAISettings, EnemyDetectVolume *territory)
void basic_ai_suspend(Evt *script)
enum TerritoryShape shape
enum TerritoryShape detectShape
Npc * get_npc_unsafe(s32 npcID)
void set_npc_yaw(Npc *npc, f32 yaw)
s32 skipPlayerDetectChance
EnemyTerritoryWander wander
EnemyTerritory * territory