papermario/src/code_13870_len_6980.c

239 lines
6.1 KiB
C
Raw Normal View History

2020-08-04 08:49:11 +02:00
#include "common.h"
#include "map.h"
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
void NOP_npc_callback(void) {
}
2020-08-04 08:49:11 +02:00
2020-10-08 23:45:26 +02:00
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;
}
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", clear_npcs);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", init_npc_list);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003857C);
2020-08-04 08:49:11 +02:00
2020-09-26 03:55:04 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", _create_npc);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", create_basic_npc);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", create_standard_npc);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", create_partner_npc);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", free_npc_by_index);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", free_npc);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
Npc* get_npc_by_index(s32 listIndex) {
return gCurrentNpcListPtr[0][listIndex & ~0x800];
}
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", npc_do_world_collision);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", npc_do_other_npc_collision);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", npc_do_player_collision);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_80039688);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_800397E8);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", update_npcs);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_80039DA4);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", appendGfx_npc);
2020-09-24 05:16:13 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", render_npcs);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", npc_move_heading);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(Npc*, "code_13870_len_6980", get_npc_unsafe, NpcId npcId);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(Npc*, "code_13870_len_6980", get_npc_safe, NpcId npcId);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", enable_npc_shadow);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", disable_npc_shadow);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003AC5C);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", enable_npc_blur);
2020-08-04 08:49:11 +02:00
2020-10-09 20:26:17 +02:00
void disable_npc_blur(Npc* npc) {
2020-10-08 23:45:26 +02:00
if (npc->flags & 0x100000) {
npc->flags &= ~0x100000;
heap_free(npc->blurData);
npc->blurData = NULL;
}
}
2020-10-09 20:26:17 +02:00
void update_npc_blur(Npc* npc) {
2020-10-08 23:45:26 +02:00
NpcBlurData* blurData = npc->blurData;
s32 index = blurData->unk_01;
2020-08-04 08:49:11 +02:00
2020-10-08 23:45:26 +02:00
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;
}
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", appedGfx_npc_blur);
2020-09-24 05:16:13 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B184);
2020-09-24 05:16:13 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B198);
2020-08-04 08:49:11 +02:00
2020-10-14 18:15:50 +02:00
void func_8003B1A8(void) {
}
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B1B0);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(void, "code_13870_len_6980", set_npc_yaw, Npc* npcPtr, f32 angle);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B3D0);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B3F8);
2020-09-24 05:16:13 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B420);
2020-09-24 05:16:13 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B44C);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B464);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B47C);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B500);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B5B4);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003B96C);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003BA60);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003BED8);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C3D8);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C428);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C444);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C53C);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C61C);
2020-08-04 08:49:11 +02:00
2020-10-14 18:15:50 +02:00
void func_8003C658(void) {
}
2020-08-04 08:49:11 +02:00
2020-10-14 18:15:50 +02:00
void func_8003C660(void) {
}
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C668);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C78C);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C7A8);
2020-08-04 08:49:11 +02:00
2020-10-14 18:15:50 +02:00
void func_8003C8AC(void) {
}
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C8B4);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C984);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003C9A8);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003CB20);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003CB44);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003CC8C);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003CCB0);
2020-08-04 08:49:11 +02:00
2020-10-14 18:15:50 +02:00
void func_8003CFA0(void) {
}
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003CFA8);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003CFB4);
2020-09-24 05:16:13 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D0C4);
2020-09-24 05:16:13 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D1D4);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D2F8);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D3BC);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D624);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D660);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003D788);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003DA38);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003DC38);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003DFA0);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E0D4);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E1D0);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", COPY_set_defeated);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E338);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", clear_encounter_status);
2020-08-04 08:49:11 +02:00
2020-10-14 18:15:50 +02:00
void func_8003E50C(void) {
}
2020-09-24 05:16:13 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E514);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E524);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E5B0);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", func_8003E63C);
2020-08-04 08:49:11 +02:00
2020-10-14 18:15:50 +02:00
void func_8003E670(void) {
}
2020-09-24 05:16:13 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", make_npcs);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", kill_encounter);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", kill_enemy);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", bind_enemy_ai);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", bind_enemy_aux);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", bind_enemy_interact);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", bind_npc_ai);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", bind_npc_aux);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", bind_npc_interact);
2020-08-04 08:49:11 +02:00
2020-10-08 21:03:58 +02:00
INCLUDE_ASM(Enemy*, "code_13870_len_6980", get_enemy, NpcId npcId);
2020-08-04 08:49:11 +02:00
2020-09-25 23:18:09 +02:00
INCLUDE_ASM(s32, "code_13870_len_6980", get_enemy_safe);