#include "common.h" #include "map.h" void NOP_npc_callback(void) { } void mtx_ident_mirror_y(Matrix4f* mtx) { guMtxIdentF(mtx); mtx->mtx[0][0] = 1.0f; mtx->mtx[1][1] = -1.0f; mtx->mtx[2][2] = 1.0f; mtx->mtx[3][3] = 1.0f; } INCLUDE_ASM(s32, "code_13870_len_6980", clear_npcs); INCLUDE_ASM(s32, "code_13870_len_6980", init_npc_list); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003857C); INCLUDE_ASM(s32, "code_13870_len_6980", _create_npc); INCLUDE_ASM(s32, "code_13870_len_6980", create_basic_npc); INCLUDE_ASM(s32, "code_13870_len_6980", create_standard_npc); INCLUDE_ASM(s32, "code_13870_len_6980", create_partner_npc); INCLUDE_ASM(s32, "code_13870_len_6980", free_npc_by_index); INCLUDE_ASM(s32, "code_13870_len_6980", free_npc); Npc* get_npc_by_index(s32 listIndex) { return gCurrentNpcListPtr[0][listIndex & ~0x800]; } INCLUDE_ASM(s32, "code_13870_len_6980", npc_do_world_collision); INCLUDE_ASM(s32, "code_13870_len_6980", npc_do_other_npc_collision); INCLUDE_ASM(s32, "code_13870_len_6980", npc_do_player_collision); INCLUDE_ASM(s32, "code_13870_len_6980", func_80039688); INCLUDE_ASM(s32, "code_13870_len_6980", func_800397E8); INCLUDE_ASM(s32, "code_13870_len_6980", update_npcs); INCLUDE_ASM(s32, "code_13870_len_6980", func_80039DA4); INCLUDE_ASM(s32, "code_13870_len_6980", appendGfx_npc); INCLUDE_ASM(s32, "code_13870_len_6980", render_npcs); INCLUDE_ASM(void, "code_13870_len_6980", npc_move_heading, Npc* npc, f32 speed, f32 yaw); INCLUDE_ASM(Npc*, "code_13870_len_6980", get_npc_unsafe, NpcId npcId); INCLUDE_ASM(Npc*, "code_13870_len_6980", get_npc_safe, NpcId npcId); INCLUDE_ASM(s32, "code_13870_len_6980", enable_npc_shadow); INCLUDE_ASM(s32, "code_13870_len_6980", disable_npc_shadow); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003AC5C); INCLUDE_ASM(s32, "code_13870_len_6980", enable_npc_blur); void disable_npc_blur(Npc* npc) { if (npc->flags & 0x100000) { npc->flags &= ~0x100000; heap_free(npc->blurData); npc->blurData = NULL; } } void update_npc_blur(Npc* npc) { NpcBlurData* blurData = npc->blurData; s32 index = blurData->unk_01; blurData->xpos[index] = npc->pos.x; blurData->ypos[index] = npc->pos.y; blurData->zpos[index] = npc->pos.z; index++; if (index >= 20) { index = 0; } blurData->unk_01 = index; } INCLUDE_ASM(s32, "code_13870_len_6980", appedGfx_npc_blur); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B184); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B198); void func_8003B1A8(void) { } INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B1B0); INCLUDE_ASM(void, "code_13870_len_6980", set_npc_yaw, Npc* npcPtr, f32 angle); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B3D0); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B3F8); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B420); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B44C); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B464); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B47C); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B500); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B5B4); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B96C); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003BA60); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003BED8); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C3D8); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C428); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C444); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C53C); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C61C); void func_8003C658(void) { } void func_8003C660(void) { } INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C668); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C78C); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C7A8); void func_8003C8AC(void) { } INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C8B4); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C984); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C9A8); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003CB20); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003CB44); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003CC8C); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003CCB0); void func_8003CFA0(void) { } INCLUDE_ASM(s32, "code_13870_len_6980", func_8003CFA8); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003CFB4); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D0C4); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D1D4); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D2F8); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D3BC); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D624); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D660); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D788); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003DA38); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003DC38); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003DFA0); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E0D4); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E1D0); INCLUDE_ASM(s32, "code_13870_len_6980", COPY_set_defeated); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E338); INCLUDE_ASM(s32, "code_13870_len_6980", clear_encounter_status); void func_8003E50C(void) { } INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E514); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E524); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E5B0); INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E63C); void func_8003E670(void) { } INCLUDE_ASM(s32, "code_13870_len_6980", make_npcs); INCLUDE_ASM(s32, "code_13870_len_6980", kill_encounter); INCLUDE_ASM(s32, "code_13870_len_6980", kill_enemy); INCLUDE_ASM(s32, "code_13870_len_6980", bind_enemy_ai); INCLUDE_ASM(s32, "code_13870_len_6980", bind_enemy_aux); INCLUDE_ASM(s32, "code_13870_len_6980", bind_enemy_interact); INCLUDE_ASM(s32, "code_13870_len_6980", bind_npc_ai); INCLUDE_ASM(s32, "code_13870_len_6980", bind_npc_aux); INCLUDE_ASM(s32, "code_13870_len_6980", bind_npc_interact); INCLUDE_ASM(Enemy*, "code_13870_len_6980", get_enemy, NpcId npcId); INCLUDE_ASM(s32, "code_13870_len_6980", get_enemy_safe);