Match-a-palooza (75% functions, 60% bytes) (#666)

* aura_update

* CompareFloats

* UnkBufferFunc

* SetPlayerStatusPosYaw

* SetNpcPosYaw

* IsAOrBPressed

* UnkEnemyPosFunc

* UnkNpcAIFunc47

* UnkFunc57

* UnkFunc58

* UnkFunc59

* delete unneded data

* UnkFunc60

* UnkFunc61

* UnkNpcAIFunc48

* UnkNpcAIFunc49

* UnkNpcAIMainFunc7

* lee func

* cleanup

* UnkFunc62

* UnkNpcAIMainFunc8

* SixFloatsFunc

* UnkNpcAIMainFunc9 part 1

* UnkNpcAIMainFunc9 part 2

* UnkNpcAIMainFunc10

* warnings
This commit is contained in:
Ethan Roseman 2022-03-20 06:12:30 -04:00 committed by GitHub
parent 30f66666d6
commit 3ff0057674
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
531 changed files with 2218 additions and 29889 deletions

View File

@ -609,7 +609,7 @@ typedef struct Shadow {
/* 0x07 */ char unk_07;
/* 0x08 */ s16 entityModelID;
/* 0x0A */ s16 vertexSegment;
/* 0x0C */ Vtx_tn** vertexArray;
/* 0x0C */ Vtx* vertexArray;
/* 0x10 */ Vec3f position;
/* 0x1C */ Vec3f scale;
/* 0x28 */ Vec3f rotation;
@ -1789,7 +1789,10 @@ typedef struct ActorState { // TODO: Make the first field of this an ActorMoveme
/* 0x00 */ Vec3f currentPos;
/* 0x0C */ Vec3f goalPos;
/* 0x18 */ Vec3f unk_18;
/* 0x24 */ char unk_24[24];
/* 0x24 */ f32 unk_24;
/* 0x28 */ f32 unk_28;
/* 0x2C */ char unk_2C[0x4];
/* 0x30 */ Vec3f unk_30;
/* 0x3C */ f32 acceleration;
/* 0x40 */ f32 speed;
/* 0x44 */ f32 velocity;

View File

@ -26,6 +26,7 @@
#define dist2D dead_dist2D
#define sin_deg dead_sin_deg
#define cos_deg dead_cos_deg
#define sin_cos_deg dead_sin_cos_deg
#define gPlayerStatus dead_gPlayerStatus
#define gPlayerActionState dead_gPlayerActionState
#define is_point_within_region dead_is_point_within_region
@ -48,6 +49,7 @@
#define sfx_adjust_env_sound_pos dead_sfx_adjust_env_sound_pos
#define fx_star_spirits_energy dead_fx_star_spirits_energy
#define heap_malloc dead_heap_malloc
#define general_heap_malloc dead_general_heap_malloc
#define update_lerp dead_update_lerp
#define create_shadow_type dead_create_shadow_type
#define fx_spirit_card dead_fx_spirit_card
@ -99,5 +101,6 @@
#define func_8004A124 func_8004E544
#define func_8004A3E8 func_8004E808
#define gCurrentEncounter dead_gCurrentEncounter
#define fx_motion_blur_flame dead_fx_motion_blur_flame
#endif

View File

@ -536,7 +536,7 @@ typedef struct SleepBubbleFXData {
} SleepBubbleFXData; // size = 0xCC
typedef struct AuraFXData {
/* 0x00 */ s32 unk_00;
/* 0x00 */ s32 type;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;

View File

@ -17,10 +17,15 @@ void nuBoot(void);
void boot_idle(void);
void boot_main(void);
void is_debug_init(void);
f32 signF(f32 val);
void func_8002D160(void);
void* heap_malloc(s32 size);
void* _heap_malloc(HeapNode* head, u32 size);
void* _heap_malloc_tail(HeapNode* head, u32 size);
u32 _heap_free(HeapNode* heapNodeList, void* addrToFree);
void* _heap_realloc(HeapNode* heapNodeList, void* addr, u32 newSize);
HeapNode* _heap_create(HeapNode* addr, u32 size);
@ -84,6 +89,8 @@ void get_msg_properties(s32 msgID, s32* height, s32* width, s32* maxLineChars, s
void replace_window_update(s32 idx, s8 arg1, WindowUpdateFunc pendingFunc);
void decode_yay0(void* src, void* dst);
s32 func_800493EC(Enemy* enemy, s32 arg1, f32 arg2, f32 arg3);
//pause
void pause_init(void);
void pause_handle_input(s32 buttonsPressed, s32 buttonsHeld);
@ -96,6 +103,8 @@ void filemenu_set_cursor_goal_pos(s32 windowIndex, s32 posX, s32 posY);
Message* filemenu_get_menu_message(s32 idx);
void filemenu_draw_message(Message*, s32 posX, s32 posY, s32 alpha, s32 color, s32 flags);
void gfx_task_background(void);
void update_enemy_shadows(void);
void update_hero_shadows(void);
@ -617,7 +626,10 @@ void state_step_demo(void);
void state_drawUI_demo(void);
void game_mode_set_fpDrawAuxUI(s32 i, void (*fn)(void));
void func_802B2000(void);
void func_802B203C(void);
void func_802B2078(void);
void func_802B20B4(void);
void initialize_curtains(void);
void update_curtains(void);

View File

@ -161,8 +161,12 @@ void animator_update_model_transforms(ModelAnimator* animator, Mtx* rootTransfor
void render_animated_model(s32 animatorID, Mtx* rootTransform);
void animator_node_update_model_transform(ModelAnimator* animator, f32 (*flipMtx)[4], AnimatorNode* node,
Mtx* rootTransform);
void delete_model_animator_node(AnimatorNode* node);
void delete_model_animator_nodes(ModelAnimator* animator);
void delete_model_animator(ModelAnimator* animator);
void render_animated_model_with_vertices(s32 animatorID, Mtx* rootTransform, s32 vtxSegment, Vtx* vertexArray);
void appendGfx_animator(ModelAnimator* animator);
ModelAnimator* set_animator_render_callback(s32 animModelID, s32 callbackArg, s32 callbackFunc);
void reload_mesh_animator_tree(ModelAnimator* animator);
s32 step_mesh_animator(ModelAnimator* animator);
#endif

View File

@ -220,12 +220,12 @@ s32 func_800493EC(Enemy* enemy, s32 arg1, f32 arg2, f32 arg3) {
add_vec2D_polar(&f1, &f2, arg3, 270.0f - npc->renderYaw);
if (dist2D(f1, f2, playerStatus->position.x, playerStatus->position.z) <= arg2) {
return 1;
return TRUE;
}
}
}
return 0;
return FALSE;
}
void ai_enemy_play_sound(Npc* npc, s32 arg1, s32 arg2) {

View File

@ -32,7 +32,7 @@ INCLUDE_ASM(s32, "EC9D00", func_802401CC_EC9ECC);
#include "world/common/UnkFunc22.inc.c"
INCLUDE_ASM(s32, "EC9D00", func_80240600_ECA300);
#include "world/common/UnkFunc60.inc.c"
#include "world/common/UnkFunc23.inc.c"

View File

@ -5,8 +5,6 @@
#define NAMESPACE ED0310
extern f32 D_8024365C_ED364C[];
#include "world/common/UnkNpcAIFunc23.inc.c"
#include "world/common/UnkNpcAIFunc35.inc.c"
@ -17,15 +15,7 @@ extern f32 D_8024365C_ED364C[];
#include "world/common/UnkNpcAIFunc2.inc.c"
void func_80240F74_ED0F64(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += D_8024365C_ED364C[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"

View File

@ -5,8 +5,6 @@
#define NAMESPACE EDEA00
extern f32 D_802441DC_EE2B9C[];
#include "world/common/UnkFunc41.inc.c"
#include "world/common/UnkNpcAIFunc23.inc.c"
@ -19,15 +17,7 @@ extern f32 D_802441DC_EE2B9C[];
#include "world/common/UnkNpcAIFunc2.inc.c"
void func_80240E18_EDF7D8(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += D_802441DC_EE2B9C[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"

File diff suppressed because one or more lines are too long

View File

@ -32,7 +32,7 @@ INCLUDE_ASM(s32, "EED1E0", func_802402AC_EED3AC);
#include "world/common/UnkFunc22.inc.c"
INCLUDE_ASM(s32, "EED1E0", func_802406E0_EED7E0);
#include "world/common/UnkFunc60.inc.c"
#include "world/common/UnkFunc23.inc.c"

View File

@ -5,8 +5,6 @@
#define NAMESPACE EEDF50
extern f32 D_80244070_EF1170[];
#include "world/common/UnkNpcAIFunc23.inc.c"
#include "world/common/UnkNpcAIFunc35.inc.c"
@ -17,15 +15,7 @@ extern f32 D_80244070_EF1170[];
#include "world/common/UnkNpcAIFunc2.inc.c"
void func_80241AA4_EEEBA4(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += D_80244070_EF1170[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"

View File

@ -15,17 +15,7 @@
#include "world/common/UnkNpcAIFunc2.inc.c"
extern f32 D_802444BC_EF6ACC[];
void func_80240CC4_EF32D4(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += D_802444BC_EF6ACC[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"

View File

@ -1034,6 +1034,7 @@ s32 entity_get_collision_flags(Entity* entity);
void entity_free_static_data(EntityBlueprint* data);
void update_entity_shadow_position(Entity* entity);
s32 entity_raycast_down(f32* x, f32* y, f32* z, f32* hitYaw, f32* hitPitch, f32* hitLength);
void func_80117D00(Model* model);
void load_model_transforms(ModelNode* model, ModelNode* parent, Matrix4f mdlTxMtx, s32 treeDepth);
void enable_transform_group(u16 modelID);
@ -2914,6 +2915,7 @@ ModelTransformGroup* get_transform_group(s32 index) {
return (*gCurrentTransformGroups)[index];
}
void func_8011B1D8(ModelNode*);
INCLUDE_ASM(s32, "a5dd0_len_114e0", func_8011B1D8);
void make_transform_group(u16 modelID) {

View File

@ -2031,7 +2031,7 @@ ApiStatus SummonEnemy(Evt* script, s32 isInitialCall) {
switch (script->functionTemp[0]) {
case 0:
script->functionTemp[1] = create_actor(evt_get_variable(script, *args++));
script->functionTempActor[1] = create_actor((struct FormationRow*)evt_get_variable(script, *args++));
script->functionTemp[2] = evt_get_variable(script, *args++);
script->functionTemp[0] = 1;
break;

View File

@ -2,7 +2,7 @@
#define NAMESPACE b_area_kpa3
INCLUDE_ASM(s32, "battle/area_kpa3/6BBC60", func_802180D0_6BBC60);
#include "world/common/UnkFunc62.inc.c"
#include "common/ActorJumpToPos.inc.c"

View File

@ -754,8 +754,8 @@ EvtScript N(8021F5F8) = {
ApiStatus func_80218100_464590(Evt*, s32);
INCLUDE_ASM(s32, "battle/area_mac/actor/lee", func_80218100_464590);
ApiStatus func_80218300_464790(Evt*, s32);
INCLUDE_ASM(s32, "battle/area_mac/actor/lee", func_80218300_464790);
#include "world/common/UnkFunc62.inc.c"
#include "common/ActorJumpToPos.inc.c"
@ -784,7 +784,7 @@ EvtScript N(8021F6E0) = {
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(AddGoalPos, ACTOR_SELF, 0, 0, 5)
EVT_CALL(SetJumpAnimations, ACTOR_SELF, 1, NPC_ANIM_battle_goombario_default_headbonk, NPC_ANIM_battle_goombario_default_headbonk, NPC_ANIM_battle_goombario_default_headbonk)
EVT_CALL(func_80218300_464790, LW(10), 0)
EVT_CALL(N(UnkFunc62), LW(10), 0)
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), 0, 0, 1, 16)
EVT_SWITCH(LW(0))
EVT_CASE_OR_EQ(6)
@ -843,7 +843,7 @@ EvtScript N(8021F6E0) = {
EVT_END_THREAD
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(SetJumpAnimations, ACTOR_SELF, 1, NPC_ANIM_battle_goombario_default_headbonk, NPC_ANIM_battle_goombario_default_headbonk, NPC_ANIM_battle_goombario_default_headbonk)
EVT_CALL(func_80218300_464790, LW(10), 3)
EVT_CALL(N(UnkFunc62), LW(10), 3)
EVT_CASE_EQ(1)
EVT_THREAD
EVT_WAIT_FRAMES(4)
@ -857,7 +857,7 @@ EvtScript N(8021F6E0) = {
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(EnableActorBlur, -127, 1)
EVT_CALL(SetJumpAnimations, ACTOR_SELF, 1, NPC_ANIM_battle_goombario_default_headbonk, NPC_ANIM_battle_goombario_default_headbonk, NPC_ANIM_battle_goombario_default_headbonk)
EVT_CALL(func_80218300_464790, LW(10), 3)
EVT_CALL(N(UnkFunc62), LW(10), 3)
EVT_CALL(EnableActorBlur, -127, 0)
EVT_CASE_EQ(2)
EVT_THREAD
@ -881,7 +881,7 @@ EvtScript N(8021F6E0) = {
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
EVT_CALL(EnableActorBlur, -127, 1)
EVT_CALL(SetJumpAnimations, ACTOR_SELF, 1, NPC_ANIM_battle_goombario_default_headbonk, NPC_ANIM_battle_goombario_default_headbonk, NPC_ANIM_battle_goombario_default_headbonk)
EVT_CALL(func_80218300_464790, LW(10), 3)
EVT_CALL(N(UnkFunc62), LW(10), 3)
EVT_CALL(EnableActorBlur, -127, 0)
EVT_END_SWITCH
EVT_CHILD_THREAD
@ -1968,7 +1968,7 @@ ActorPartBlueprint N(partsTable_8022348C)[] = {
extern EvtScript N(init_Parakarry);
ActorBlueprint N(parakerry) = {
ActorBlueprint N(parakarry) = {
.flags = ACTOR_FLAG_FLYING,
.type = ACTOR_TYPE_LEE_PARAKARRY,
.level = 0,
@ -2254,8 +2254,8 @@ EvtScript N(nextTurn_80224320) = {
EVT_END
};
Formation N(formation_parakerry) = {
{ .actor = &N(parakerry), .home = { .vec = &N(vector3D_8021E940) }}
Formation N(formation_parakarry) = {
{ .actor = &N(parakarry), .home = { .vec = &N(vector3D_8021E940) }}
};
s32 N(idleAnimations_80224410)[] = {
@ -3984,8 +3984,41 @@ ApiStatus func_802197B8_465C48(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
ApiStatus func_80219824_465CB4(Evt* script, s32 isInitialCall);
INCLUDE_ASM(s32, "battle/area_mac/actor/lee", func_80219824_465CB4);
ApiStatus func_80219824_465CB4(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 partnerID = evt_get_variable(script, *args++);
Actor* actor = get_actor(script->owner1.enemyID);
FormationRow* formation = NULL;
switch (partnerID) {
case PARTNER_GOOMBARIO:
formation = N(formation_goombario);
break;
case PARTNER_KOOPER:
formation = N(formation_kooper);
break;
case PARTNER_BOMBETTE:
formation = N(formation_bombette);
break;
case PARTNER_PARAKARRY:
formation = N(formation_parakarry);
break;
case PARTNER_BOW:
formation = N(formation_bow);
break;
case PARTNER_WATT:
formation = N(formation_watt);
break;
case PARTNER_SUSHIE:
formation = N(formation_sushie);
break;
case PARTNER_LAKILESTER:
formation = N(formation_lakilester);
break;
}
formation->priority = actor->turnPriority + 10;
return ApiStatus_DONE2;
}
EvtScript N(copyPartner) = {
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
@ -4029,7 +4062,7 @@ EvtScript N(copyPartner) = {
EVT_CASE_EQ(3)
EVT_CALL(SummonEnemy, EVT_ADDR(N(formation_bombette)), 0)
EVT_CASE_EQ(4)
EVT_CALL(SummonEnemy, EVT_ADDR(N(formation_parakerry)), 0)
EVT_CALL(SummonEnemy, EVT_ADDR(N(formation_parakarry)), 0)
EVT_CASE_EQ(9)
EVT_CALL(SummonEnemy, EVT_ADDR(N(formation_bow)), 0)
EVT_CASE_EQ(6)

View File

@ -2,7 +2,7 @@
#define NAMESPACE b_area_pra3
INCLUDE_ASM(s32, "battle/area_pra3/669D80", func_80218000_669D80);
#include "world/common/UnkFunc62.inc.c"
#include "common/ActorJumpToPos.inc.c"
@ -42,7 +42,7 @@ ApiStatus func_80219304_66B084(Evt* script, s32 isInitialCall) {
if (unkDuplighost->effect2 != NULL) {
unkDuplighost->effect2->flags |= 0x10;
}
return ApiStatus_DONE2;
}
@ -70,7 +70,7 @@ INCLUDE_ASM(s32, "battle/area_pra3/669D80", func_802193F0_66B170);
ApiStatus func_802194B8_66B238(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
evt_set_variable(script, *args++, gPlayerData.currentPartner);
evt_set_variable(script, *args++, gPlayerData.partners[gPlayerData.currentPartner].level);
return ApiStatus_DONE2;

View File

@ -3,7 +3,7 @@
#define NAMESPACE b_area_sam
INCLUDE_ASM(s32, "battle/area_sam/623BA0", func_80218000_623BA0);
#include "world/common/UnkFunc62.inc.c"
#include "common/ActorJumpToPos.inc.c"
@ -49,7 +49,7 @@ ApiStatus func_80219304_624EA4(Evt* script, s32 isInitialCall) {
if (unkDuplighost->effect2 != NULL) {
unkDuplighost->effect2->flags |= EFFECT_INSTANCE_FLAGS_10;
}
return ApiStatus_DONE2;
}
@ -83,7 +83,7 @@ ApiStatus func_802193F0_624F90(Evt* script, s32 isInitialCall) {
ApiStatus func_802194B8_625058(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
evt_set_variable(script, *args++, gPlayerData.currentPartner);
evt_set_variable(script, *args++, gPlayerData.partners[gPlayerData.currentPartner].level);
return ApiStatus_DONE2;

View File

@ -154,8 +154,7 @@ BSS static char pad;
#include "common/UnkEnemyFunc.inc.c"
ApiStatus func_80219530_4B2720(Evt* script, s32 isInitialCall);
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B2550", func_80219530_4B2720);
#include "common/UnkEnemyPosFunc.inc.c"
#include "common/GetLastActorEventType.inc.c"
@ -266,7 +265,7 @@ EvtScript N(8022B6E8) = {
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(func_80219530_4B2720, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkEnemyPosFunc), LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_A)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B6D0)))
@ -305,7 +304,7 @@ EvtScript N(8022B6E8) = {
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(func_80219530_4B2720, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkEnemyPosFunc), LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_00_Anim_E)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022B6D0)))

View File

@ -154,8 +154,7 @@ BSS static char pad;
#include "common/UnkEnemyFunc.inc.c"
ApiStatus func_802185B0_4B17A0(Evt* script, s32 isInitialCall);
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B15D0", func_802185B0_4B17A0);
#include "common/UnkEnemyPosFunc.inc.c"
#include "common/GetLastActorEventType.inc.c"
@ -266,7 +265,7 @@ EvtScript N(802257A8) = {
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(func_802185B0_4B17A0, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkEnemyPosFunc), LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_A)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80225790)))
@ -305,7 +304,7 @@ EvtScript N(802257A8) = {
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(func_802185B0_4B17A0, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkEnemyPosFunc), LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_03_Anim_E)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80225790)))

View File

@ -154,8 +154,7 @@ BSS static char pad;
#include "common/UnkEnemyFunc.inc.c"
ApiStatus func_80218D70_4B1F60(Evt* script, s32 isInitialCall);
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B1D90", func_80218D70_4B1F60);
#include "common/UnkEnemyPosFunc.inc.c"
#include "common/GetLastActorEventType.inc.c"
@ -266,7 +265,7 @@ EvtScript N(80228748) = {
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(func_80218D70_4B1F60, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkEnemyPosFunc), LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_A)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80228730)))
@ -305,7 +304,7 @@ EvtScript N(80228748) = {
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(func_80218D70_4B1F60, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkEnemyPosFunc), LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_01_Anim_E)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_80228730)))

View File

@ -154,8 +154,7 @@ BSS static char pad;
#include "common/UnkEnemyFunc.inc.c"
ApiStatus func_80219CF0_4B2EE0(Evt* script, s32 isInitialCall);
INCLUDE_ASM(s32, "battle/area_trd_part_2/4B2D10", func_80219CF0_4B2EE0);
#include "common/UnkEnemyPosFunc.inc.c"
#include "common/GetLastActorEventType.inc.c"
@ -266,7 +265,7 @@ EvtScript N(8022E688) = {
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(func_80219CF0_4B2EE0, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkEnemyPosFunc), LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_A)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E670)))
@ -305,7 +304,7 @@ EvtScript N(8022E688) = {
EVT_SET(LF(0), 1)
EVT_END_IF
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.6))
EVT_CALL(func_80219CF0_4B2EE0, LW(0), LW(1), LW(2))
EVT_CALL(N(UnkEnemyPosFunc), LW(0), LW(1), LW(2))
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_koopa_bros_Palette_02_Anim_E)
EVT_CALL(SetIdleAnimations, ACTOR_SELF, 1, EVT_ADDR(N(idleAnimations_8022E670)))

View File

@ -266,7 +266,9 @@ typedef struct FormationRow {
/* 0x10 */ s32 var1;
/* 0x14 */ s32 var2;
/* 0x18 */ s32 var3;
} Formation[]; // size = 0x1C * n
} FormationRow; // size = 0x1C * n
typedef FormationRow Formation[];
typedef struct Stage {
/* 0x00 */ const char* texture;
@ -334,5 +336,6 @@ extern ActorOffsets bActorOffsets[ACTOR_TYPE_COUNT];
void func_80072BCC(s32 arg0);
void load_demo_battle(u32 index);
Actor* create_actor(Formation formation);
#endif

View File

@ -0,0 +1,14 @@
#include "common.h"
ApiStatus N(CompareFloats)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
f32 temp_f20 = evt_get_float_variable(script, *args++);
f32 temp = evt_get_float_variable(script, *args++);
if (temp < temp_f20) {
evt_set_variable(script, *args++, TRUE);
} else {
evt_set_variable(script, *args++, FALSE);
}
return ApiStatus_DONE2;
}

View File

@ -0,0 +1,12 @@
#include "common.h"
ApiStatus N(IsAOrBPressed)(Evt* script, s32 isInitialCall) {
script->varTable[0] = FALSE;
if (gGameStatusPtr->pressedButtons & BUTTON_A) {
script->varTable[0] = TRUE;
}
if (gGameStatusPtr->pressedButtons & BUTTON_B) {
script->varTable[0] = TRUE;
}
return ApiStatus_DONE2;
}

View File

@ -1,5 +1,4 @@
#include "common.h"
#include "npc.h"
ApiStatus N(IsSaveVar123)(Evt* script, s32 isInitialCall) {
script->varTable[0] = 0;

View File

@ -0,0 +1,21 @@
#include "common.h"
ApiStatus N(SetNpcPosYaw)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 npcID = evt_get_variable(script, *args++);
f32 x = evt_get_float_variable(script, *args++);
f32 y = evt_get_float_variable(script, *args++);
f32 z = evt_get_float_variable(script, *args++);
f32 yaw = evt_get_float_variable(script, *args++);
Npc* npc = get_npc_safe(npcID);
npc->pos.x = x;
npc->pos.y = y;
npc->pos.z = z;
npc->yaw = yaw;
npc->colliderPos.x = npc->pos.x;
npc->colliderPos.y = npc->pos.y;
npc->colliderPos.z = npc->pos.z;
npc->flags |= NPC_FLAG_DIRTY_SHADOW;
return ApiStatus_DONE2;
}

View File

@ -0,0 +1,15 @@
#include "common.h"
ApiStatus N(SetPlayerStatusPosYaw)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
f32 x = evt_get_float_variable(script, *args++);
f32 y = evt_get_float_variable(script, *args++);
f32 z = evt_get_float_variable(script, *args++);
f32 yaw = evt_get_float_variable(script, *args++);
gPlayerStatus.position.x = x;
gPlayerStatus.position.y = y;
gPlayerStatus.position.z = z;
gPlayerStatus.targetYaw = yaw;
return ApiStatus_DONE2;
}

View File

@ -0,0 +1,10 @@
#include "common.h"
ApiStatus N(UnkBufferFunc)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 temp_s1 = evt_get_variable(script, *args++);
s32 temp_s0_3 = evt_get_variable(script, *args++);
script->buffer = &script->buffer[temp_s1 + (temp_s0_3 * evt_get_variable(script, *args++))];
return ApiStatus_DONE2;
}

View File

@ -0,0 +1,133 @@
#include "common.h"
ApiStatus N(UnkEnemyPosFunc)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Vec3f temp;
Vec3f homePoses[4];
s32 temp_s1;
s32 temp_v1;
Actor* enemy;
Vec3f* iVec;
Vec3f* jVec;
s32 i, j;
temp_s1 = get_actor(ACTOR_ENEMY4)->state.varTable[3];
switch (temp_s1) {
case 2:
enemy = N(UnkEnemyFunc(3));
homePoses[0].x = enemy->homePos.x;
homePoses[0].y = enemy->homePos.y;
homePoses[0].z = enemy->homePos.z;
enemy = N(UnkEnemyFunc(6));
homePoses[1].x = enemy->homePos.x;
homePoses[1].y = enemy->homePos.y;
homePoses[1].z = enemy->homePos.z;
break;
case 3:
enemy = N(UnkEnemyFunc(3));
homePoses[0].x = enemy->homePos.x;
homePoses[0].y = enemy->homePos.y;
homePoses[0].z = enemy->homePos.z;
enemy = N(UnkEnemyFunc(5));
homePoses[1].x = enemy->homePos.x;
homePoses[1].y = enemy->homePos.y;
homePoses[1].z = enemy->homePos.z;
enemy = N(UnkEnemyFunc(6));
homePoses[2].x = enemy->homePos.x;
homePoses[2].y = enemy->homePos.y;
homePoses[2].z = enemy->homePos.z;
break;
case 4:
enemy = N(UnkEnemyFunc(3));
homePoses[0].x = enemy->homePos.x;
homePoses[0].y = enemy->homePos.y;
homePoses[0].z = enemy->homePos.z;
enemy = N(UnkEnemyFunc(4));
homePoses[1].x = enemy->homePos.x;
homePoses[1].y = enemy->homePos.y;
homePoses[1].z = enemy->homePos.z;
enemy = N(UnkEnemyFunc(5));
homePoses[2].x = enemy->homePos.x;
homePoses[2].y = enemy->homePos.y;
homePoses[2].z = enemy->homePos.z;
enemy = N(UnkEnemyFunc(6));
homePoses[3].x = enemy->homePos.x;
homePoses[3].y = enemy->homePos.y;
homePoses[3].z = enemy->homePos.z;
break;
}
for (i = 0; i < temp_s1 - 1; i++) {
for (j = i; j < temp_s1; j++) {
iVec = &homePoses[i];
jVec = &homePoses[j];
if (iVec->x < jVec->x) {
temp = *iVec;
*iVec = *jVec;
*jVec = temp;
}
}
}
temp_v1 = get_actor(script->owner1.enemyID)->state.varTable[1];
switch (temp_s1) {
case 2:
switch (temp_v1) {
case 3:
evt_set_variable(script, *args++, homePoses[0].x);
evt_set_variable(script, *args++, homePoses[0].y);
evt_set_variable(script, *args++, homePoses[0].z);
break;
case 6:
evt_set_variable(script, *args++, homePoses[1].x);
evt_set_variable(script, *args++, homePoses[1].y);
evt_set_variable(script, *args++, homePoses[1].z);
break;
}
break;
case 3:
switch (temp_v1) {
case 3:
evt_set_variable(script, *args++, homePoses[0].x);
evt_set_variable(script, *args++, homePoses[0].y);
evt_set_variable(script, *args++, homePoses[0].z);
break;
case 5:
evt_set_variable(script, *args++, homePoses[1].x);
evt_set_variable(script, *args++, homePoses[1].y);
evt_set_variable(script, *args++, homePoses[1].z);
break;
case 6:
evt_set_variable(script, *args++, homePoses[2].x);
evt_set_variable(script, *args++, homePoses[2].y);
evt_set_variable(script, *args++, homePoses[2].z);
break;
}
break;
case 4:
switch (temp_v1) {
case 3:
evt_set_variable(script, *args++, homePoses[0].x);
evt_set_variable(script, *args++, homePoses[0].y);
evt_set_variable(script, *args++, homePoses[0].z);
break;
case 4:
evt_set_variable(script, *args++, homePoses[1].x);
evt_set_variable(script, *args++, homePoses[1].y);
evt_set_variable(script, *args++, homePoses[1].z);
break;
case 5:
evt_set_variable(script, *args++, homePoses[2].x);
evt_set_variable(script, *args++, homePoses[2].y);
evt_set_variable(script, *args++, homePoses[2].z);
break;
case 6:
evt_set_variable(script, *args++, homePoses[3].x);
evt_set_variable(script, *args++, homePoses[3].y);
evt_set_variable(script, *args++, homePoses[3].z);
break;
}
break;
}
return ApiStatus_DONE2;
}

View File

@ -41,19 +41,21 @@ void aura_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance*
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data != NULL);
part->unk_64.s = 0;
zero = part->unk_64.f;
part->unk_40 = zero;
part->unk_34 = zero;
part->unk_58 = zero;
part->unk_4C = zero;
part->unk_2C = 100;
part->unk_00 = arg0;
part->type = arg0;
part->unk_30 = 0;
part->unk_28 = 0;
part->pos.x = arg1;
@ -70,8 +72,8 @@ void aura_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance*
part->unk_6D = 155;
part->unk_6E = 0;
part->unk_24 = arg4;
part->unk_20 = 0.6 * arg4;
part->unk_1C = 2.0 * arg4;
part->unk_20 = arg4 * 0.6;
part->unk_1C = arg4 * 2.0;
part->unk_38 = -0.9f;
part->unk_44 = 0.04f;
part->unk_3C = 0.04f;
@ -132,8 +134,8 @@ void aura_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance*
part->unk_1C = arg4;
part->unk_20 = arg4;
part->unk_24 = arg4;
part->unk_38 = 0;
part->unk_50 = 0;
part->unk_38 = 0.0f;
part->unk_50 = 0.0f;
part->unk_44 = 0.04f;
part->unk_3C = 0.1f;
part->unk_48 = 1.7f;
@ -153,7 +155,94 @@ void aura_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance*
void aura_init(EffectInstance* effect) {
}
INCLUDE_ASM(s32, "effects/aura", aura_update);
void aura_update(EffectInstance* effect) {
AuraFXData* data;
s32 type;
s32 unk_2C;
s32 unk_30;
data = effect->data;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
data->unk_2C = 5;
}
data->unk_30++;
if (data->unk_30 > 324000) {
data->unk_30 = 256;
}
if (data->unk_2C <= 10) {
data->unk_2C--;
}
if (data->unk_2C < 0) {
shim_remove_effect(effect);
return;
}
type = data->type;
unk_2C = data->unk_2C;
unk_30 = data->unk_30;
if (type < 2) {
if (unk_30 <= 10) {
data->unk_28 += (128 - data->unk_28) * 0.5;
}
} else {
if (unk_30 <= 10) {
data->unk_28 = (unk_30 * 0xFF) / 10;
}
}
if (unk_2C < 10) {
data->unk_28 *= 0.5;
}
if (type == 0) {
data->unk_38 += (data->unk_3C - data->unk_38) * 0.02;
data->unk_44 += (data->unk_48 - data->unk_44) * 0.02;
data->unk_1C += (data->unk_24 - data->unk_1C) * 0.04;
data->unk_20 += (data->unk_24 - data->unk_20) * 0.04;
} else {
data->unk_38 += (data->unk_3C - data->unk_38) * 0.02;
data->unk_44 += (data->unk_48 - data->unk_44) * 0.02;
data->unk_50 += (data->unk_54 - data->unk_50) * 0.02;
data->unk_5C += (data->unk_60 - data->unk_5C) * 0.02;
}
data->unk_34 += data->unk_38;
if (data->unk_34 < 0.0f) {
data->unk_34 += 64.0f;
} else if (data->unk_34 > 64.0f) {
data->unk_34 -= 64.0f;
}
data->unk_40 += data->unk_44;
if (data->unk_40 < 0.0f) {
data->unk_40 += 128.0f;
} else if (data->unk_40 > 128.0f) {
data->unk_40 -= 128.0f;
}
data->unk_4C += data->unk_50;
if (data->unk_4C < 0.0f) {
data->unk_4C += 64.0f;
} else if (data->unk_4C > 64.0f) {
data->unk_4C -= 64.0f;
}
data->unk_58 += data->unk_5C;
if (data->unk_58 < 0.0f) {
data->unk_58 += 128.0f;
} else if (data->unk_58 > 128.0f) {
data->unk_58 -= 128.0f;
}
data->unk_10 += (data->pos.x - data->unk_10) * 0.1;
data->unk_14 += (data->pos.y - data->unk_14) * 0.1;
data->unk_18 += (data->pos.z - data->unk_18) * 0.1;
}
void aura_render(EffectInstance* effect) {
RenderTask renderTask;

View File

@ -7,7 +7,6 @@
#define NAMESPACE arn_02
s32 func_800493EC(Enemy* enemy, s32 arg1, f32 arg2, f32 arg3);
ApiStatus N(func_80240C90_BDDE40)(Evt *script, s32 isInitialCall);
extern EvtScript N(main);

View File

@ -7,9 +7,8 @@
#define NAMESPACE arn_04
s32 func_800493EC(Enemy* enemy, s32 arg1, f32 arg2, f32 arg3);
ApiStatus N(UnkNpcAIMainFunc)(Evt* script, s32 isInitialCall);
ApiStatus N(func_8024219C_BE594C)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkNpcAIMainFunc9)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80243018_BE67C8)(Evt* script, s32 isInitialCall);
extern EvtScript N(main);

View File

@ -63,11 +63,57 @@ NpcSettings N(npcSettings_802436B0) = {
.level = 12,
};
f32 N(D_802436DC_BE6E8C)[] = {
#include "world/common/UnkNpcAIFunc24.inc.c"
#include "world/common/UnkFunc13.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkFunc14.inc.c"
#include "world/common/UnkNpcAIFunc25.inc.c"
#include "world/common/NpcJumpFunc2.inc.c"
#include "world/common/NpcJumpFunc.inc.c"
#include "world/common/UnkNpcAIFunc13.inc.c"
#include "world/common/UnkFunc15.inc.c"
#include "world/common/UnkNpcDurationFlagFunc.inc.c"
#include "world/common/UnkFunc16.inc.c"
#include "world/common/UnkNpcAIMainFunc.inc.c"
#include "world/common/UnkNpcAIFunc23.inc.c"
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
f32 N(sixFloats)[] = {
4.5f, 3.5f, 2.6f, 2.0f,
1.5f, 20.0f,
};
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
#include "world/common/UnkNpcAIFunc3.inc.c"
#include "world/common/UnkFunc6.inc.c"
#include "world/common/UnkFunc5.inc.c"
#include "world/common/UnkNpcAIMainFunc9.inc.c"
NpcAISettings N(npcAISettings_802436F4) = {
.moveSpeed = 1.8f,
.moveTime = 60,
@ -86,7 +132,7 @@ EvtScript N(npcAI_80243724) = {
EVT_CALL(SetSelfVar, 5, -850)
EVT_CALL(SetSelfVar, 6, 60)
EVT_CALL(SetSelfVar, 1, 700)
EVT_CALL(N(func_8024219C_BE594C), EVT_PTR(N(npcAISettings_802436F4)))
EVT_CALL(N(UnkNpcAIMainFunc9), EVT_PTR(N(npcAISettings_802436F4)))
EVT_RETURN
EVT_END
};
@ -288,118 +334,6 @@ EvtScript N(makeEntities) = {
EVT_END
};
#include "world/common/UnkNpcAIFunc24.inc.c"
#include "world/common/UnkFunc13.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkFunc14.inc.c"
#include "world/common/UnkNpcAIFunc25.inc.c"
#include "world/common/NpcJumpFunc2.inc.c"
#include "world/common/NpcJumpFunc.inc.c"
#include "world/common/UnkNpcAIFunc13.inc.c"
#include "world/common/UnkFunc15.inc.c"
#include "world/common/UnkNpcDurationFlagFunc.inc.c"
#include "world/common/UnkFunc16.inc.c"
#include "world/common/UnkNpcAIMainFunc.inc.c"
#include "world/common/UnkNpcAIFunc23.inc.c"
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
void N(func_80241AE4_BE5294)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += N(D_802436DC_BE6E8C)[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/UnkNpcAIFunc14.inc.c"
#include "world/common/UnkNpcAIFunc3.inc.c"
#include "world/common/UnkFunc6.inc.c"
#include "world/common/UnkFunc5.inc.c"
ApiStatus N(func_8024219C_BE594C)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings =(NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
return ApiStatus_BLOCK;
case 2:
N(UnkNpcAIFunc1_copy)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
return ApiStatus_BLOCK;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_80241AE4_BE5294)(script, aiSettings, territoryPtr);
return ApiStatus_BLOCK;
case 12:
N(UnkNpcAIFunc14)(script, aiSettings, territoryPtr);
return ApiStatus_BLOCK;
case 13:
N(UnkNpcAIFunc3)(script, aiSettings, territoryPtr);
return ApiStatus_BLOCK;
case 14:
N(UnkFunc6)(script, aiSettings, territoryPtr);
return ApiStatus_BLOCK;
}
return ApiStatus_BLOCK;
}
s32 N(func_80242388_BE5B38)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);

View File

@ -31,7 +31,7 @@ ApiStatus N(arn_07_StarSpiritEffectFunc4)(Evt* script, s32 isInitialCall);
ApiStatus N(arn_07_StarSpiritEffectFunc5)(Evt* script, s32 isInitialCall);
ApiStatus N(arn_07_StarSpiritEffectFunc6)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80240800_BED5F0)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80241C5C_BEEA4C)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkNpcAIMainFunc9)(Evt* script, s32 isInitialCall);
ApiStatus N(SetEntityFlags100000)(Evt* script, s32 isInitialCall);
ApiStatus N(GetEntityPosition)(Evt* script, s32 isInitialCall);
ApiStatus PostChapter3StatUpdate(Evt* script, s32 isInitialCall);

View File

@ -95,7 +95,7 @@ EvtScript N(makeEntities) = {
EVT_END
};
f32 N(D_80243BC0_BF09B0)[] = {
f32 N(sixFloats)[] = {
4.5f, 3.5f, 2.6f, 2.0f,
1.5f, 20.0f,
};
@ -118,7 +118,7 @@ EvtScript N(npcAI_80243C08) = {
EVT_CALL(SetSelfVar, 5, -850)
EVT_CALL(SetSelfVar, 6, 60)
EVT_CALL(SetSelfVar, 1, 700)
EVT_CALL(N(func_80241C5C_BEEA4C), EVT_PTR(N(npcAISettings_80243BD8)))
EVT_CALL(N(UnkNpcAIMainFunc9), EVT_PTR(N(npcAISettings_80243BD8)))
EVT_RETURN
EVT_END
};
@ -1207,21 +1207,13 @@ NpcGroupList N(npcGroupList_802478E8) = {
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
void N(func_802415A4_BEE394)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += N(D_80243BC0_BF09B0)[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -1231,65 +1223,7 @@ void N(func_802415A4_BEE394)(Evt* script, NpcAISettings* aiSettings, EnemyTerrit
#include "world/common/UnkFunc5.inc.c"
ApiStatus N(func_80241C5C_BEEA4C)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings =(NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
return ApiStatus_BLOCK;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
return ApiStatus_BLOCK;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_802415A4_BEE394)(script, aiSettings, territoryPtr);
return ApiStatus_BLOCK;
case 12:
N(UnkNpcAIFunc14)(script, aiSettings, territoryPtr);
return ApiStatus_BLOCK;
case 13:
N(UnkNpcAIFunc3)(script, aiSettings, territoryPtr);
return ApiStatus_BLOCK;
case 14:
N(UnkFunc6)(script, aiSettings, territoryPtr);
return ApiStatus_BLOCK;
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc9.inc.c"
ApiStatus PostChapter3StatUpdate(Evt* script, s32 isInitialCall) {
PlayerData* playerData = &gPlayerData;

View File

@ -3,6 +3,7 @@
#include "sprite/npc/world_tubba.h"
#include "message_ids.h"
#include "effects.h"
#include "world/partners.h"
EntryList N(entryList) = {
{ 0.0f, 0.0f, 485.0f, 0.0f },
@ -477,7 +478,7 @@ EvtScript N(makeEntities) = {
EVT_END
};
f32 N(D_80244CD0_C02550)[] = {
f32 N(sixFloats)[] = {
4.5f, 3.5f, 2.6f, 2.0f,
1.5f, 20.0f,
};
@ -506,21 +507,13 @@ NpcAISettings N(npcAISettings_80244D24) = {
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
void N(func_80240D74_BFE5F4)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += N(D_80244CD0_C02550)[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -530,65 +523,7 @@ void N(func_80240D74_BFE5F4)(Evt* script, NpcAISettings* aiSettings, EnemyTerrit
#include "world/common/UnkFunc5.inc.c"
ApiStatus N(func_8024142C_BFECAC)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings =(NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
break;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_80240D74_BFE5F4)(script, aiSettings, territoryPtr);
break;
case 12:
N(UnkNpcAIFunc14)(script, aiSettings, territoryPtr);
break;
case 13:
N(UnkNpcAIFunc3)(script, aiSettings, territoryPtr);
break;
case 14:
N(UnkFunc6)(script, aiSettings, territoryPtr);
break;
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc9.inc.c"
void N(func_80241618_BFEE98)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
@ -861,7 +796,7 @@ ApiStatus N(func_802422B0_BFFB30)(Evt* script, s32 isInitialCall) {
}
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
N(UnkNpcAIFunc1_copy)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
if (script->functionTemp[0] == 12) {
@ -1122,7 +1057,7 @@ const char N(dgb_00_name_hack)[] = "dgb_00";
#include "world/common/UnkFunc13.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkFunc14.inc.c"
@ -1195,7 +1130,7 @@ ApiStatus N(func_802430C0_C00940)(Evt* script, s32 isInitialCall) {
N(UnkFunc13)(script, aiSettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1_copy)(script, aiSettings, territoryPtr);
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc14)(script, aiSettings, territoryPtr);
break;

View File

@ -113,7 +113,7 @@ static s32 N(pad_3558)[] = {
0x00000000, 0x00000000,
};
f32 N(D_80243560_C39A90)[] = {
f32 N(sixFloats)[] = {
4.5f, 3.5f, 2.6f, 2.0f,
1.5f, 20.0f,
};
@ -288,7 +288,7 @@ s32 N(D_80243D48_C3A278)[8][2] = {
{ 0x001D00EC, 0x001D00ED }, { 0x001D00EE, 0x001D00EF }
};
f32 N(D_80243D88_C3A2B8)[] = {
f32 N(bigFuncFloats)[] = {
140.0f, 180.0f, 220.0f
};
@ -318,7 +318,7 @@ EvtScript N(80243D94) = {
EVT_CALL(N(UnkPartnerPosFunc))
EVT_END_THREAD
EVT_WAIT_FRAMES(3)
EVT_CALL(N(func_802429D0_C38F00), EVT_MAP_VAR(0))
EVT_CALL(N(UnkFunc60), EVT_MAP_VAR(0))
EVT_WAIT_FRAMES(30)
EVT_RETURN
EVT_END
@ -421,21 +421,13 @@ EvtScript N(makeEntities) = {
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
void N(func_80240C54_C37184)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += N(D_80243560_C39A90)[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -445,64 +437,7 @@ void N(func_80240C54_C37184)(Evt* script, NpcAISettings* aiSettings, EnemyTerrit
#include "world/common/UnkFunc5.inc.c"
ApiStatus N(func_8024130C_C3783C)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings = (NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
break;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_80240C54_C37184)(script, aiSettings, territoryPtr);
break;
case 12:
N(UnkNpcAIFunc14)(script, aiSettings, territoryPtr);
break;
case 13:
N(UnkNpcAIFunc3)(script, aiSettings, territoryPtr);
break;
case 14:
N(UnkFunc6)(script, aiSettings, territoryPtr);
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc9.inc.c"
void N(func_802414F8_C37A28)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
@ -766,7 +701,7 @@ ApiStatus N(func_80242154_C38684)(Evt* script, s32 isInitialCall) {
}
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
N(UnkNpcAIFunc1_copy)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
if (script->functionTemp[0] == 12) {
@ -821,7 +756,6 @@ ApiStatus N(func_8024240C_C3893C)(Evt* script, s32 isInitialCall) {
#include "world/common/UnkFunc18.inc.c"
#ifdef NON_EQUIVALENT
typedef struct {
s32 unk_00[8];
char unk_20[0x64];
@ -842,7 +776,6 @@ typedef struct {
s16 unk_32C;
} N(UnkStruct);
ApiStatus N(func_8024259C_C38ACC)(Evt* script, s32 isInitialCall) {
PlayerData* playerData = &gPlayerData;
N(UnkStruct)* ptr;
@ -931,148 +864,7 @@ INCLUDE_ASM(ApiStatus, "world/area_dgb/dgb_04/C36530", dgb_04_func_8024259C_C38A
#include "world/common/UnkFunc22.inc.c"
typedef struct {
s32 unk_00;
s32 unk_04;
EffectGraphics* unk_08[3]; // TODO this is wrong
f32 unk_14[3];
f32 unk_20[3];
f32 unk_2C[3];
f32 unk_38[3];
f32 unk_44[3];
f32 unk_50[3];
Entity* unk_5C;
s32 unk_60;
s32 unk_64;
} N(UserData);
ApiStatus N(func_802429D0_C38F00)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_safe(-4);
f32 sinTheta, cosTheta;
s32 i;
f32 var;
N(UserData)* userDataPtr;
N(UserData)* scriptPtr;
f32 save, save2;
sin_cos_deg(gCameras[gCurrentCameraID].currentYaw, &sinTheta, &cosTheta);
if (isInitialCall) {
script->userData = (N(UserData)*)general_heap_malloc(0x68);
scriptPtr = (N(UserData)*)script->userData;
scriptPtr->unk_5C = get_entity_by_index(evt_get_variable(script, *args));
for (i = 0, userDataPtr = scriptPtr; i < 3; i++) {
userDataPtr->unk_08[i] = fx_motion_blur_flame(0, scriptPtr->unk_5C->position.x, scriptPtr->unk_5C->position.y + 12.5f,
scriptPtr->unk_5C->position.z, 1.0f, -1);
save = 0.0f;
userDataPtr->unk_2C[i] = save;
userDataPtr->unk_20[i] = save;
userDataPtr->unk_14[i] = save;
userDataPtr->unk_50[i] = save;
userDataPtr->unk_44[i] = save;
userDataPtr->unk_38[i] = save;
}
scriptPtr->unk_00 = 0;
scriptPtr->unk_04 = 0;
scriptPtr->unk_60 = 0;
scriptPtr->unk_64 = 0;
userDataPtr = scriptPtr;
for (i = 0, save = 50.0f; i < 3; i++) {
var = 0;
add_vec2D_polar(&var, &scriptPtr->unk_44[i], save, *(N(D_80243D88_C3A2B8) + i)); //*(dataPtr++));
userDataPtr->unk_38[i] = cosTheta * var;
userDataPtr->unk_50[i] = sinTheta * var;
userDataPtr->unk_38[i] = npc->pos.x - (scriptPtr->unk_5C->position.x + userDataPtr->unk_38[i]);
userDataPtr->unk_44[i] = npc->pos.y - (scriptPtr->unk_5C->position.y + userDataPtr->unk_44[i]);
userDataPtr->unk_50[i] = npc->pos.z - (scriptPtr->unk_5C->position.z + userDataPtr->unk_50[i]);
}
}
scriptPtr = (N(UserData)*)script->userData;
switch (scriptPtr->unk_00) {
case 0:
save = update_lerp(5, 0.0f, 50.0f, scriptPtr->unk_60, 0x14);
save2 = 0.0f;
for (i = 0; i < 3; i++) {
scriptPtr->unk_20[i] = save2;
var = save2;
add_vec2D_polar(&var, &scriptPtr->unk_20[i], save, *(N(D_80243D88_C3A2B8) + i));
scriptPtr->unk_14[i] = cosTheta * var;
scriptPtr->unk_2C[i] = sinTheta * var;
}
scriptPtr->unk_60++;
if (scriptPtr->unk_60 >= 0x15) {
scriptPtr->unk_00 = 1;
scriptPtr->unk_60 = 0;
}
break;
case 1:
save = 50.0f;
save2 = 0.0f;
for (i = 0; i < 3; i++) {
scriptPtr->unk_20[i] = save2;
var = save2;
add_vec2D_polar(&var, &scriptPtr->unk_20[i], save, *(N(D_80243D88_C3A2B8) + i));
scriptPtr->unk_14[i] = cosTheta * var;
scriptPtr->unk_2C[i] = sinTheta * var;
}
scriptPtr->unk_60++;
if (scriptPtr->unk_60 >= 0x10) {
scriptPtr->unk_60 = 0xF;
scriptPtr->unk_00 = 2;
}
break;
case 2:
scriptPtr->unk_60++;
if (scriptPtr->unk_60 >= 0x1F) {
for (i = 0, userDataPtr = scriptPtr; i < 3; i++) {
userDataPtr->unk_08[i]->flags |= 0x10;
}
return ApiStatus_DONE2;
}
}
switch (scriptPtr->unk_04) {
case 0:
scriptPtr->unk_64++;
if (scriptPtr->unk_64 >= 0x10) {
scriptPtr->unk_04 = 1;
scriptPtr->unk_64 = 0;
}
break;
case 1:
for (i = 0, userDataPtr = scriptPtr; i < 3; i++) {
userDataPtr->unk_14[i] = userDataPtr->unk_14[i] + update_lerp(1, 0.0f, userDataPtr->unk_38[i], scriptPtr->unk_64, 0x14);
userDataPtr->unk_20[i] = userDataPtr->unk_20[i] + update_lerp(1, 0.0f, userDataPtr->unk_44[i], scriptPtr->unk_64, 0x14);
userDataPtr->unk_2C[i] = userDataPtr->unk_2C[i] + update_lerp(1, 0.0f, userDataPtr->unk_50[i], scriptPtr->unk_64, 0x14);
}
scriptPtr->unk_64++;
if (scriptPtr->unk_64 >= 0x15) {
scriptPtr->unk_04 = 2;
scriptPtr->unk_64 = 0;
}
break;
}
for (i = 0, userDataPtr = scriptPtr; i < 3; i++) {
((EffectInstanceData*)userDataPtr->unk_08[i]->freeDelay)->rotation.x = userDataPtr->unk_14[i];
((EffectInstanceData*)userDataPtr->unk_08[i]->freeDelay)->rotation.y = userDataPtr->unk_20[i];
((EffectInstanceData*)userDataPtr->unk_08[i]->freeDelay)->rotation.z = userDataPtr->unk_2C[i];
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkFunc60.inc.c"
s32 N(func_80242F08_C39438)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;

View File

@ -21,7 +21,7 @@ ApiStatus N(UnkFunc20)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkFunc39)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkFunc21)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkFunc22)(Evt* script, s32 isInitialCall);
ApiStatus N(func_802429D0_C38F00)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkFunc60)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80242F08_C39438)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkFunc24)(Evt* script, s32 isInitialCall);

View File

@ -261,7 +261,7 @@ NpcSettings N(npcSettings_80244434) = {
.unk_2A = 8,
};
f32 N(D_80244460_C44210)[] = {
f32 N(sixFloats)[] = {
4.5f, 3.5f, 2.6f, 2.0f,
1.5f, 20.0f,
};
@ -1119,15 +1119,7 @@ ApiStatus N(func_802414AC_C4125C)(Evt* script, s32 isInitialCall) {
#include "world/common/UnkNpcAIFunc2.inc.c"
void N(func_802423B4_C42164)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += N(D_80244460_C44210)[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -1137,65 +1129,7 @@ void N(func_802423B4_C42164)(Evt* script, NpcAISettings* aiSettings, EnemyTerrit
#include "world/common/UnkFunc5.inc.c"
ApiStatus N(func_80242A6C_C4281C)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings = (NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1_copy)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
break;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_802423B4_C42164)(script, aiSettings, territoryPtr);
break;
case 12:
N(UnkNpcAIFunc14)(script, aiSettings, territoryPtr);
break;
case 13:
N(UnkNpcAIFunc3)(script, aiSettings, territoryPtr);
break;
case 14:
N(UnkFunc6)(script, aiSettings, territoryPtr);
break;
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc9.inc.c"
void N(func_80242C58_C42A08)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;

View File

@ -313,7 +313,7 @@ NpcSettings N(npcSettings_8024432C) = {
.unk_2A = 8,
};
f32 N(D_80244358_C4AF38)[] = {
f32 N(sixFloats)[] = {
4.5f, 3.5f, 2.6f, 2.0f,
1.5f, 20.0f,
};
@ -1005,21 +1005,13 @@ ApiStatus N(func_802410D4_C47CB4)(Evt* script, s32 isInitialCall) {
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
void N(func_80242078_C48C58)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += N(D_80244358_C4AF38)[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -1029,65 +1021,7 @@ void N(func_80242078_C48C58)(Evt* script, NpcAISettings* aiSettings, EnemyTerrit
#include "world/common/UnkFunc5.inc.c"
ApiStatus N(func_80242730_C49310)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings =(NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
break;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_80242078_C48C58)(script, aiSettings, territoryPtr);
break;
case 12:
N(UnkNpcAIFunc14)(script, aiSettings, territoryPtr);
break;
case 13:
N(UnkNpcAIFunc3)(script, aiSettings, territoryPtr);
break;
case 14:
N(UnkFunc6)(script, aiSettings, territoryPtr);
break;
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc9.inc.c"
void N(func_8024291C_C494FC)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
@ -1353,7 +1287,7 @@ ApiStatus N(func_80243578_C4A158)(Evt* script, s32 isInitialCall) {
}
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
N(UnkNpcAIFunc1_copy)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
if (script->functionTemp[0] == 12) {

View File

@ -124,148 +124,7 @@ INCLUDE_ASM(ApiStatus, "world/area_flo/flo_08/CAED40", flo_08_func_802401CC_CAEF
#include "world/common/UnkFunc22.inc.c"
typedef struct {
s32 unk_00;
s32 unk_04;
EffectGraphics* unk_08[3]; // TODO this is wrong
f32 unk_14[3];
f32 unk_20[3];
f32 unk_2C[3];
f32 unk_38[3];
f32 unk_44[3];
f32 unk_50[3];
Entity* unk_5C;
s32 unk_60;
s32 unk_64;
} N(UserData);
ApiStatus N(func_80240600_CAF340)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_safe(-4);
f32 sinTheta, cosTheta;
s32 i;
f32 var;
N(UserData)* userDataPtr;
N(UserData)* scriptPtr;
f32 save, save2;
sin_cos_deg(gCameras[gCurrentCameraID].currentYaw, &sinTheta, &cosTheta);
if (isInitialCall) {
script->userData = (N(UserData)*)general_heap_malloc(0x68);
scriptPtr = (N(UserData)*)script->userData;
scriptPtr->unk_5C = get_entity_by_index(evt_get_variable(script, *args));
for (i = 0, userDataPtr = scriptPtr; i < 3; i++) {
userDataPtr->unk_08[i] = fx_motion_blur_flame(0, scriptPtr->unk_5C->position.x, scriptPtr->unk_5C->position.y + 12.5f,
scriptPtr->unk_5C->position.z, 1.0f, -1);
save = 0.0f;
userDataPtr->unk_2C[i] = save;
userDataPtr->unk_20[i] = save;
userDataPtr->unk_14[i] = save;
userDataPtr->unk_50[i] = save;
userDataPtr->unk_44[i] = save;
userDataPtr->unk_38[i] = save;
}
scriptPtr->unk_00 = 0;
scriptPtr->unk_04 = 0;
scriptPtr->unk_60 = 0;
scriptPtr->unk_64 = 0;
userDataPtr = scriptPtr;
for (i = 0, save = 50.0f; i < 3; i++) {
var = 0;
add_vec2D_polar(&var, &scriptPtr->unk_44[i], save, N(D_80242008_CB0D48)[i]);
userDataPtr->unk_38[i] = cosTheta * var;
userDataPtr->unk_50[i] = sinTheta * var;
userDataPtr->unk_38[i] = npc->pos.x - (scriptPtr->unk_5C->position.x + userDataPtr->unk_38[i]);
userDataPtr->unk_44[i] = npc->pos.y - (scriptPtr->unk_5C->position.y + userDataPtr->unk_44[i]);
userDataPtr->unk_50[i] = npc->pos.z - (scriptPtr->unk_5C->position.z + userDataPtr->unk_50[i]);
}
}
scriptPtr = (N(UserData)*)script->userData;
switch (scriptPtr->unk_00) {
case 0:
save = update_lerp(5, 0.0f, 50.0f, scriptPtr->unk_60, 0x14);
save2 = 0.0f;
for (i = 0; i < 3; i++) {
scriptPtr->unk_20[i] = save2;
var = save2;
add_vec2D_polar(&var, &scriptPtr->unk_20[i], save, N(D_80242008_CB0D48)[i]);
scriptPtr->unk_14[i] = cosTheta * var;
scriptPtr->unk_2C[i] = sinTheta * var;
}
scriptPtr->unk_60++;
if (scriptPtr->unk_60 >= 0x15) {
scriptPtr->unk_00 = 1;
scriptPtr->unk_60 = 0;
}
break;
case 1:
save = 50.0f;
save2 = 0.0f;
for (i = 0; i < 3; i++) {
scriptPtr->unk_20[i] = save2;
var = save2;
add_vec2D_polar(&var, &scriptPtr->unk_20[i], save, N(D_80242008_CB0D48)[i]);
scriptPtr->unk_14[i] = cosTheta * var;
scriptPtr->unk_2C[i] = sinTheta * var;
}
scriptPtr->unk_60++;
if (scriptPtr->unk_60 >= 0x10) {
scriptPtr->unk_60 = 0xF;
scriptPtr->unk_00 = 2;
}
break;
case 2:
scriptPtr->unk_60++;
if (scriptPtr->unk_60 >= 0x1F) {
for (i = 0, userDataPtr = scriptPtr; i < 3; i++) {
userDataPtr->unk_08[i]->flags |= 0x10;
}
return ApiStatus_DONE2;
}
}
switch (scriptPtr->unk_04) {
case 0:
scriptPtr->unk_64++;
if (scriptPtr->unk_64 >= 0x10) {
scriptPtr->unk_04 = 1;
scriptPtr->unk_64 = 0;
}
break;
case 1:
for (i = 0, userDataPtr = scriptPtr; i < 3; i++) {
userDataPtr->unk_14[i] = userDataPtr->unk_14[i] + update_lerp(1, 0.0f, userDataPtr->unk_38[i], scriptPtr->unk_64, 0x14);
userDataPtr->unk_20[i] = userDataPtr->unk_20[i] + update_lerp(1, 0.0f, userDataPtr->unk_44[i], scriptPtr->unk_64, 0x14);
userDataPtr->unk_2C[i] = userDataPtr->unk_2C[i] + update_lerp(1, 0.0f, userDataPtr->unk_50[i], scriptPtr->unk_64, 0x14);
}
scriptPtr->unk_64++;
if (scriptPtr->unk_64 >= 0x15) {
scriptPtr->unk_04 = 2;
scriptPtr->unk_64 = 0;
}
break;
}
for (i = 0, userDataPtr = scriptPtr; i < 3; i++) {
((EffectInstanceData*)userDataPtr->unk_08[i]->freeDelay)->rotation.x = userDataPtr->unk_14[i]; // TODO this is wrong
((EffectInstanceData*)userDataPtr->unk_08[i]->freeDelay)->rotation.y = userDataPtr->unk_20[i]; // TODO this is wrong
((EffectInstanceData*)userDataPtr->unk_08[i]->freeDelay)->rotation.z = userDataPtr->unk_2C[i]; // TODO this is wrong
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkFunc60.inc.c"
#include "world/common/UnkFunc23.inc.c"

View File

@ -63,7 +63,7 @@ s32 N(D_80241FC8_CB0D08)[8][2] = {
{ 0x001D00EC, 0x001D00ED }, { 0x001D00EE, 0x001D00EF }
};
f32 N(D_80242008_CB0D48)[3] = {
f32 N(bigFuncFloats)[3] = {
140.0f, 180.0f, 220.0f
};
@ -93,7 +93,7 @@ EvtScript N(80242014) = {
EVT_CALL(N(UnkPartnerPosFunc))
EVT_END_THREAD
EVT_WAIT_FRAMES(3)
EVT_CALL(N(func_80240600_CAF340), EVT_MAP_VAR(0))
EVT_CALL(N(UnkFunc60), EVT_MAP_VAR(0))
EVT_WAIT_FRAMES(30)
EVT_RETURN
EVT_END

View File

@ -23,7 +23,7 @@ ApiStatus N(UnkFunc38)(Evt* script, s32 isInitialCall);
ApiStatus N(func_802401CC_CAEF0C)(Evt* script, s32 isInitialCall);
ApiStatus N(SwitchToPartner)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkFunc39)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80240600_CAF340)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkFunc60)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkFunc40)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80240D40_CAFA80)(Evt* script, s32 isInitialCall);
ApiStatus N(func_8024150C_CB024C)(Evt* script, s32 isInitialCall);
@ -42,5 +42,5 @@ extern EvtScript N(main);
extern s32 N(D_80241FB0_CB0CF0)[];
extern s16 N(D_80241FB8_CB0CF8)[];
extern s32 N(D_80241FC8_CB0D08)[8][2];
extern f32 N(D_80242008_CB0D48)[3];
extern f32 N(bigFuncFloats)[3];
extern s32 D_802462C0_B4AA30;

View File

@ -446,7 +446,7 @@ NpcSettings N(npcSettings_80243600) = {
.level = 19,
};
f32 N(D_8024362C_CB862C)[] = {
f32 N(sixFloats)[] = {
4.5f, 3.5f, 2.6f, 2.0f,
1.5f, 20.0f,
};
@ -471,7 +471,7 @@ EvtScript N(npcAI_80243674) = {
EVT_CALL(SetSelfVar, 5, -630)
EVT_CALL(SetSelfVar, 6, 50)
EVT_CALL(SetSelfVar, 1, 200)
EVT_CALL(N(func_8024162C_CB662C), EVT_PTR(N(npcAISettings_80243644)))
EVT_CALL(N(UnkNpcAIMainFunc9), EVT_PTR(N(npcAISettings_80243644)))
EVT_RETURN
EVT_END
};

View File

@ -4,21 +4,13 @@
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
void N(func_80240F74_CB5F74)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += N(D_8024362C_CB862C)[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -28,60 +20,4 @@ void N(func_80240F74_CB5F74)(Evt* script, NpcAISettings* aiSettings, EnemyTerrit
#include "world/common/UnkFunc5.inc.c"
ApiStatus N(func_8024162C_CB662C)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* npcAISettings = (NpcAISettings*)evt_get_variable(script, *args++);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, npcAISettings);
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, npcAISettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, npcAISettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1)(script, npcAISettings, territoryPtr);
case 3:
N(UnkFunc4)(script, npcAISettings, territoryPtr);
break;
case 10:
N(UnkNpcAIFunc2)(script, npcAISettings, territoryPtr);
case 11:
N(func_80240F74_CB5F74)(script, npcAISettings, territoryPtr);
break;
case 12:
N(UnkNpcAIFunc14)(script, npcAISettings, territoryPtr);
break;
case 13:
N(UnkNpcAIFunc3)(script, npcAISettings, territoryPtr);
break;
case 14:
N(UnkFunc6)(script, npcAISettings, territoryPtr);
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc9.inc.c"

View File

@ -9,9 +9,9 @@
ApiStatus N(TransformFoliage)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80240000_CB5000)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkFunc43)(Evt* script, s32 isInitialCall);
ApiStatus N(func_8024162C_CB662C)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkNpcAIMainFunc9)(Evt* script, s32 isInitialCall);
extern f32 N(D_8024362C_CB862C)[];
extern f32 N(sixFloats)[];
extern NpcGroupList N(npcGroupList_8024414C);
extern EvtScript N(802425DC);
extern EvtScript N(802434A8);

View File

@ -229,7 +229,7 @@ NpcSettings N(npcSettings_80244100) = {
.level = 20,
};
f32 N(D_8024412C_CC793C)[] = {
f32 N(sixFloats)[] = {
4.5f, 3.5f, 2.6f, 2.0f,
1.5f, 20.0f,
};
@ -1225,21 +1225,13 @@ NpcGroupList N(npcGroupList_80247984) = {
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
void N(func_80240E18_CC4628)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += N(D_8024412C_CC793C)[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -1249,65 +1241,7 @@ void N(func_80240E18_CC4628)(Evt* script, NpcAISettings* aiSettings, EnemyTerrit
#include "world/common/UnkFunc5.inc.c"
ApiStatus N(func_802414D0_CC4CE0)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings = (NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
break;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_80240E18_CC4628)(script, aiSettings, territoryPtr);
break;
case 12:
N(UnkNpcAIFunc14)(script, aiSettings, territoryPtr);
break;
case 13:
N(UnkNpcAIFunc3)(script, aiSettings, territoryPtr);
break;
case 14:
N(UnkFunc6)(script, aiSettings, territoryPtr);
break;
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc9.inc.c"
s32 N(func_802416BC_CC4ECC)(void) {
s32 i;

View File

@ -9,7 +9,7 @@ enum {
BSS s32 N(D_802453B0_EF79C0)[91];
f32 N(D_802444C0_CCF7D0)[] = {
f32 N(sixFloats)[] = {
4.5f, 3.5f, 2.6f, 2.0f,
1.5f, 20.0f,
};
@ -34,7 +34,7 @@ EvtScript N(npcAI_80244508) = {
EVT_CALL(SetSelfVar, 5, -630)
EVT_CALL(SetSelfVar, 6, 50)
EVT_CALL(SetSelfVar, 1, 200)
EVT_CALL(N(func_80241E1C_CCD12C), EVT_PTR(N(npcAISettings_802444D8)))
EVT_CALL(N(UnkNpcAIMainFunc9), EVT_PTR(N(npcAISettings_802444D8)))
EVT_RETURN
EVT_END
};
@ -327,21 +327,13 @@ EvtScript N(80245224) = {
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
void N(func_80241764_CCCA74)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += N(D_802444C0_CCF7D0)[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -351,65 +343,7 @@ void N(func_80241764_CCCA74)(Evt* script, NpcAISettings* aiSettings, EnemyTerrit
#include "world/common/UnkFunc5.inc.c"
ApiStatus N(func_80241E1C_CCD12C)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings =(NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
break;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_80241764_CCCA74)(script, aiSettings, territoryPtr);
break;
case 12:
N(UnkNpcAIFunc14)(script, aiSettings, territoryPtr);
break;
case 13:
N(UnkNpcAIFunc3)(script, aiSettings, territoryPtr);
break;
case 14:
N(UnkFunc6)(script, aiSettings, territoryPtr);
break;
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "world/common/GetNpcCollisionHeight.inc.c"

View File

@ -17,7 +17,7 @@ ApiStatus N(func_8024042C_CCB73C)(Evt* script, s32 isInitialCall);
ApiStatus N(func_8024046C_CCB77C)(Evt* script, s32 isInitialCall);
void N(func_80240504_CCB814)(void);
void N(func_802407D4_CCBAE4)(void);
ApiStatus N(func_80241E1C_CCD12C)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkNpcAIMainFunc9)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80242234_CCD544)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80242288_CCD598)(Evt* script, s32 isInitialCall);
ApiStatus N(func_802422C0_CCD5D0)(Evt* script, s32 isInitialCall);

View File

@ -257,7 +257,7 @@ s32 N(D_80243718_CD5548)[8][2] = {
{ 0x001D00EC, 0x001D00ED }, { 0x001D00EE, 0x001D00EF }
};
f32 N(D_80243758_CD5588)[] = {
f32 N(bigFuncFloats)[] = {
140.0f, 180.0f, 220.0f,
};
@ -287,7 +287,7 @@ EvtScript N(80243764) = {
EVT_CALL(N(UnkPartnerPosFunc))
EVT_END_THREAD
EVT_WAIT_FRAMES(3)
EVT_CALL(N(func_802406E0_CD2510), EVT_MAP_VAR(0))
EVT_CALL(N(UnkFunc60), EVT_MAP_VAR(0))
EVT_WAIT_FRAMES(30)
EVT_RETURN
EVT_END
@ -553,148 +553,7 @@ INCLUDE_ASM(ApiStatus, "world/area_flo/flo_16/CD1F10", flo_16_func_802402AC_CD20
#include "world/common/UnkFunc22.inc.c"
typedef struct {
s32 unk_00;
s32 unk_04;
EffectGraphics* unk_08[3]; // TODO this is wrong
f32 unk_14[3];
f32 unk_20[3];
f32 unk_2C[3];
f32 unk_38[3];
f32 unk_44[3];
f32 unk_50[3];
Entity* unk_5C;
s32 unk_60;
s32 unk_64;
} N(UserData);
ApiStatus N(func_802406E0_CD2510)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_safe(-4);
f32 sinTheta, cosTheta;
s32 i;
f32 var;
N(UserData)* userDataPtr;
N(UserData)* scriptPtr;
f32 save, save2;
sin_cos_deg(gCameras[gCurrentCameraID].currentYaw, &sinTheta, &cosTheta);
if (isInitialCall) {
script->userData = (N(UserData)*)general_heap_malloc(0x68);
scriptPtr = (N(UserData)*)script->userData;
scriptPtr->unk_5C = get_entity_by_index(evt_get_variable(script, *args));
for (i = 0, userDataPtr = scriptPtr; i < 3; i++) {
userDataPtr->unk_08[i] = fx_motion_blur_flame(0, scriptPtr->unk_5C->position.x, scriptPtr->unk_5C->position.y + 12.5f,
scriptPtr->unk_5C->position.z, 1.0f, -1);
save = 0.0f;
userDataPtr->unk_2C[i] = save;
userDataPtr->unk_20[i] = save;
userDataPtr->unk_14[i] = save;
userDataPtr->unk_50[i] = save;
userDataPtr->unk_44[i] = save;
userDataPtr->unk_38[i] = save;
}
scriptPtr->unk_00 = 0;
scriptPtr->unk_04 = 0;
scriptPtr->unk_60 = 0;
scriptPtr->unk_64 = 0;
userDataPtr = scriptPtr;
for (i = 0, save = 50.0f; i < 3; i++) {
var = 0;
add_vec2D_polar(&var, &scriptPtr->unk_44[i], save, N(D_80243758_CD5588)[i]);
userDataPtr->unk_38[i] = cosTheta * var;
userDataPtr->unk_50[i] = sinTheta * var;
userDataPtr->unk_38[i] = npc->pos.x - (scriptPtr->unk_5C->position.x + userDataPtr->unk_38[i]);
userDataPtr->unk_44[i] = npc->pos.y - (scriptPtr->unk_5C->position.y + userDataPtr->unk_44[i]);
userDataPtr->unk_50[i] = npc->pos.z - (scriptPtr->unk_5C->position.z + userDataPtr->unk_50[i]);
}
}
scriptPtr = (N(UserData)*)script->userData;
switch (scriptPtr->unk_00) {
case 0:
save = update_lerp(5, 0.0f, 50.0f, scriptPtr->unk_60, 0x14);
save2 = 0.0f;
for (i = 0; i < 3; i++) {
scriptPtr->unk_20[i] = save2;
var = save2;
add_vec2D_polar(&var, &scriptPtr->unk_20[i], save, N(D_80243758_CD5588)[i]);
scriptPtr->unk_14[i] = cosTheta * var;
scriptPtr->unk_2C[i] = sinTheta * var;
}
scriptPtr->unk_60++;
if (scriptPtr->unk_60 >= 0x15) {
scriptPtr->unk_00 = 1;
scriptPtr->unk_60 = 0;
}
break;
case 1:
save = 50.0f;
save2 = 0.0f;
for (i = 0; i < 3; i++) {
scriptPtr->unk_20[i] = save2;
var = save2;
add_vec2D_polar(&var, &scriptPtr->unk_20[i], save, N(D_80243758_CD5588)[i]);
scriptPtr->unk_14[i] = cosTheta * var;
scriptPtr->unk_2C[i] = sinTheta * var;
}
scriptPtr->unk_60++;
if (scriptPtr->unk_60 >= 0x10) {
scriptPtr->unk_60 = 0xF;
scriptPtr->unk_00 = 2;
}
break;
case 2:
scriptPtr->unk_60++;
if (scriptPtr->unk_60 >= 0x1F) {
for (i = 0, userDataPtr = scriptPtr; i < 3; i++) {
userDataPtr->unk_08[i]->flags |= 0x10;
}
return ApiStatus_DONE2;
}
}
switch (scriptPtr->unk_04) {
case 0:
scriptPtr->unk_64++;
if (scriptPtr->unk_64 >= 0x10) {
scriptPtr->unk_04 = 1;
scriptPtr->unk_64 = 0;
}
break;
case 1:
for (i = 0, userDataPtr = scriptPtr; i < 3; i++) {
userDataPtr->unk_14[i] = userDataPtr->unk_14[i] + update_lerp(1, 0.0f, userDataPtr->unk_38[i], scriptPtr->unk_64, 0x14);
userDataPtr->unk_20[i] = userDataPtr->unk_20[i] + update_lerp(1, 0.0f, userDataPtr->unk_44[i], scriptPtr->unk_64, 0x14);
userDataPtr->unk_2C[i] = userDataPtr->unk_2C[i] + update_lerp(1, 0.0f, userDataPtr->unk_50[i], scriptPtr->unk_64, 0x14);
}
scriptPtr->unk_64++;
if (scriptPtr->unk_64 >= 0x15) {
scriptPtr->unk_04 = 2;
scriptPtr->unk_64 = 0;
}
break;
}
for (i = 0, userDataPtr = scriptPtr; i < 3; i++) {
((EffectInstanceData*)userDataPtr->unk_08[i]->freeDelay)->rotation.x = userDataPtr->unk_14[i];
((EffectInstanceData*)userDataPtr->unk_08[i]->freeDelay)->rotation.y = userDataPtr->unk_20[i];
((EffectInstanceData*)userDataPtr->unk_08[i]->freeDelay)->rotation.z = userDataPtr->unk_2C[i];
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkFunc60.inc.c"
#include "world/common/UnkFunc23.inc.c"

View File

@ -8,7 +8,7 @@ enum {
NPC_TUFF_PUFF1,
};
f32 N(D_80244010_CD5E40)[] = {
f32 N(sixFloats)[] = {
4.5f, 3.5f, 2.6f, 2.0f,
1.5f, 20.0f,
};
@ -31,7 +31,7 @@ EvtScript N(npcAI_80244058) = {
EVT_CALL(SetSelfVar, 5, 0)
EVT_CALL(SetSelfVar, 6, 0)
EVT_CALL(SetSelfVar, 1, 600)
EVT_CALL(N(func_80242754_CD4584), EVT_PTR(N(npcAISettings_80244028)))
EVT_CALL(N(UnkNpcAIMainFunc10), EVT_PTR(N(npcAISettings_80244028)))
EVT_RETURN
EVT_END
};
@ -357,21 +357,13 @@ EvtScript N(802451C4) = {
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
void N(func_80241AA4_CD38D4)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += N(D_80244010_CD5E40)[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -381,65 +373,7 @@ void N(func_80241AA4_CD38D4)(Evt* script, NpcAISettings* aiSettings, EnemyTerrit
#include "world/common/UnkFunc5.inc.c"
ApiStatus N(func_8024215C_CD3F8C)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings =(NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
break;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_80241AA4_CD38D4)(script, aiSettings, territoryPtr);
break;
case 12:
N(UnkNpcAIFunc14)(script, aiSettings, territoryPtr);
break;
case 13:
N(UnkNpcAIFunc3)(script, aiSettings, territoryPtr);
break;
case 14:
N(UnkFunc6)(script, aiSettings, territoryPtr);
break;
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "world/common/UnkNpcAIFunc13.inc.c"
@ -447,61 +381,4 @@ ApiStatus N(func_8024215C_CD3F8C)(Evt* script, s32 isInitialCall) {
#include "world/common/UnkFunc45.inc.c"
ApiStatus N(func_80242754_CD4584)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings =(NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
script->functionTemp[0] = 0;
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
break;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_80241AA4_CD38D4)(script, aiSettings, territoryPtr);
break;
case 12:
N(UnkNpcAIFunc13)(script, aiSettings, territoryPtr);
case 13:
N(UnkNpcAIFunc34)(script, aiSettings, territoryPtr);
break;
case 20:
N(UnkFunc45)(script, aiSettings, territoryPtr);
break;
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc10.inc.c"

View File

@ -24,9 +24,9 @@ ApiStatus N(func_80240000_CD1E30)(Evt* script, s32 isInitialCall);
ApiStatus N(func_8024011C_CD1F4C)(Evt* script, s32 isInitialCall);
ApiStatus N(func_802402AC_CD20DC)(Evt* script, s32 isInitialCall);
ApiStatus N(SwitchToPartner)(Evt* script, s32 isInitialCall);
ApiStatus N(func_802406E0_CD2510)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkFunc60)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkFunc44)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80242754_CD4584)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkNpcAIMainFunc10)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80242940_CD4770)(Evt* script, s32 isInitialCall);
extern NpcGroupList N(npcGroupList_802444D4);

View File

@ -309,7 +309,7 @@ NpcSettings N(npcSettings_802443D8) = {
.level = 99,
};
f32 N(D_8024440C_CDB6EC)[] = {
f32 N(sixFloats)[] = {
4.5f, 3.5f, 2.6f, 2.0f,
1.5f, 20.0f,
};
@ -629,21 +629,13 @@ EvtScript N(makeEntities) = {
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
void N(func_80240CC4_CD7FA4)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += N(D_8024440C_CDB6EC)[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -653,65 +645,7 @@ void N(func_80240CC4_CD7FA4)(Evt* script, NpcAISettings* aiSettings, EnemyTerrit
#include "world/common/UnkFunc5.inc.c"
ApiStatus N(func_8024137C_CD865C)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings = (NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
break;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_80240CC4_CD7FA4)(script, aiSettings, territoryPtr);
break;
case 12:
N(UnkNpcAIFunc14)(script, aiSettings, territoryPtr);
break;
case 13:
N(UnkNpcAIFunc3)(script, aiSettings, territoryPtr);
break;
case 14:
N(UnkFunc6)(script, aiSettings, territoryPtr);
break;
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc9.inc.c"
s32 N(func_80241568_CD8848)(void) {
s32 i;
@ -898,7 +832,7 @@ ApiStatus N(func_80241C64_CD8F44)(Evt* script, s32 isInitialCall) {
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
N(UnkNpcAIFunc1_copy)(script, aiSettings, territoryPtr);
case 3:
N(func_80241A14_CD8CF4)(script, aiSettings, territoryPtr);

View File

@ -1,5 +1,4 @@
#include "flo_21.h"
#include "effects.h"
#include "message_ids.h"
#include "sprite/npc/huff_n_puff.h"
#include "sprite/npc/tuff_puff.h"

View File

@ -126,7 +126,7 @@ NpcSettings N(npcSettings_802428F0) = {
.level = 99,
};
f32 N(D_8024291C_CF54EC)[] = {
f32 N(sixFloats)[] = {
4.5f, 3.5f, 2.6f, 2.0f,
1.5f, 20.0f,
};
@ -149,7 +149,7 @@ EvtScript N(npcAI_80242964) = {
EVT_CALL(SetSelfVar, 5, 0)
EVT_CALL(SetSelfVar, 6, 0)
EVT_CALL(SetSelfVar, 1, 600)
EVT_CALL(N(func_80241944_CF4514), EVT_PTR(N(npcAISettings_80242934)))
EVT_CALL(N(UnkNpcAIMainFunc10), EVT_PTR(N(npcAISettings_80242934)))
EVT_RETURN
EVT_END
};
@ -183,7 +183,7 @@ EvtScript N(npcAI_80242A30) = {
EVT_CALL(SetSelfVar, 5, -630)
EVT_CALL(SetSelfVar, 6, 50)
EVT_CALL(SetSelfVar, 1, 200)
EVT_CALL(N(func_8024134C_CF3F1C), EVT_PTR(N(npcAISettings_80242A00)))
EVT_CALL(N(UnkNpcAIMainFunc9), EVT_PTR(N(npcAISettings_80242A00)))
EVT_RETURN
EVT_END
};
@ -518,21 +518,13 @@ static s32 N(pad_3CD8)[] = {
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
void N(func_80240C94_CF3864)(Evt* script, NpcAISettings* aiSettings, EnemyTerritoryThing* territory) {
Enemy* enemy = script->owner1.enemy;
Npc* npc = get_npc_unsafe(enemy->npcID);
npc->pos.y += N(D_8024291C_CF54EC)[npc->duration++];
if (npc->duration >= 5) {
script->functionTemp[0] = 12;
}
}
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -542,132 +534,15 @@ void N(func_80240C94_CF3864)(Evt* script, NpcAISettings* aiSettings, EnemyTerrit
#include "world/common/UnkFunc5.inc.c"
ApiStatus N(func_8024134C_CF3F1C)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings = (NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
break;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_80240C94_CF3864)(script, aiSettings, territoryPtr);
break;
case 12:
N(UnkNpcAIFunc14)(script, aiSettings, territoryPtr);
break;
case 13:
N(UnkNpcAIFunc3)(script, aiSettings, territoryPtr);
break;
case 14:
N(UnkFunc6)(script, aiSettings, territoryPtr);
break;
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "world/common/UnkNpcAIFunc13.inc.c"
#include "world/common/UnkNpcAIFunc34.inc.c"
#include "world/common/UnkFunc45.inc.c"
ApiStatus N(func_80241944_CF4514)(Evt* script, s32 isInitialCall) {
Enemy* enemy = script->owner1.enemy;
Bytecode* args = script->ptrReadPos;
Npc* npc = get_npc_unsafe(enemy->npcID);
EnemyTerritoryThing territory;
EnemyTerritoryThing* territoryPtr = &territory;
NpcAISettings* aiSettings = (NpcAISettings*) evt_get_variable(script, *args);
territory.unk_00 = 0;
territory.shape = enemy->territory->wander.detectShape;
territory.pointX = enemy->territory->wander.detect.x;
territory.pointZ = enemy->territory->wander.detect.z;
territory.sizeX = enemy->territory->wander.detectSizeX;
territory.sizeZ = enemy->territory->wander.detectSizeZ;
territory.unk_18 = 120.0f;
territory.unk_1C = 0;
if (isInitialCall) {
N(UnkFunc5)(npc, enemy, script, aiSettings);
script->functionTemp[0] = 0;
}
npc->unk_AB = -2;
if (enemy->unk_B0 & 4) {
if (enemy->unk_B4 != 0) {
return ApiStatus_BLOCK;
}
enemy->unk_B0 &= ~4;
}
switch (script->functionTemp[0]) {
case 0:
N(UnkNpcAIFunc23)(script, aiSettings, territoryPtr);
case 1:
N(UnkNpcAIFunc35)(script, aiSettings, territoryPtr);
break;
case 2:
N(UnkNpcAIFunc1)(script, aiSettings, territoryPtr);
case 3:
N(UnkFunc4)(script, aiSettings, territoryPtr);
break;
case 10:
N(UnkNpcAIFunc2)(script, aiSettings, territoryPtr);
case 11:
N(func_80240C94_CF3864)(script, aiSettings, territoryPtr);
break;
case 12:
N(UnkNpcAIFunc13)(script, aiSettings, territoryPtr);
case 13:
N(UnkNpcAIFunc34)(script, aiSettings, territoryPtr);
break;
case 20:
N(UnkFunc45)(script, aiSettings, territoryPtr);
break;
}
return ApiStatus_BLOCK;
}
#include "world/common/UnkNpcAIMainFunc10.inc.c"
#include "world/common/GetNpcCollisionHeight.inc.c"

View File

@ -10,8 +10,8 @@ ApiStatus N(AddPlayerHandsOffset)(Evt* script, s32 isInitialCall);
ApiStatus N(TransformFoliage)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkFunc43)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80240000_CF2BD0)(Evt* script, s32 isInitialCall);
ApiStatus N(func_8024134C_CF3F1C)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80241944_CF4514)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkNpcAIMainFunc9)(Evt* script, s32 isInitialCall);
ApiStatus N(UnkNpcAIMainFunc10)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80241D58_CF4928)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80241DAC_CF497C)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80241DE4_CF49B4)(Evt* script, s32 isInitialCall);

View File

@ -4,13 +4,13 @@
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_hos/hos_02/A17210", func_80241C44_A17E64);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -20,14 +20,13 @@ INCLUDE_ASM(s32, "world/area_hos/hos_02/A17210", func_80241C44_A17E64);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_hos/hos_02/A17210", func_802422FC_A1851C);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "world/common/UnkNpcAIFunc13.inc.c"
INCLUDE_ASM(s32, "world/area_hos/hos_02/A17210", func_80242618_A18838);
//#include "world/common/UnkNpcAIFunc34.inc.c"
#include "world/common/UnkFunc45.inc.c"
INCLUDE_ASM(s32, "world/area_hos/hos_02/A17210", func_802428F4_A18B14);
#include "world/common/UnkNpcAIMainFunc10.inc.c"

View File

@ -6,13 +6,13 @@
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_hos/hos_03/A1BDB0", func_80241904_A1CA04);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -22,7 +22,7 @@ INCLUDE_ASM(s32, "world/area_hos/hos_03/A1BDB0", func_80241904_A1CA04);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_hos/hos_03/A1BDB0", func_80241FBC_A1D0BC);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "world/common/Call800E9894.inc.c"

View File

@ -27,7 +27,7 @@ INCLUDE_ASM(s32, "world/area_isk/isk_10/988B60", func_802401CC_988D2C);
#include "world/common/UnkFunc22.inc.c"
INCLUDE_ASM(s32, "world/area_isk/isk_10/988B60", func_80240600_989160);
#include "world/common/UnkFunc60.inc.c"
#include "world/common/UnkFunc23.inc.c"

View File

@ -1,16 +1,16 @@
#include "iwa_01.h"
INCLUDE_ASM(s32, "world/area_iwa/iwa_01/90FBD0", func_80240520_90FBD0);
#include "world/common/UnkFunc61.inc.c"
INCLUDE_ASM(s32, "world/area_iwa/iwa_01/90FBD0", func_80240710_90FDC0);
#include "world/common/UnkNpcAIFunc48.inc.c"
INCLUDE_ASM(s32, "world/area_iwa/iwa_01/90FBD0", func_80240854_90FF04);
#include "world/common/UnkNpcAIFunc49.inc.c"
#include "world/common/UnkSetDurationFunc.inc.c"
#include "world/common/UnkNpcAIFunc9.inc.c"
#include "world/common/UnkDurationCheck.inc.c"
#include "world/common/UnkDurationCheckNoArgs.inc.c"
#include "world/common/UnkFunc54.inc.c"
@ -36,7 +36,7 @@ INCLUDE_ASM(s32, "world/area_iwa/iwa_01/90FBD0", func_80241CF0_9113A0);
INCLUDE_ASM(s32, "world/area_iwa/iwa_01/90FBD0", func_80241D70_911420);
INCLUDE_ASM(s32, "world/area_iwa/iwa_01/90FBD0", func_80241F6C_91161C);
#include "world/common/UnkNpcAIMainFunc7.inc.c"
#include "world/common/GetEncounterEnemyIsOwner.inc.c"

View File

@ -24,7 +24,7 @@ INCLUDE_ASM(s32, "world/area_iwa/iwa_10/91E6D0", func_802404BC_91EA2C);
#include "world/common/UnkFunc22.inc.c"
INCLUDE_ASM(s32, "world/area_iwa/iwa_10/91E6D0", func_802408F0_91EE60);
#include "world/common/UnkFunc60.inc.c"
#include "world/common/UnkFunc23.inc.c"

View File

@ -22,7 +22,7 @@ INCLUDE_ASM(s32, "world/area_jan/jan_08/B5E910", func_8024082C_B5EADC);
#include "world/common/UnkFunc22.inc.c"
INCLUDE_ASM(s32, "world/area_jan/jan_08/B5E910", func_80240C60_B5EF10);
#include "world/common/UnkFunc60.inc.c"
#include "world/common/UnkFunc23.inc.c"

View File

@ -7,13 +7,13 @@ static char* N(exit_str_1) = "kmr_02";
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_kmr/kmr_05/8CE070", func_80240C54_8CECC4);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -23,4 +23,4 @@ INCLUDE_ASM(s32, "world/area_kmr/kmr_05/8CE070", func_80240C54_8CECC4);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_kmr/kmr_05/8CE070", func_8024130C_8CF37C);
#include "world/common/UnkNpcAIMainFunc9.inc.c"

View File

@ -7,13 +7,13 @@ static char* N(exit_str_1) = "kmr_07";
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_kmr/kmr_06/8D1510", func_80240C54_8D2164);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -23,4 +23,4 @@ INCLUDE_ASM(s32, "world/area_kmr/kmr_06/8D1510", func_80240C54_8D2164);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_kmr/kmr_06/8D1510", func_8024130C_8D281C);
#include "world/common/UnkNpcAIMainFunc9.inc.c"

View File

@ -7,13 +7,13 @@ static char* N(exit_str_1) = "kmr_06";
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_kmr/kmr_09/8D5E00", func_80240C54_8D6A54);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -23,7 +23,7 @@ INCLUDE_ASM(s32, "world/area_kmr/kmr_09/8D5E00", func_80240C54_8D6A54);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_kmr/kmr_09/8D5E00", func_8024130C_8D710C);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
ApiStatus func_802414F8_8D72F8(Evt* script, s32 isInitialCall) {
script->varTable[0] = get_enemy_safe(2);

View File

@ -12,15 +12,15 @@
#include "world/common/AwaitPlayerNearNpc.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_03/A48720", func_80240A48_A49008);
#include "world/common/UnkNpcAIFunc47.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_03/A48720", func_80240C18_A491D8);
#include "world/common/UnkFunc57.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_03/A48720", func_80241128_A496E8);
#include "world/common/UnkFunc58.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_03/A48720", func_8024119C_A4975C);
INCLUDE_ASM(s32, "world/area_kpa/kpa_03/A48720", func_802412C8_A49888);
#include "world/common/UnkFunc59.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_03/A48720", func_80241368_A49928);
@ -28,7 +28,10 @@ INCLUDE_ASM(s32, "world/area_kpa/kpa_03/A48720", func_802413CC_A4998C);
INCLUDE_ASM(s32, "world/area_kpa/kpa_03/A48720", func_8024150C_A49ACC);
INCLUDE_ASM(s32, "world/area_kpa/kpa_03/A48720", func_802416B0_A49C70);
void func_802416B0_A49C70(Evt* script) {
get_npc_unsafe(script->owner1.enemy->npcID)->duration = 40;
script->functionTemp[0] = 21;
}
INCLUDE_ASM(s32, "world/area_kpa/kpa_03/A48720", func_802416EC_A49CAC);

View File

@ -1,14 +1,14 @@
#include "kpa_08.h"
INCLUDE_ASM(s32, "world/area_kpa/kpa_08/A4CAC0", func_802400A0_A4CAC0);
#include "world/common/UnkNpcAIFunc47.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_08/A4CAC0", func_80240270_A4CC90);
#include "world/common/UnkFunc57.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_08/A4CAC0", func_80240780_A4D1A0);
#include "world/common/UnkFunc58.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_08/A4CAC0", func_802407F4_A4D214);
INCLUDE_ASM(s32, "world/area_kpa/kpa_08/A4CAC0", func_80240920_A4D340);
#include "world/common/UnkFunc59.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_08/A4CAC0", func_802409C0_A4D3E0);

View File

@ -1,21 +1,21 @@
#include "kpa_09.h"
INCLUDE_ASM(s32, "world/area_kpa/kpa_09/A4F0A0", func_802400A0_A4F0A0);
#include "world/common/UnkFunc61.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_09/A4F0A0", func_80240290_A4F290);
#include "world/common/UnkNpcAIFunc48.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_09/A4F0A0", func_802403D4_A4F3D4);
#include "world/common/UnkNpcAIFunc49.inc.c"
#include "world/common/UnkSetDurationFunc.inc.c"
#include "world/common/UnkNpcAIFunc9.inc.c"
#include "world/common/UnkDurationCheck.inc.c"
#include "world/common/UnkDurationCheckNoArgs.inc.c"
#include "world/common/UnkFunc54.inc.c"
#include "world/common/UnkFunc55.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_09/A4F0A0", func_80240F94_A4FF94);
#include "world/common/UnkNpcAIMainFunc7.inc.c"
#include "world/common/GetEncounterEnemyIsOwner.inc.c"

View File

@ -1,22 +1,22 @@
#include "kpa_102.h"
INCLUDE_ASM(s32, "world/area_kpa/kpa_102/A93A50", func_80240310_A93A50);
#include "world/common/UnkFunc61.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_102/A93A50", func_80240500_A93C40);
#include "world/common/UnkNpcAIFunc48.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_102/A93A50", func_80240644_A93D84);
#include "world/common/UnkNpcAIFunc49.inc.c"
#include "world/common/UnkSetDurationFunc.inc.c"
#include "world/common/UnkNpcAIFunc9.inc.c"
#include "world/common/UnkDurationCheck.inc.c"
#include "world/common/UnkDurationCheckNoArgs.inc.c"
#include "world/common/UnkFunc54.inc.c"
#include "world/common/UnkFunc55.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_102/A93A50", func_80241204_A94944);
#include "world/common/UnkNpcAIMainFunc7.inc.c"
#include "world/common/GetEncounterEnemyIsOwner.inc.c"
@ -30,9 +30,9 @@ INCLUDE_ASM(s32, "world/area_kpa/kpa_102/A93A50", func_80241204_A94944);
#include "world/common/UnkNpcAIMainFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_102/A93A50", func_80241D30_A95470);
#include "world/common/UnkNpcAIFunc47.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_102/A93A50", func_80241F00_A95640);
#include "world/common/UnkFunc57.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_102/A93A50", func_80242410_A95B50);

View File

@ -7,22 +7,22 @@ static char* N(exit_str_1) = "kpa_112";
#include "world/common/UnkFunc12.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_111/A99590", func_80240170_A99700);
#include "world/common/UnkFunc61.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_111/A99590", func_80240360_A998F0);
#include "world/common/UnkNpcAIFunc48.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_111/A99590", func_802404A4_A99A34);
#include "world/common/UnkNpcAIFunc49.inc.c"
#include "world/common/UnkSetDurationFunc.inc.c"
#include "world/common/UnkNpcAIFunc9.inc.c"
#include "world/common/UnkDurationCheck.inc.c"
#include "world/common/UnkDurationCheckNoArgs.inc.c"
#include "world/common/UnkFunc54.inc.c"
#include "world/common/UnkFunc55.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_111/A99590", func_80241064_A9A5F4);
#include "world/common/UnkNpcAIMainFunc7.inc.c"
#include "world/common/GetEncounterEnemyIsOwner.inc.c"

View File

@ -9,22 +9,22 @@ static char* N(exit_str_3) = "";
#include "world/common/UnkFunc12.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_115/A9ED40", func_80240170_A9EEB0);
#include "world/common/UnkFunc61.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_115/A9ED40", func_80240360_A9F0A0);
#include "world/common/UnkNpcAIFunc48.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_115/A9ED40", func_802404A4_A9F1E4);
#include "world/common/UnkNpcAIFunc49.inc.c"
#include "world/common/UnkSetDurationFunc.inc.c"
#include "world/common/UnkNpcAIFunc9.inc.c"
#include "world/common/UnkDurationCheck.inc.c"
#include "world/common/UnkDurationCheckNoArgs.inc.c"
#include "world/common/UnkFunc54.inc.c"
#include "world/common/UnkFunc55.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_115/A9ED40", func_80241064_A9FDA4);
#include "world/common/UnkNpcAIMainFunc7.inc.c"
#include "world/common/GetEncounterEnemyIsOwner.inc.c"

View File

@ -3,23 +3,23 @@
static char* N(exit_str_0) = "kpa_70";
static char* N(exit_str_1) = "kpa_81";
INCLUDE_ASM(s32, "world/area_kpa/kpa_50/A609D0", func_80240000_A609D0);
#include "world/common/UnkFunc61.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_50/A609D0", func_802401F0_A60BC0);
#include "world/common/UnkNpcAIFunc48.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_50/A609D0", func_80240334_A60D04);
#include "world/common/UnkNpcAIFunc49.inc.c"
#include "world/common/UnkSetDurationFunc.inc.c"
#include "world/common/UnkNpcAIFunc9.inc.c"
#include "world/common/UnkDurationCheck.inc.c"
#include "world/common/UnkDurationCheckNoArgs.inc.c"
#include "world/common/UnkFunc54.inc.c"
#include "world/common/UnkFunc55.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_50/A609D0", func_80240EF4_A618C4);
#include "world/common/UnkNpcAIMainFunc7.inc.c"
#include "world/common/GetEncounterEnemyIsOwner.inc.c"

View File

@ -1,14 +1,14 @@
#include "kpa_51.h"
INCLUDE_ASM(s32, "world/area_kpa/kpa_51/A640E0", func_80240050_A640E0);
#include "world/common/UnkNpcAIFunc47.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_51/A640E0", func_80240220_A642B0);
#include "world/common/UnkFunc57.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_51/A640E0", func_80240730_A647C0);
#include "world/common/UnkFunc58.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_51/A640E0", func_802407A4_A64834);
INCLUDE_ASM(s32, "world/area_kpa/kpa_51/A640E0", func_802408D0_A64960);
#include "world/common/UnkFunc59.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_51/A640E0", func_80240970_A64A00);

View File

@ -1,21 +1,21 @@
#include "kpa_52.h"
INCLUDE_ASM(s32, "world/area_kpa/kpa_52/A671E0", func_802400E0_A671E0);
#include "world/common/UnkFunc61.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_52/A671E0", func_802402D0_A673D0);
#include "world/common/UnkNpcAIFunc48.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_52/A671E0", func_80240414_A67514);
#include "world/common/UnkNpcAIFunc49.inc.c"
#include "world/common/UnkSetDurationFunc.inc.c"
#include "world/common/UnkNpcAIFunc9.inc.c"
#include "world/common/UnkDurationCheck.inc.c"
#include "world/common/UnkDurationCheckNoArgs.inc.c"
#include "world/common/UnkFunc54.inc.c"
#include "world/common/UnkFunc55.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_52/A671E0", func_80240FD4_A680D4);
#include "world/common/UnkNpcAIMainFunc7.inc.c"
#include "world/common/GetEncounterEnemyIsOwner.inc.c"

View File

@ -10,9 +10,9 @@
#include "world/common/UnkNpcAIMainFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_61/A6E6F0", func_80240AE4_A6EEC4);
#include "world/common/UnkNpcAIFunc47.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_61/A6E6F0", func_80240CB4_A6F094);
#include "world/common/UnkFunc57.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_61/A6E6F0", func_802411C4_A6F5A4);

View File

@ -35,7 +35,7 @@ static char* N(exit_str_1) = "";
#include "world/common/set_script_owner_npc_col_height.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_91/A86A50", func_80241224_A87C74);
#include "world/common/UnkNpcAIMainFunc8.inc.c"
#include "world/common/Call800E9894.inc.c"

View File

@ -32,7 +32,7 @@
#include "world/common/set_script_owner_npc_col_height.inc.c"
INCLUDE_ASM(s32, "world/area_kpa/kpa_95/A8CB60", func_80241304_A8DD84);
#include "world/common/UnkNpcAIMainFunc8.inc.c"
#include "world/common/Call800E9894.inc.c"

View File

@ -4,13 +4,13 @@
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_02/C5AC20", func_80241134_C5B874);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -20,18 +20,16 @@ INCLUDE_ASM(s32, "world/area_kzn/kzn_02/C5AC20", func_80241134_C5B874);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_02/C5AC20", func_802417EC_C5BF2C);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "world/common/UnkNpcAIFunc13.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_02/C5AC20", func_80241B08_C5C248);
//#include "world/common/UnkNpcAIFunc34.inc.c"
#include "world/common/UnkNpcAIFunc34.inc.c"
#include "world/common/UnkFunc45.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_02/C5AC20", func_80241DE4_C5C524);
#include "world/common/UnkNpcAIMainFunc10.inc.c"
static char* N(exit_str_0) = "kzn_02";
INCLUDE_ASM(s32, "world/area_kzn/kzn_02/C5AC20", func_80241FCC_C5C70C);

View File

@ -1,3 +1,5 @@
#include "kzn_02.h"
static char* N(exit_str_0) = "kzn_02";
INCLUDE_ASM(s32, "world/area_kzn/kzn_02/C5CE70", func_80242730_C5CE70);

View File

@ -22,7 +22,7 @@ INCLUDE_ASM(s32, "world/area_kzn/kzn_04/C68440", func_802404DC_C6860C);
#include "world/common/UnkFunc22.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_04/C68440", func_80240910_C68A40);
#include "world/common/UnkFunc60.inc.c"
#include "world/common/UnkFunc23.inc.c"

View File

@ -8,13 +8,13 @@ INCLUDE_ASM(s32, "world/area_kzn/kzn_07/C6EA50", func_802407F4_C6EB24);
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_07/C6EA50", func_80241474_C6F7A4);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -24,14 +24,12 @@ INCLUDE_ASM(s32, "world/area_kzn/kzn_07/C6EA50", func_80241474_C6F7A4);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_07/C6EA50", func_80241B2C_C6FE5C);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "world/common/UnkNpcAIFunc13.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_07/C6EA50", func_80241E48_C70178);
//#include "world/common/UnkNpcAIFunc34.inc.c"
#include "world/common/UnkNpcAIFunc34.inc.c"
#include "world/common/UnkFunc45.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_07/C6EA50", func_80242124_C70454);
#include "world/common/UnkNpcAIMainFunc10.inc.c"

View File

@ -4,13 +4,13 @@
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_08/C71ED0", func_802416A4_C72B24);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -20,16 +20,15 @@ INCLUDE_ASM(s32, "world/area_kzn/kzn_08/C71ED0", func_802416A4_C72B24);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_08/C71ED0", func_80241D5C_C731DC);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "world/common/UnkNpcAIFunc13.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_08/C71ED0", func_80242078_C734F8);
//#include "world/common/UnkNpcAIFunc34.inc.c"
#include "world/common/UnkNpcAIFunc34.inc.c"
#include "world/common/UnkFunc45.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_08/C71ED0", func_80242354_C737D4);
#include "world/common/UnkNpcAIMainFunc10.inc.c"
#include "world/common/UnkNpcAIFunc6.inc.c"

View File

@ -25,7 +25,7 @@ INCLUDE_ASM(s32, "world/area_kzn/kzn_09/C76CE0", func_802401CC_C76EAC);
#include "world/common/UnkFunc22.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_09/C76CE0", func_80240600_C772E0);
#include "world/common/UnkFunc60.inc.c"
#include "world/common/UnkFunc23.inc.c"

View File

@ -4,13 +4,13 @@
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_11/C80600", func_802410B4_C81254);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -20,16 +20,15 @@ INCLUDE_ASM(s32, "world/area_kzn/kzn_11/C80600", func_802410B4_C81254);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_11/C80600", func_8024176C_C8190C);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "world/common/UnkNpcAIFunc13.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_11/C80600", func_80241A88_C81C28);
//#include "world/common/UnkNpcAIFunc34.inc.c"
#include "world/common/UnkNpcAIFunc34.inc.c"
#include "world/common/UnkFunc45.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_11/C80600", func_80241D64_C81F04);
#include "world/common/UnkNpcAIMainFunc10.inc.c"
INCLUDE_ASM(s32, "world/area_kzn/kzn_11/C80600", func_80241F4C_C820EC);

View File

@ -11,13 +11,13 @@ INCLUDE_ASM(s32, "world/area_mim/mim_08/BAD940", func_80240068_BAD9A8);
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_mim/mim_08/BAD940", func_80240CF4_BAE634);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -27,7 +27,7 @@ INCLUDE_ASM(s32, "world/area_mim/mim_08/BAD940", func_80240CF4_BAE634);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_mim/mim_08/BAD940", func_802413AC_BAECEC);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "world/common/UnkNpcAIFunc6.inc.c"

View File

@ -17,13 +17,13 @@ static char* N(exit_str_1) = "nok_12";
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_nok/nok_11/9F4A40", func_80241428_9F5E68);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -33,7 +33,7 @@ INCLUDE_ASM(s32, "world/area_nok/nok_11/9F4A40", func_80241428_9F5E68);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_nok/nok_11/9F4A40", func_80241AE0_9F6520);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "common/foliage.inc.c"

View File

@ -34,6 +34,6 @@
#include "world/common/UnkNpcAIMainFunc.inc.c"
INCLUDE_ASM(s32, "world/area_nok/nok_12/9FAD60", func_80241BD4_9FC3C4);
#include "world/common/UnkNpcAIMainFunc8.inc.c"
static char* N(exit_str_0) = "nok_12";

View File

@ -14,13 +14,13 @@
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_nok/nok_14/A02A00", func_802415E8_A03E28);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -30,7 +30,10 @@ INCLUDE_ASM(s32, "world/area_nok/nok_14/A02A00", func_802415E8_A03E28);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_nok/nok_14/A02A00", func_80241CA0_A044E0);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
// todo remove when below are decompiled
static const f32 padding = 0.0f;
INCLUDE_ASM(s32, "world/area_nok/nok_14/A02A00", func_80241E8C_A046CC);

View File

@ -31,13 +31,13 @@ static char* N(exit_str_3) = "";
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_nok/nok_15/A06F00", func_80241708_A08608);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -47,7 +47,10 @@ INCLUDE_ASM(s32, "world/area_nok/nok_15/A06F00", func_80241708_A08608);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_nok/nok_15/A06F00", func_80241DC0_A08CC0);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
// todo remove when below are decompiled
static const f32 padding = 0.0f;
INCLUDE_ASM(s32, "world/area_nok/nok_15/A06F00", func_80241FAC_A08EAC);

View File

@ -36,23 +36,23 @@ INCLUDE_ASM(s32, "world/area_omo/omo_02/D9D510", func_80240BA8_D9E078);
#include "world/common/UnkNpcAIMainFunc4.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_02/D9D510", func_80241948_D9EE18);
#include "world/common/UnkFunc61.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_02/D9D510", func_80241B38_D9F008);
#include "world/common/UnkNpcAIFunc48.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_02/D9D510", func_80241C7C_D9F14C);
#include "world/common/UnkNpcAIFunc49.inc.c"
#include "world/common/UnkSetDurationFunc.inc.c"
#include "world/common/UnkNpcAIFunc9.inc.c"
#include "world/common/UnkDurationCheck.inc.c"
#include "world/common/UnkDurationCheckNoArgs.inc.c"
#include "world/common/UnkFunc54.inc.c"
#include "world/common/UnkFunc55.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_02/D9D510", func_8024283C_D9FD0C);
#include "world/common/UnkNpcAIMainFunc7.inc.c"
#include "world/common/SetNpcB5_3.inc.c"

View File

@ -6,17 +6,17 @@
#include "common/SetAngleClamped.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_03/DA5260", func_80240104_DA5344);
#include "common/CompareFloats.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_03/DA5260", func_80240188_DA53C8);
#include "common/UnkBufferFunc.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_03/DA5260", func_8024020C_DA544C);
#include "common/SetPlayerStatusPosYaw.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_03/DA5260", func_802402B0_DA54F0);
#include "common/SetNpcPosYaw.inc.c"
#include "common/UnkFloatFunc.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_03/DA5260", func_80240538_DA5778);
#include "common/IsAOrBPressed.inc.c"
#include "world/common/UnkTexturePanFunc.inc.c"

View File

@ -21,13 +21,13 @@ INCLUDE_ASM(s32, "world/area_omo/omo_04/DAD400", func_802402F4_DAD6F4);
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_04/DAD400", func_80240FF4_DAE3F4);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -37,7 +37,7 @@ INCLUDE_ASM(s32, "world/area_omo/omo_04/DAD400", func_80240FF4_DAE3F4);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_04/DAD400", func_802416AC_DAEAAC);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_04/DAD400", func_80241898_DAEC98);

View File

@ -23,13 +23,13 @@ INCLUDE_ASM(s32, "world/area_omo/omo_05/DB22C0", func_80240780_DB2A40);
#include "world/common/UnkNpcAIFunc35.inc.c"
#include "world/common/UnkNpcAIFunc1.inc.c"
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_05/DB22C0", func_802416A8_DB3968);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -39,7 +39,7 @@ INCLUDE_ASM(s32, "world/area_omo/omo_05/DB22C0", func_802416A8_DB3968);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_05/DB22C0", func_80241D60_DB4020);
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "world/common/GetNpcCollisionHeight.inc.c"

View File

@ -13,17 +13,17 @@ static char* N(exit_str_7) = "";
#include "common/SetAngleClamped.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_06/DB7910", func_802400E4_DB79F4);
#include "common/CompareFloats.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_06/DB7910", func_80240168_DB7A78);
#include "common/UnkBufferFunc.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_06/DB7910", func_802401EC_DB7AFC);
#include "common/SetPlayerStatusPosYaw.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_06/DB7910", func_80240290_DB7BA0);
#include "common/SetNpcPosYaw.inc.c"
#include "common/UnkFloatFunc.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_06/DB7910", func_80240518_DB7E28);
#include "common/IsAOrBPressed.inc.c"
#include "world/common/UnkTexturePanFunc.inc.c"

View File

@ -53,15 +53,13 @@ INCLUDE_ASM(s32, "world/area_omo/omo_07/DBD2B0", func_80241634_DBE8E4);
#include "world/common/UnkNpcAIFunc35.inc.c"
#define NAMESPACE dup_omo_07
#include "world/common/UnkNpcAIFunc1.inc.c"
#define NAMESPACE omo_07
#include "world/common/UnkNpcAIFunc1_copy.inc.c"
#include "world/common/UnkFunc4.inc.c"
#include "world/common/UnkNpcAIFunc2.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_07/DBD2B0", func_802425CC_DBF87C);
#include "world/common/SixFloatsFunc.inc.c"
#include "world/common/UnkNpcAIFunc14.inc.c"
@ -71,9 +69,7 @@ INCLUDE_ASM(s32, "world/area_omo/omo_07/DBD2B0", func_802425CC_DBF87C);
#include "world/common/UnkFunc5.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_07/DBD2B0", func_80242C84_DBFF34);
static char* N(exit_str_2) = "omo_07";
#include "world/common/UnkNpcAIMainFunc9.inc.c"
#include "world/common/SetCamera0Flag1000.inc.c"

View File

@ -1,5 +1,7 @@
#include "omo_07.h"
static char* N(exit_str_2) = "omo_07";
INCLUDE_ASM(s32, "world/area_omo/omo_07/DC01D0", func_80242F20_DC01D0);
#include "world/common/GetItemName.inc.c"

View File

@ -11,17 +11,17 @@ static char* N(exit_str_5) = "omo_16";
#include "common/SetAngleClamped.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_08/DC43D0", func_802400E4_DC44B4);
#include "common/CompareFloats.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_08/DC43D0", func_80240168_DC4538);
#include "common/UnkBufferFunc.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_08/DC43D0", func_802401EC_DC45BC);
#include "common/SetPlayerStatusPosYaw.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_08/DC43D0", func_80240290_DC4660);
#include "common/SetNpcPosYaw.inc.c"
#include "common/UnkFloatFunc.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_08/DC43D0", func_80240518_DC48E8);
#include "common/IsAOrBPressed.inc.c"
#include "world/common/UnkTexturePanFunc.inc.c"

View File

@ -46,25 +46,23 @@ INCLUDE_ASM(s32, "world/area_omo/omo_09/DCD6B0", func_80241F1C_DCEBEC);
INCLUDE_ASM(s32, "world/area_omo/omo_09/DCD6B0", func_80242014_DCECE4);
INCLUDE_ASM(s32, "world/area_omo/omo_09/DCD6B0", func_80242358_DCF028);
#include "world/common/UnkFunc61.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_09/DCD6B0", func_80242548_DCF218);
#include "world/common/UnkNpcAIFunc48.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_09/DCD6B0", func_8024268C_DCF35C);
#include "world/common/UnkNpcAIFunc49.inc.c"
#include "world/common/UnkSetDurationFunc.inc.c"
#include "world/common/UnkNpcAIFunc9.inc.c"
#include "world/common/UnkDurationCheck.inc.c"
#include "world/common/UnkDurationCheckNoArgs.inc.c"
#include "world/common/UnkFunc54.inc.c"
#include "world/common/UnkFunc55.inc.c"
INCLUDE_ASM(s32, "world/area_omo/omo_09/DCD6B0", func_8024324C_DCFF1C);
static char* N(exit_str_0) = "omo_09";
#include "world/common/UnkNpcAIMainFunc7.inc.c"
#include "world/common/SetNpcB5_3.inc.c"

Some files were not shown because too many files have changed in this diff Show More