From c92da68aadeda99b94500d8867e28fb51cbf114b Mon Sep 17 00:00:00 2001 From: Mr-Wiseguy Date: Sun, 24 Aug 2025 16:48:55 -0400 Subject: [PATCH] Many core2 warning fixes --- include/core2/dustemitter.h | 2 +- include/enums.h | 6 +- include/prop.h | 20 ++ include/structs.h | 20 +- include/variables.h | 4 + src/core1/crccalc.c | 2 +- src/core2/bastick.c | 2 +- src/core2/ch/musicnote.c | 2 +- src/core2/code_41460.c | 35 +- src/core2/code_5FD90.c | 2 +- src/core2/code_654C0.c | 4 +- src/core2/code_66FB0.c | 4 +- src/core2/code_6B030.c | 2 +- src/core2/code_6D030.c | 1 + src/core2/code_74ED0.c | 4 +- src/core2/code_935F0.c | 7 +- src/core2/code_94A20.c | 21 +- src/core2/code_ABC00.c | 1 + src/core2/code_AD110.c | 570 +++++++++++++++--------------- src/core2/code_B5040.c | 84 ++--- src/core2/code_B9090.c | 4 +- src/core2/code_C0E60.c | 11 +- src/core2/code_C62B0.c | 12 +- src/core2/code_D5D10.c | 6 +- src/core2/code_DAAA0.c | 1 + src/core2/code_DB010.c | 4 +- src/core2/code_DC4B0.c | 10 +- src/core2/commonParticleTypeMap.c | 3 +- src/core2/dustemitter.c | 4 +- 29 files changed, 434 insertions(+), 414 deletions(-) diff --git a/include/core2/dustemitter.h b/include/core2/dustemitter.h index 5cf1d3a1..14cf7c8c 100644 --- a/include/core2/dustemitter.h +++ b/include/core2/dustemitter.h @@ -6,5 +6,5 @@ enum dust_emitter_type_e { DUST_EMITTER_TYPE_BREAK_DUST = 1 }; -extern void dustEmitter_empty(ParticleEmitter *); +extern void dustEmitter_empty(s32); extern void dustEmitter_emit(f32[3], f32[3], s32[4], bool, f32, f32, s32, s32, enum dust_emitter_type_e); diff --git a/include/enums.h b/include/enums.h index a95d7fb7..abd6d9b3 100644 --- a/include/enums.h +++ b/include/enums.h @@ -3693,6 +3693,9 @@ enum asset_e // Unused // Unused // Unused + + ASSET_SPRITE_START = 0x572, + // 572 Palm Tree (2D) // Unused // Unused @@ -4040,7 +4043,8 @@ enum asset_e ASSET_6D1_SPRITE_GOLDFEATHTER = 0x6d1, - ASSET_6D6_MODEL_MUSIC_NOTE = 0x6d6, + ASSET_6D6_SPRITE_MUSIC_NOTE = 0x6d6, + ASSET_6D7_SPRITE_EGG, ASSET_6D9_SPRITE_PROPELLOR_TIMER = 0x6d9, ASSET_6DA_SPRITE_HOURGLASS, diff --git a/include/prop.h b/include/prop.h index fa4b26f2..a0363bdb 100644 --- a/include/prop.h +++ b/include/prop.h @@ -147,6 +147,26 @@ typedef struct ch_sm_4070{ s32 dialog_id; }ActorLocal_SM_4070; +typedef struct struct_24_s{ + s32 unk0; + BKModelBin *model_bin; + f32 unk8[3]; + f32 unk14[3]; + f32 unk20[3]; + f32 unk2C; + f32 unk30[3]; + s32 unk3C; + s32 unk40[4]; + f32 unk50; +} Struct24s; + +typedef struct struct_25_s{ + Struct24s *begin; + Struct24s *current; + Struct24s *end; + Struct24s data[]; +} Struct25s; + typedef struct actor_s{ ActorMarker* marker; TUPLE(f32,position); diff --git a/include/structs.h b/include/structs.h index a9199bf8..b4d00688 100644 --- a/include/structs.h +++ b/include/structs.h @@ -565,12 +565,7 @@ typedef struct struct_63_s{ void (*unk4)(vector(AnSeqElement) **, struct actorMarker_s *); } Struct63s; -typedef struct struct_64_s{ - struct struct_65_s *unk0; - s32 unk4; -} Struct64s; - -typedef struct struct_65_s{ +typedef struct { f32 unk0[3]; struct actorMarker_s *unkC; s32 (*unk10)(f32[3], f32, struct actorMarker_s *); @@ -584,12 +579,19 @@ typedef struct struct_65_s{ u8 unk25; u8 unk26; u8 unk27; -}Struct65s; +} Struct65s; +typedef struct { + Struct65s *unk0; + s32 unk4; +} Struct64s; +struct struct_68_s; typedef void (*Struct68DrawMethod)(void *, struct struct_68_s *, f32[3], f32[3], f32, BKModelBin*, Gfx**, Mtx**, Vtx**); -typedef struct struct_68_s{ +struct actor_s; +struct actorMarker_s; +typedef struct struct_68_s { u8 unk0; // sfxsource index // u8 pad1[0x3]; struct actorMarker_s *unk4; @@ -617,7 +619,7 @@ typedef struct { typedef struct{ BKCollisionTri * (* unk0)(struct actorMarker_s *, f32[3], f32[3], f32[3], s32); BKCollisionTri *(* unk4)(struct actorMarker_s *, f32[3], f32[3], f32, f32[3], s32, u32); - BKCollisionTri *(* unk8)(struct actorMarker_s *, f32[3], f32, f32[3], s32); + BKCollisionTri *(* unk8)(struct actorMarker_s *, f32[3], f32, f32[3], u32); s32 (* unkC)(struct actorMarker_s *, f32[3], f32, f32[3], s32); } Struct6Cs; diff --git a/include/variables.h b/include/variables.h index 3a59f3cc..68320c26 100644 --- a/include/variables.h +++ b/include/variables.h @@ -16,4 +16,8 @@ extern struct Overlay gOverlayTable[]; extern f32 climbPoleBottom[3]; extern f32 climbPoleTop[3]; + +#define offsetof(st, m) \ + ((u32)&(((st *)0)->m)) + #endif diff --git a/src/core1/crccalc.c b/src/core1/crccalc.c index 1cd513ba..2216ed10 100644 --- a/src/core1/crccalc.c +++ b/src/core1/crccalc.c @@ -2,7 +2,7 @@ #include "core1/core1.h" // transform seed (in mips3 file) -u32 func_8025C29C(u32 *seed); // TODO: This function does not exist in source code, why does it work? +u32 func_8025C29C(u64 *seed); void glcrc_calc_checksum(void *start, void *end, u32 checksum[2]) { u8 *p; diff --git a/src/core2/bastick.c b/src/core2/bastick.c index 661c0cf9..63b2ce6e 100644 --- a/src/core2/bastick.c +++ b/src/core2/bastick.c @@ -78,7 +78,7 @@ void bastick_reset(void) { } void bastick_update(void) { - controller_getJoystick(0, &bastick.value); + controller_getJoystick(0, bastick.value); if (bastick.locked_at_zero) { bastick.value[0] = bastick.value[1] = 0.0f; } diff --git a/src/core2/ch/musicnote.c b/src/core2/ch/musicnote.c index 308676bc..8313b2f2 100644 --- a/src/core2/ch/musicnote.c +++ b/src/core2/ch/musicnote.c @@ -8,7 +8,7 @@ void musicNote_update(Actor* this); ActorInfo sumusicNote = { MARKER_5F_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE, - ASSET_6D6_MODEL_MUSIC_NOTE, + ASSET_6D6_SPRITE_MUSIC_NOTE, 0, NULL, musicNote_update, diff --git a/src/core2/code_41460.c b/src/core2/code_41460.c index 561bab3e..3ee6be3a 100644 --- a/src/core2/code_41460.c +++ b/src/core2/code_41460.c @@ -4,26 +4,6 @@ #include "core2/dustemitter.h" -typedef struct struct_24_s{ - s32 unk0; - BKModelBin *model_bin; - f32 unk8[3]; - f32 unk14[3]; - f32 unk20[3]; - f32 unk2C; - f32 unk30[3]; - ParticleEmitter *unk3C; - s32 unk40[4]; - f32 unk50; -} Struct24s; - -typedef struct struct_25_s{ - Struct24s *begin; - Struct24s *current; - Struct24s *end; - Struct24s data[]; -} Struct25s; - Actor *func_802C8484(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); void func_802C8C5C(Actor *this); @@ -40,7 +20,10 @@ ActorInfo D_80366388 = { 0x56, 0xD, 0x0, 0x2, 0x0, func_802C8C5C, actor_upda ActorInfo D_803663AC = { 0x56, 0x11F, 0x0, 0x2, 0x0, func_802C8C5C, actor_update_func_80326224, func_802C8484, 0, 0, 0.0f, 0}; ActorInfo D_803663D0 = { 0x56, 0x14F, 0x0, 0x2, 0x0, func_802C8C5C, actor_update_func_80326224, func_802C8484, 0, 0, 0.0f, 0}; ActorInfo D_803663F4 = { 0x56, 0x3AD, 0x0, 0x2, 0x0, func_802C8C5C, actor_update_func_80326224, func_802C8484, 0, 0, 0.0f, 0}; -s32 D_80366418[3] = {0,0,0}; +typedef struct { + f32 vals[3]; +} TestStruct; +TestStruct D_80366418 = {{0,0,0}}; /* .bss */ s32 D_8037DD90; @@ -168,7 +151,7 @@ Actor *func_802C8580(s32 position[3], s32 yaw, ActorInfo* actorInfo, u32 flags){ sp68[2] = (f32)position[2]; sp68[0] += s0->unk30[0]*3.0f; - s0->unk50 = mapModel_getFloorY(&sp68); + s0->unk50 = mapModel_getFloorY(sp68); s0->unk14[2] = 0.0f; s0->unk14[1] = 0.0f; @@ -178,12 +161,12 @@ Actor *func_802C8580(s32 position[3], s32 yaw, ActorInfo* actorInfo, u32 flags){ s0->unk20[1] = randf2(0.05f, 0.4f); s0->unk20[2] = randf2(0.05f, 0.4f); - ml_vec3f_yaw_rotate_copy(&s0->unk8, &s0->unk8, f24); + ml_vec3f_yaw_rotate_copy(s0->unk8, s0->unk8, f24); s0->unk8[0] += actor->position_x; s0->unk8[1] += actor->position_y; s0->unk8[2] += actor->position_z; - ml_vec3f_yaw_rotate_copy(&s0->unk30, &s0->unk30, randf2(15.0f, 90.0f) + f24); + ml_vec3f_yaw_rotate_copy(s0->unk30, s0->unk30, randf2(15.0f, 90.0f) + f24); }//L802C8A08 actor->unk40 = s1; marker_setFreeMethod(actor->marker, func_802C83F0); @@ -256,7 +239,7 @@ void func_802C8C5C(Actor *actor) { f32 sp84[3]; Struct25s *temp_s2 = actor->unk40; Struct24s *phi_s0; - s32 sp70[3] = D_80366418; + TestStruct sp70 = D_80366418; for(phi_s0 = temp_s2->begin; phi_s0 < temp_s2->current; phi_s0++){ if (phi_s0->unk0 == 2) { @@ -282,7 +265,7 @@ void func_802C8C5C(Actor *actor) { phi_s0->unk0 = 1; phi_s0->unk3C = dustEmitter_returnGiven(1); if (phi_s0->unk3C != 0) { - dustEmitter_emit(phi_s0->unk8, sp70, phi_s0->unk40, 1, D_80366330, D_80366334, (s32)D_80366338, (s32)D_8036633C, DUST_EMITTER_TYPE_BREAK_DUST); + dustEmitter_emit(phi_s0->unk8, sp70.vals, phi_s0->unk40, 1, D_80366330, D_80366334, (s32)D_80366338, (s32)D_8036633C, DUST_EMITTER_TYPE_BREAK_DUST); } } } diff --git a/src/core2/code_5FD90.c b/src/core2/code_5FD90.c index 86b42141..44339fb4 100644 --- a/src/core2/code_5FD90.c +++ b/src/core2/code_5FD90.c @@ -736,7 +736,7 @@ BKCollisionTri *func_802E8E88(BKCollisionList *collision_list, BKVertexList *vtx return phi_s5->tri_ptr; } -BKCollisionTri *func_802E9118(BKCollisionList * collision_list, BKVertexList *vtx_list, f32 arg2[3], s32 arg3, f32 arg4, f32 arg5[3], f32 arg6[3], f32 arg7, f32 arg8[3], s32 arg9, s32 flagFilter) { +BKCollisionTri *func_802E9118(BKCollisionList * collision_list, BKVertexList *vtx_list, f32 arg2[3], f32 arg3[3], f32 arg4, f32 arg5[3], f32 arg6[3], f32 arg7, f32 arg8[3], s32 arg9, s32 flagFilter) { f32 sp4C[3]; f32 sp40[3]; BKCollisionTri *sp3C; diff --git a/src/core2/code_654C0.c b/src/core2/code_654C0.c index 00aca9a9..89ecdd4d 100644 --- a/src/core2/code_654C0.c +++ b/src/core2/code_654C0.c @@ -367,7 +367,7 @@ void func_802ED180(BKVertexList *self, f32 arg1[3], f32 arg2[3], f32 arg3, f32 a void vtxList_getNthCoord(BKVertexList *self, s32 indx, f32 dst[3]){ Vtx *vtx; - vtx = (s32)(self + 1) + (indx * sizeof(Vtx)); + vtx = (Vtx*)((s32)(self + 1) + (indx * sizeof(Vtx))); dst[0] = (f32) vtx->v.ob[0]; dst[1] = (f32) vtx->v.ob[1]; dst[2] = (f32) vtx->v.ob[2]; @@ -377,7 +377,7 @@ void vtxList_setNthCoord(BKVertexList *self, s32 indx, f32 arg2[3]){ Vtx *vtx; s32 i; - vtx = (s32)(self + 1) + (indx * sizeof(Vtx)); + vtx = (Vtx*)((s32)(self + 1) + (indx * sizeof(Vtx))); for(i = 0; i < 3; i++){ vtx->v.ob[i] = (arg2[i] >= 0.0) ? arg2[i] + 0.5 : arg2[i] - 0.5; } diff --git a/src/core2/code_66FB0.c b/src/core2/code_66FB0.c index e967bf7d..fde53efd 100644 --- a/src/core2/code_66FB0.c +++ b/src/core2/code_66FB0.c @@ -40,7 +40,7 @@ s32 D_8036889C[] = { }; /* .code */ -void func_802EDF40(f32 pos[3], s32 arg1, s32 cnt, f32 arg3, f32 arg4, f32 arg5, f32 arg6[3], f32 arg7[3]){ +void func_802EDF40(f32 pos[3], s32 arg1, s32 cnt, f32 arg3, f32 arg4, f32 arg5, s32 arg6[3], f32 arg7[3]){ ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt); f32 tmp_f0; if(arg1 < 0x3e7){ @@ -116,7 +116,7 @@ void func_802EE2E8(Actor *arg0, s32 arg1, s32 cnt, s32 arg3, f32 arg4, f32 arg5, func_802EDF40(sp2C, arg1, cnt, arg4, arg5, arg6, NULL, 0); } -void func_802EE354(Actor* arg0, s32 arg1, s32 cnt, s32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7[3], s32 arg8, f32 arg9[3]){ +void func_802EE354(Actor* arg0, s32 arg1, s32 cnt, s32 arg3, f32 arg4, f32 arg5, f32 arg6, s32 arg7[3], s32 arg8, f32 arg9[3]){ f32 sp2C[3]; if(arg8){ diff --git a/src/core2/code_6B030.c b/src/core2/code_6B030.c index 26396bd1..aba602f9 100644 --- a/src/core2/code_6B030.c +++ b/src/core2/code_6B030.c @@ -215,7 +215,7 @@ void func_802F283C(Struct65s *arg0) { arg0->unk26 += ((f32) (arg0->unk27 * 4) * sp1C); } -void *func_802F2AEC(void) { +Struct64s *func_802F2AEC(void) { u32 var_s1; Struct64s *temp_v0; diff --git a/src/core2/code_6D030.c b/src/core2/code_6D030.c index 8b467a3c..d25c8eea 100644 --- a/src/core2/code_6D030.c +++ b/src/core2/code_6D030.c @@ -2,6 +2,7 @@ #include "functions.h" #include "variables.h" #include "core2/particle.h" +#include "core2/particleemittermanager.h" ParticleEmitter *func_802F4094(f32 pos[3], f32 arg1); diff --git a/src/core2/code_74ED0.c b/src/core2/code_74ED0.c index b8f42898..5c1d194d 100644 --- a/src/core2/code_74ED0.c +++ b/src/core2/code_74ED0.c @@ -157,10 +157,10 @@ void func_802FC0D8(void) { } bool func_802FC390(void){ - s32 *phi_v1 = D_80381560[0]; + struct8s *phi_v1 = D_80381560[0]; if (D_80369884 == 0) return FALSE; - return *phi_v1 == 2; + return phi_v1->unk0 == 2; } bool func_802FC3C4(void){ diff --git a/src/core2/code_935F0.c b/src/core2/code_935F0.c index 6570cc31..af6b5757 100644 --- a/src/core2/code_935F0.c +++ b/src/core2/code_935F0.c @@ -3,6 +3,7 @@ #include "variables.h" extern void func_8028F918(s32); +extern Struct70s *func_8034C528(s32 arg0); void chMinigame_update(Actor *this); @@ -67,7 +68,7 @@ void func_8031A678(Actor *this){ Struct6Ds *sp2C; f32 sp20[3]; - sp2C = func_8034C528(0x190); + sp2C = &func_8034C528(0x190)->type_6D; switch (this->unk10_12) { case MINIGAME_0_BOSS_BOOM_BOX: sp20[0] = -2000.0f; @@ -86,12 +87,12 @@ void func_8031A678(Actor *this){ break; case MINIGAME_5_SANDCASTLE: - sp2C = func_8034C528(0x191); //lower water + sp2C = &func_8034C528(0x191)->type_6D; //lower water func_8034DEB4(sp2C, -1000.0f); break; case MINIGAME_2_GV_MATCHING: - sp2C = func_8034C528(0x1E7); + sp2C = &func_8034C528(0x1E7)->type_6D; func_8034DEB4(sp2C, -1000.0f); break; diff --git a/src/core2/code_94A20.c b/src/core2/code_94A20.c index d09bbd6f..310351be 100644 --- a/src/core2/code_94A20.c +++ b/src/core2/code_94A20.c @@ -2,11 +2,12 @@ #include "functions.h" #include "variables.h" -BKCollisionTri *func_80309B48(f32 *, f32 *, f32 *, u32); +BKCollisionTri *func_80309B48(f32 startPoint[3], f32 endPoint[3], f32 arg2[3], s32 flagFilter); void func_8031C608(struct0 *this); void func_8031BD98(struct0 *, f32, s32, s32, f32 *, void *, BKCollisionTri *); - +void *func_803209EC(void); void func_8031BE98(struct0*, f32, BKCollisionTri *); +extern BKCollisionTri *func_80320B98(f32[3], f32[3], f32[3], u32); /* .data */ @@ -65,9 +66,9 @@ BKCollisionTri *func_8031BABC(f32 *arg0, f32 arg1, f32 arg2, u32 arg3, struct86s ml_vec3f_copy(sp28, arg0); sp28[1] = sp28[1] + arg2; if (arg3 == 0xF800FF0F) { - sp24 = func_80309B48(&sp34, &sp28, arg4->unk0, arg3); + sp24 = func_80309B48(sp34, sp28, arg4->unk0, arg3); } else { - sp24 = func_80320B98(&sp34, &sp28, arg4->unk0, arg3); + sp24 = func_80320B98(sp34, sp28, arg4->unk0, arg3); } if (sp24 != 0) { arg4->flags = (s32) sp24->flags; @@ -143,7 +144,7 @@ void func_8031BE0C(struct0 *this, struct86s *arg1, BKCollisionTri *arg2) { } void func_8031BE58(struct0 *this){ - func_8031BD98(this, -9000.0f, 0, 0, &D_8036DDC0, 0, 0); + func_8031BD98(this, -9000.0f, 0, 0, D_8036DDC0, 0, 0); } void func_8031BE98(struct0 *this, f32 arg1, BKCollisionTri * arg2){ @@ -167,14 +168,14 @@ void func_8031BF08(struct0 *arg0) { sp30 = 0; - ml_vec3f_copy(&sp38, arg0->unk1C); + ml_vec3f_copy(sp38, arg0->unk1C); sp64 = arg0->posZ; temp_v0 = func_8031BBA0(sp38, ml_max_f(arg0->unk28[1] - arg0->unk1C[1], 150.0f) + 10.0f, -5.0f, 0xF800FF0F, &sp48); if (temp_v0 != NULL) { func_8031BE98(arg0, sp48.unkC, temp_v0); sp30 = 1; } - temp_v0 = func_8031BBA0(&sp38, sp64, -1300.0f, arg0->unk54, &sp48); + temp_v0 = func_8031BBA0(sp38, sp64, -1300.0f, arg0->unk54, &sp48); if (temp_v0 == NULL) { func_8031BE58(arg0); if (!sp30) { @@ -227,12 +228,12 @@ void func_8031C1A4(struct0 *arg0) { f32 temp_f0; ml_vec3f_copy(sp30, arg0->unk1C); - temp_v0 = func_8031BBA0(&sp30, 100.0f, -1300.0f, arg0->unk54 | 0x1E0000, &sp44); + temp_v0 = func_8031BBA0(sp30, 100.0f, -1300.0f, arg0->unk54 | 0x1E0000, &sp44); if ((temp_v0 != 0) && (sp44.unk0[1] >= 0.0f)) { func_8031BE0C(arg0, &sp44, temp_v0); } temp_f0 = arg0->posY - sp30[1]; - temp_v0 = func_8031BBA0(&sp30, temp_f0 + 50.0f, temp_f0 - 50.0f, 0xF800FF0F, &sp44); + temp_v0 = func_8031BBA0(sp30, temp_f0 + 50.0f, temp_f0 - 50.0f, 0xF800FF0F, &sp44); if (temp_v0 != 0) { func_8031BE98(arg0, sp44.unkC, temp_v0); } @@ -257,7 +258,7 @@ void func_8031C29C(struct0 *arg0) { sp40 = globalTimer_getTimeMasked(1); if ((sp48 == 0) || (sp40 != 0)) { arg0->unk59 = arg0->unk5B; - temp_v0 = func_8031BBA0(&sp30, 60.0f, -390.0f, arg0->unk54 | 0x1E0000, &sp4C); + temp_v0 = func_8031BBA0(sp30, 60.0f, -390.0f, arg0->unk54 | 0x1E0000, &sp4C); if (temp_v0 != NULL) { if (sp4C.unk0[1] >= 0.0f) { func_8031BE0C(arg0, &sp4C, temp_v0); diff --git a/src/core2/code_ABC00.c b/src/core2/code_ABC00.c index 9c2203ea..3cfec21e 100644 --- a/src/core2/code_ABC00.c +++ b/src/core2/code_ABC00.c @@ -17,6 +17,7 @@ void func_80347E60(Struct81s*); void func_80347FA4(Struct81s *, Gfx**, Mtx **, Vtx **); void func_80347FB8(Struct81s*); +extern Actor **actorArray_findJiggyActors(void); typedef struct { void (*init)(Struct81s *); diff --git a/src/core2/code_AD110.c b/src/core2/code_AD110.c index 974c02b9..dfadd135 100644 --- a/src/core2/code_AD110.c +++ b/src/core2/code_AD110.c @@ -3,291 +3,291 @@ #include "variables.h" //these funtions include references to overlay functions -extern void func_802DC528(s32, s32); -extern void func_802DC560(s32, s32); -extern void func_802DC748(s32, s32); -extern void func_802DC780(s32, s32); -extern void chOverlayPressStart_spawn(s32, s32); -extern void chOverlayPressStart_func_802DCDC0(s32, s32); -extern void func_8031D06C(s32, s32); -extern void func_8031D09C(s32, s32); -extern void warp_mmEnterMumbosHut(s32, s32); -extern void warp_mmExitMumbosHut(s32, s32); -extern void warp_mmEnterTickersTowerLower(s32, s32); -extern void warp_mmExitTickersTowerLower(s32, s32); -extern void warp_mmEnterTickersTowerUpper(s32, s32); -extern void warp_mmExitTickersTowerUpper(s32, s32); -extern void warp_csNintendoLogo(s32, s32); -extern void warp_bgsEnterTanktupConditional(s32, s32); -extern void warp_ttcEnterNippersShell(s32, s32); -extern void warp_gvEnterJinxy(s32, s32); -extern void warp_gvExitJinxy(s32, s32); -extern void warp_bgsExitMumbosHut(s32, s32); -extern void warp_bgsEnterMumbosHut(s32, s32); -extern void warp_ttcEnterLevel(s32, s32); -extern void warp_ccEnterLevel(s32, s32); -extern void warp_bgsEnterLevel(s32, s32); -extern void warp_gvEnterLevel(s32, s32); -extern void warp_mmmEnterLevel(s32, s32); -extern void warp_rbbEnterLevel(s32, s32); -extern void warp_ttcExitNipper(s32, s32); -extern void warp_ccwEnterSpringWhipcrackRoom(s32, s32); -extern void warp_ccwEnterSummerWhipcrackRoom(s32, s32); -extern void warp_ccwEnterAutumnWhipcrackRoom(s32, s32); -extern void warp_ccwEnterWinterWhipcrackRoom(s32, s32); -extern void warp_ccwEnterWinterAcornStorage(s32, s32); -extern void warp_ccwEnterAutumnFloodedAttic(s32, s32); -extern void warp_ccwEnterWinterFloodedAttic(s32, s32); -extern void warp_ccwExitWinterAcornStorage(s32, s32); -extern void warp_ccwExitAutumnFloodedAttic(s32, s32); -extern void warp_ccwExitWinterFloodedAttic(s32, s32); -extern void warp_fpEnterMumbosHut(s32, s32); -extern void warp_fpEnterBoggyIgloo(s32, s32); -extern void warp_fpEnterXmasTree(s32, s32); -extern void warp_fpExitMumbosHut(s32, s32); -extern void warp_fpExitBoggyIgloo(s32, s32); -extern void warp_fpExitXmasTree(s32, s32); -extern void warp_lairEnterMMLobbyFromMMLevel(s32, s32); -extern void func_8031EF20(s32, s32); -extern void warp_lairEnterPuzzlesRoomFromMMLobby(s32, s32); -extern void warp_lairEnterPointingStatueRoomFromGVLobbyNoteDoor(s32, s32); -extern void warp_lairEnterPuzzlesRoomFromCCWPuzzleRoom(s32, s32); -extern void warp_lairEnterCCWPuzzleRoomFromPuzzlesRoom(s32, s32); -extern void warp_lairEnterCCWPuzzleRoomFromRedCauldronRoom(s32, s32); -extern void warp_lairEnterRedCauldronRoomFromCCWPuzzleRoom(s32, s32); -extern void warp_lairEnterCCWPuzzleRoomFromTTCLobby(s32, s32); -extern void warp_lairEnterTTCLobbyFromCCWPuzzleRoom(s32, s32); -extern void warp_lairEnterCCWPuzzleRoomFromCCLobby(s32, s32); -extern void warp_lairEnterCCLobbyFromCCWPuzzleRoom(s32, s32); -extern void warp_lairEnterCCLobbyFromCCLevel(s32, s32); -extern void warp_lairEnterCCWPuzzleFromPointingGruntyStatueRoom(s32, s32); -extern void warp_lairEnterPointingGruntyStatueFromCCWPuzzleRoom(s32, s32); -extern void warp_lairEnterRBBLobbyFromRBBPuzzleRoom(s32, s32); -extern void warp_lairEnterRBBLobbyFromMMMPuzzleRoom(s32, s32); -extern void func_80334430(NodeProp *, ActorMarker *); -extern void func_80363388(s32, s32); -extern void chOrangePad_handleOrangeCollision(s32, s32); -extern void func_80388BEC(s32, s32); -extern void func_80388C00(s32, s32); -extern void func_80388C28(s32, s32); -extern void func_80388C50(s32, s32); -extern void CC_func_80388C78(s32, s32); -extern void func_8038A0E4(s32, s32); -extern void func_8038A150(s32, s32); -extern void func_8038F10C(s32, s32); -extern void func_8038F130(s32, s32); +extern void func_802DC528(NodeProp *, ActorMarker *); +extern void func_802DC560(NodeProp *, ActorMarker *); +extern void func_802DC748(NodeProp *, ActorMarker *); +extern void func_802DC780(NodeProp *, ActorMarker *); +extern void chOverlayPressStart_spawn(NodeProp *, ActorMarker *); +extern void chOverlayPressStart_func_802DCDC0(NodeProp *, ActorMarker *); +extern void func_8031D06C(NodeProp *, ActorMarker *); +extern void func_8031D09C(NodeProp *, ActorMarker *); +extern void warp_mmEnterMumbosHut(NodeProp *, ActorMarker *); +extern void warp_mmExitMumbosHut(NodeProp *, ActorMarker *); +extern void warp_mmEnterTickersTowerLower(NodeProp *, ActorMarker *); +extern void warp_mmExitTickersTowerLower(NodeProp *, ActorMarker *); +extern void warp_mmEnterTickersTowerUpper(NodeProp *, ActorMarker *); +extern void warp_mmExitTickersTowerUpper(NodeProp *, ActorMarker *); +extern void warp_csNintendoLogo(NodeProp *, ActorMarker *); +extern void warp_bgsEnterTanktupConditional(NodeProp *, ActorMarker *); +extern void warp_ttcEnterNippersShell(NodeProp *, ActorMarker *); +extern void warp_gvEnterJinxy(NodeProp *, ActorMarker *); +extern void warp_gvExitJinxy(NodeProp *, ActorMarker *); +extern void warp_bgsExitMumbosHut(NodeProp *, ActorMarker *); +extern void warp_bgsEnterMumbosHut(NodeProp *, ActorMarker *); +extern void warp_ttcEnterLevel(NodeProp *, ActorMarker *); +extern void warp_ccEnterLevel(NodeProp *, ActorMarker *); +extern void warp_bgsEnterLevel(NodeProp *, ActorMarker *); +extern void warp_gvEnterLevel(NodeProp *, ActorMarker *); +extern void warp_mmmEnterLevel(NodeProp *, ActorMarker *); +extern void warp_rbbEnterLevel(NodeProp *, ActorMarker *); +extern void warp_ttcExitNipper(NodeProp *, ActorMarker *); +extern void warp_ccwEnterSpringWhipcrackRoom(NodeProp *, ActorMarker *); +extern void warp_ccwEnterSummerWhipcrackRoom(NodeProp *, ActorMarker *); +extern void warp_ccwEnterAutumnWhipcrackRoom(NodeProp *, ActorMarker *); +extern void warp_ccwEnterWinterWhipcrackRoom(NodeProp *, ActorMarker *); +extern void warp_ccwEnterWinterAcornStorage(NodeProp *, ActorMarker *); +extern void warp_ccwEnterAutumnFloodedAttic(NodeProp *, ActorMarker *); +extern void warp_ccwEnterWinterFloodedAttic(NodeProp *, ActorMarker *); +extern void warp_ccwExitWinterAcornStorage(NodeProp *, ActorMarker *); +extern void warp_ccwExitAutumnFloodedAttic(NodeProp *, ActorMarker *); +extern void warp_ccwExitWinterFloodedAttic(NodeProp *, ActorMarker *); +extern void warp_fpEnterMumbosHut(NodeProp *, ActorMarker *); +extern void warp_fpEnterBoggyIgloo(NodeProp *, ActorMarker *); +extern void warp_fpEnterXmasTree(NodeProp *, ActorMarker *); +extern void warp_fpExitMumbosHut(NodeProp *, ActorMarker *); +extern void warp_fpExitBoggyIgloo(NodeProp *, ActorMarker *); +extern void warp_fpExitXmasTree(NodeProp *, ActorMarker *); +extern void warp_lairEnterMMLobbyFromMMLevel(NodeProp *, ActorMarker *); +extern void func_8031EF20(NodeProp *, ActorMarker *); +extern void warp_lairEnterPuzzlesRoomFromMMLobby(NodeProp *, ActorMarker *); +extern void warp_lairEnterPointingStatueRoomFromGVLobbyNoteDoor(NodeProp *, ActorMarker *); +extern void warp_lairEnterPuzzlesRoomFromCCWPuzzleRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterCCWPuzzleRoomFromPuzzlesRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterCCWPuzzleRoomFromRedCauldronRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterRedCauldronRoomFromCCWPuzzleRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterCCWPuzzleRoomFromTTCLobby(NodeProp *, ActorMarker *); +extern void warp_lairEnterTTCLobbyFromCCWPuzzleRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterCCWPuzzleRoomFromCCLobby(NodeProp *, ActorMarker *); +extern void warp_lairEnterCCLobbyFromCCWPuzzleRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterCCLobbyFromCCLevel(NodeProp *, ActorMarker *); +extern void warp_lairEnterCCWPuzzleFromPointingGruntyStatueRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterPointingGruntyStatueFromCCWPuzzleRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterRBBLobbyFromRBBPuzzleRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterRBBLobbyFromMMMPuzzleRoom(NodeProp *, ActorMarker *); +extern void func_80334430(NodeProp *, ActorMarker *); +extern void func_80363388(NodeProp *, ActorMarker *); +extern void chOrangePad_handleOrangeCollision(NodeProp *, ActorMarker *); +extern void func_80388BEC(NodeProp *, ActorMarker *); +extern void func_80388C00(NodeProp *, ActorMarker *); +extern void func_80388C28(NodeProp *, ActorMarker *); +extern void func_80388C50(NodeProp *, ActorMarker *); +extern void CC_func_80388C78(NodeProp *, ActorMarker *); +extern void func_8038A0E4(NodeProp *, ActorMarker *); +extern void func_8038A150(NodeProp *, ActorMarker *); +extern void func_8038F10C(NodeProp *, ActorMarker *); +extern void func_8038F130(NodeProp *, ActorMarker *); -extern void warp_lairEnterGVLobbyFromPointingStatueRoom(s32, s32); -extern void warp_lairEnterMMLobbyFromPuzzlesRoom(s32, s32); -extern void warp_lairEnterFPLobbyFromGVLobby(s32, s32); -extern void warp_lairEnterGVLobbyFromGVLevel(s32, s32); -extern void warp_lairEnterGVLobbyFromFPLobby(s32, s32); -extern void warp_ccwExitSpringWhipcrackRoom(s32, s32); -extern void warp_ccwExitSummerWhipcrackRoom(s32, s32); -extern void warp_ccwExitAutumnWhipcrackRoom(s32, s32); -extern void warp_ccwExitWinterWhipcrackRoom(s32, s32); -extern void warp_gvEnterMatchingPyramid(s32, s32); -extern void warp_gvEnterMazePyramid(s32, s32); -extern void warp_gvEnterWaterPyramidUpper(s32, s32); -extern void warp_gvEnterWaterPyramidLower(s32, s32); -extern void warp_gvEnterRubeePyramid(s32, s32); -extern void warp_gvExitMatchingPyramid(s32, s32); -extern void warp_gvExitMazePyramid(s32, s32); -extern void warp_gvExitWaterPyramidLower(s32, s32); -extern void warp_gvExitRubeePyramid(s32, s32); -extern void warp_bgsEnterTanktup(s32, s32); -extern void warp_bgsEnterMrVileRightNostril(s32, s32); -extern void warp_bgsEnterMrVileLeftNostril(s32, s32); -extern void warp_bgsExitTanktup(s32, s32); -extern void warp_bgsExitVileRightNostril(s32, s32); -extern void warp_bgsExitVileLeftNostril(s32, s32); -extern void warp_ttcEnterSandcastle(s32, s32); -extern void warp_ttcStairAlcoveDown(s32, s32); -extern void warp_ttcStairAlcoveUp(s32, s32); -extern void warp_ttcEnterBlubbersShipUpper(s32, s32); -extern void warp_ttcEnterBlubbersShipSide(s32, s32); -extern void func_8031D628(s32, s32); -extern void warp_ttcExitLighthouseTop(s32, s32); -extern void warp_ttcExitSandcastle(s32, s32); -extern void warp_fpEnterLevel(s32, s32); -extern void func_8031FAB4(s32, s32); -extern void warp_ttcExitBlubbersShipUpper(s32, s32); -extern void warp_ttcExitBlubbersShipSide(s32, s32); -extern void warp_lairEnterDingpotRoomFromFurnaceFun(s32, s32); -extern void func_8031FA90(s32, s32); -extern void warp_mmmEnterDiningRoomDoor(s32, s32); -extern void warp_mmmEnterDiningRoomChimney(s32, s32); -extern void warp_mmmEnterWellTop(s32, s32); -extern void warp_mmmEnterTumblarShed(s32, s32); -extern void func_8031DAE0(s32, s32); -extern void warp_mmmEnterChurchSecretRoom(s32, s32); -extern void func_8031DC10(s32, s32); -extern void warp_mmmEnterRainBarrelBottom(s32, s32); -extern void warp_mmmEnterCellar(s32, s32); -extern void warp_mmmEnterRedFeatherRoom(s32, s32); -extern void warp_mmmEnterBlueEggRoom(s32, s32); -extern void warp_mmmEnterNoteRoom(s32, s32); -extern void warp_mmmEnterBrokenFloorboardRoom(s32, s32); -extern void warp_mmmEnterBedroom(s32, s32); -extern void warp_mmmEnterBathroomWindow(s32, s32); -extern void warp_mmmExitDiningRoomDoor(s32, s32); -extern void func_8031D820(s32, s32); -extern void warp_mmmExitWellTop(s32, s32); -extern void warp_mmmExitTumblarShed(s32, s32); -extern void warp_mmmExitChurchFrontDoor(s32, s32); -extern void warp_mmmExitChurchSecretRoom(s32, s32); -extern void func_8031D8D4(s32, s32); -extern void warp_mmmExitRainBarrelBottom(s32, s32); -extern void warp_mmmExitCellar(s32, s32); -extern void warp_mmmExitRedFeatherRoom(s32, s32); -extern void warp_mmmExitBlueEggRoom(s32, s32); -extern void warp_mmmExitBathroomWindow(s32, s32); -extern void warp_mmmExitBrokenFloorboardRoom(s32, s32); -extern void warp_mmmExitBedroom(s32, s32); -extern void warp_mmmExitNoteRoom(s32, s32); -extern void warp_mmmChurchTowerUp(s32, s32); -extern void warp_mmmChurchTowerDown(s32, s32); -extern void warp_mmmExitMumbosHut(s32, s32); -extern void warp_mmmEnterMumbosHut(s32, s32); -extern void warp_ccExitWonderwingRoom(s32, s32); -extern void warp_ccEnterClankerBelly(s32, s32); -extern void warp_ccEnterClankerMouth(s32, s32); -extern void warp_ccEnterWonderwingRoom(s32, s32); -extern void warp_mmEnterLevel(s32, s32); -extern void warp_rbbEnterCaptainsRoomWindow(s32, s32); -extern void warp_rbbEnterCabinRoomWindow(s32, s32); -extern void warp_rbbEnterEngineRoomPipe(s32, s32); -extern void warp_rbbEnterKitchenPipe(s32, s32); -extern void warp_rbbEnterNavigationRoomWindow(s32, s32); -extern void warp_rbbEnterBoomBoxPipe(s32, s32); -extern void warp_rbbEnterEngineRoomDoor(s32, s32); -extern void warp_rbbEnterChumpWarehouseWindow(s32, s32); -extern void warp_rbbEnterBoatRoom(s32, s32); -extern void warp_rbbEnterChompaContainer(s32, s32); -extern void warp_rbbEnterSeamanGrublinContainer(s32, s32); -extern void warp_rbbEnterBoomBoxContainer(s32, s32); -extern void warp_rbbExitCaptainsRoomWindow(s32, s32); -extern void warp_rbbExitCabinRoomWindow(s32, s32); -extern void warp_rbbExitEngineRoomPipe(s32, s32); -extern void warp_rbbExitKitchenPipe(s32, s32); -extern void warp_rbbExitNavigationRoomWindow(s32, s32); -extern void warp_rbbExitBoomBoxPipe(s32, s32); -extern void warp_rbbExitEngineRoomDoor(s32, s32); -extern void warp_rbbExitBoatRoom(s32, s32); -extern void warp_rbbExitChompaContainer(s32, s32); -extern void warp_rbbExitSeamanGrublinContainer(s32, s32); -extern void warp_rbbExitBoomBoxContainer(s32, s32); -extern void warp_rbbExitBossBoomBoxRoom(s32, s32); -extern void warp_rbbEnterBossBoomBoxRoom(s32, s32); -extern void warp_rbbEnterChumpWarehouseDoor(s32, s32); -extern void warp_rbbExitChumpWarehouseDoor(s32, s32); -extern void func_8031E308(s32, s32); -extern void func_8031E32C(s32, s32); -extern void func_8031E350(s32, s32); -extern void func_8031E374(s32, s32); -extern void func_8031E398(s32, s32); -extern void func_8031E3BC(s32, s32); -extern void func_8031E3E0(s32, s32); -extern void func_8031E404(s32, s32); -extern void func_8031E428(s32, s32); -extern void func_8031E44C(s32, s32); -extern void func_8031E470(s32, s32); -extern void func_8031E494(s32, s32); -extern void func_8031E4B8(s32, s32); -extern void func_8031E4DC(s32, s32); -extern void func_8031E500(s32, s32); -extern void func_8031E524(s32, s32); -extern void func_8031E548(s32, s32); -extern void func_8031E56C(s32, s32); -extern void func_8031E590(s32, s32); -extern void func_8031E5B4(s32, s32); -extern void func_8031E5D8(s32, s32); -extern void func_8031E5FC(s32, s32); -extern void func_8031E620(s32, s32); -extern void func_8031E644(s32, s32); -extern void func_8031E668(s32, s32); -extern void func_8031E68C(s32, s32); -extern void func_8031E6B0(s32, s32); -extern void warp_ccwExitWinterToHub(s32, s32); -extern void warp_ccwExitSpringToHub(s32, s32); -extern void warp_ccwExitSummerToHub(s32, s32); -extern void warp_ccwExitAutumnToHub(s32, s32); -extern void warp_ccwEnterWinter(s32, s32); -extern void warp_ccwEnterSpring(s32, s32); -extern void warp_ccwEnterSummer(s32, s32); -extern void warp_ccwEnterAutumn(s32, s32); -extern void warp_gvExitSandybuttMazeBack(s32, s32); -extern void warp_ttcExitSpringMumbosHut(s32, s32); -extern void warp_ttcExitSummerMumbosHut(s32, s32); -extern void warp_ttcExitAutumnMumbosHut(s32, s32); -extern void warp_ttcExitWinterMumbosHut(s32, s32); -extern void warp_ttcEnterSpringMumbosHut(s32, s32); -extern void warp_ttcEnterSummerMumbosHut(s32, s32); -extern void warp_ttcEnterAutumnMumbosHut(s32, s32); -extern void warp_ttcEnterWinterMumbosHut(s32, s32); -extern void warp_ccwEnterSpringNabnutDoor(s32, s32); -extern void warp_ccwEnterSummerNabnutDoor(s32, s32); -extern void warp_ccwEnterAutumnNabnutDoor(s32, s32); -extern void warp_ccwExitSpringNabnutDoor(s32, s32); -extern void warp_ccwExitSummerNabnutDoor(s32, s32); -extern void warp_ccwExitAutumnNabnutDoor(s32, s32); -extern void warp_ccwExitWinterNabnutDoor(s32, s32); -extern void func_8031F0F4(s32, s32); -extern void func_8031F118(s32, s32); -extern void warp_lairEnterGVPuzzleRoomFromMMMLobby(s32, s32); -extern void warp_ttcExitSharkfoodIsland(s32, s32); -extern void warp_lairEnterRBBLobbyFromRBBLevel(s32, s32); -extern void warp_lairEnterBGSLobbyFromBGSLevel(s32, s32); -extern void warp_fpExitWozzasCave(s32, s32); -extern void warp_fpEnterWozzasCave(s32, s32); -extern void warp_lairEnterCryptFromMMMLobby(s32, s32); -extern void warp_lairEnterMMMLobbyFromCrypt(s32, s32); -extern void warp_lairEnterPointingGruntyStatueFromBGSLobby(s32, s32); -extern void warp_lairEnterBGSLobbyFromPointingGruntyStatueRoom(s32, s32); -extern void warp_lairEnterMMMLobbyFromGVPuzzleRoom(s32, s32); -extern void warp_lairEnterGVPuzzleRoomFromFPLobby(s32, s32); -extern void warp_lairFPLobbyFromGVPuzzleRoom(s32, s32); -extern void warp_lairEnter640NoteDoorRoomFromFPLobby(s32, s32); -extern void warp_lairEnter640NoteDoorRoomFromCCWLobbyTokenEntrance(s32, s32); -extern void warp_lairEnter640NoteDoorRoomFromCCWLobbyDoorEntrance(s32, s32); -extern void warp_lairEnter640NoteDoorRoomFromRBBLobby(s32, s32); -extern void warp_lairRBBLobbyFrom640NoteDoorRoom(s32, s32); -extern void warp_lairCCWLobbyFrom640NoteDoorRoomDoorEntrance(s32, s32); -extern void warp_lairCCWLobbyFrom640NoteDoorRoomTokenEntrance(s32, s32); -extern void warp_lairEnterFPLobbyFrom640NoteDoorRoom(s32, s32); -extern void warp_ccwEnterSpringZubbaHive(s32, s32); -extern void warp_ccwEnterSummerZubbaHive(s32, s32); -extern void warp_ccwEnterAutumnZubbaHive(s32, s32); -extern void warp_ccwExitSpringZubbaHive(s32, s32); -extern void warp_ccwExitSummerZubbaHive(s32, s32); -extern void warp_ccwExitAutumnZubbaHive(s32, s32); -extern void warp_lairEnterMMMPuzzleFromRBBLobby(s32, s32); -extern void warp_lairEnterRBBPuzzleFromRBBLobby(s32, s32); -extern void func_8031FB6C(s32, s32); -extern void warp_lairEnterCCWLobbyFromFurnaceFunPath(s32, s32); -extern void warp_lairEnterFurnaceFunPathFromCCWLobby(s32, s32); -extern void warp_smEnterBanjosHouse(s32, s32); -extern void warp_smExitBanjosHouse(s32, s32); -extern void warp_lairEnterMMLobbyFromSMLevel(s32, s32); -extern void warp_smExitLair(s32, s32); -extern void warp_rbbExitAnchorRoom(s32, s32); -extern void warp_rbbEnterAnchorRoom(s32, s32); -extern void warp_mmmEnterWellBottom(s32, s32); -extern void warp_mmmExitWellBottom(s32, s32); -extern void warp_mmmEnterBathroomFromLoggo(s32, s32); -extern void warp_mmmEnterLoggo(s32, s32); -extern void warp_ccwEnterLevel(s32, s32); -extern void warp_ccwEnterSpringNabnutWindow(s32, s32); -extern void warp_ccwEnterSummerNabnutWindow(s32, s32); -extern void warp_ccwEnterAutumnNabnutWindow(s32, s32); -extern void warp_ccwEnterWinterNabnutWindow(s32, s32); -extern void warp_ccwExitSpringNabnutWindow(s32, s32); -extern void warp_ccwExitSummerNabnutWindow(s32, s32); -extern void warp_ccwExitAutumnNabnutWindow(s32, s32); -extern void warp_ccwExitWinterNabnutWindow(s32, s32); -extern void warp_gvEnterSNSChamper(s32, s32); -extern void warp_gvExitSNSChamper(s32, s32); -extern void warp_lairEnterLairFromSMLevel(s32, s32); +extern void warp_lairEnterGVLobbyFromPointingStatueRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterMMLobbyFromPuzzlesRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterFPLobbyFromGVLobby(NodeProp *, ActorMarker *); +extern void warp_lairEnterGVLobbyFromGVLevel(NodeProp *, ActorMarker *); +extern void warp_lairEnterGVLobbyFromFPLobby(NodeProp *, ActorMarker *); +extern void warp_ccwExitSpringWhipcrackRoom(NodeProp *, ActorMarker *); +extern void warp_ccwExitSummerWhipcrackRoom(NodeProp *, ActorMarker *); +extern void warp_ccwExitAutumnWhipcrackRoom(NodeProp *, ActorMarker *); +extern void warp_ccwExitWinterWhipcrackRoom(NodeProp *, ActorMarker *); +extern void warp_gvEnterMatchingPyramid(NodeProp *, ActorMarker *); +extern void warp_gvEnterMazePyramid(NodeProp *, ActorMarker *); +extern void warp_gvEnterWaterPyramidUpper(NodeProp *, ActorMarker *); +extern void warp_gvEnterWaterPyramidLower(NodeProp *, ActorMarker *); +extern void warp_gvEnterRubeePyramid(NodeProp *, ActorMarker *); +extern void warp_gvExitMatchingPyramid(NodeProp *, ActorMarker *); +extern void warp_gvExitMazePyramid(NodeProp *, ActorMarker *); +extern void warp_gvExitWaterPyramidLower(NodeProp *, ActorMarker *); +extern void warp_gvExitRubeePyramid(NodeProp *, ActorMarker *); +extern void warp_bgsEnterTanktup(NodeProp *, ActorMarker *); +extern void warp_bgsEnterMrVileRightNostril(NodeProp *, ActorMarker *); +extern void warp_bgsEnterMrVileLeftNostril(NodeProp *, ActorMarker *); +extern void warp_bgsExitTanktup(NodeProp *, ActorMarker *); +extern void warp_bgsExitVileRightNostril(NodeProp *, ActorMarker *); +extern void warp_bgsExitVileLeftNostril(NodeProp *, ActorMarker *); +extern void warp_ttcEnterSandcastle(NodeProp *, ActorMarker *); +extern void warp_ttcStairAlcoveDown(NodeProp *, ActorMarker *); +extern void warp_ttcStairAlcoveUp(NodeProp *, ActorMarker *); +extern void warp_ttcEnterBlubbersShipUpper(NodeProp *, ActorMarker *); +extern void warp_ttcEnterBlubbersShipSide(NodeProp *, ActorMarker *); +extern void func_8031D628(NodeProp *, ActorMarker *); +extern void warp_ttcExitLighthouseTop(NodeProp *, ActorMarker *); +extern void warp_ttcExitSandcastle(NodeProp *, ActorMarker *); +extern void warp_fpEnterLevel(NodeProp *, ActorMarker *); +extern void func_8031FAB4(NodeProp *, ActorMarker *); +extern void warp_ttcExitBlubbersShipUpper(NodeProp *, ActorMarker *); +extern void warp_ttcExitBlubbersShipSide(NodeProp *, ActorMarker *); +extern void warp_lairEnterDingpotRoomFromFurnaceFun(NodeProp *, ActorMarker *); +extern void func_8031FA90(NodeProp *, ActorMarker *); +extern void warp_mmmEnterDiningRoomDoor(NodeProp *, ActorMarker *); +extern void warp_mmmEnterDiningRoomChimney(NodeProp *, ActorMarker *); +extern void warp_mmmEnterWellTop(NodeProp *, ActorMarker *); +extern void warp_mmmEnterTumblarShed(NodeProp *, ActorMarker *); +extern void func_8031DAE0(NodeProp *, ActorMarker *); +extern void warp_mmmEnterChurchSecretRoom(NodeProp *, ActorMarker *); +extern void func_8031DC10(NodeProp *, ActorMarker *); +extern void warp_mmmEnterRainBarrelBottom(NodeProp *, ActorMarker *); +extern void warp_mmmEnterCellar(NodeProp *, ActorMarker *); +extern void warp_mmmEnterRedFeatherRoom(NodeProp *, ActorMarker *); +extern void warp_mmmEnterBlueEggRoom(NodeProp *, ActorMarker *); +extern void warp_mmmEnterNoteRoom(NodeProp *, ActorMarker *); +extern void warp_mmmEnterBrokenFloorboardRoom(NodeProp *, ActorMarker *); +extern void warp_mmmEnterBedroom(NodeProp *, ActorMarker *); +extern void warp_mmmEnterBathroomWindow(NodeProp *, ActorMarker *); +extern void warp_mmmExitDiningRoomDoor(NodeProp *, ActorMarker *); +extern void func_8031D820(NodeProp *, ActorMarker *); +extern void warp_mmmExitWellTop(NodeProp *, ActorMarker *); +extern void warp_mmmExitTumblarShed(NodeProp *, ActorMarker *); +extern void warp_mmmExitChurchFrontDoor(NodeProp *, ActorMarker *); +extern void warp_mmmExitChurchSecretRoom(NodeProp *, ActorMarker *); +extern void func_8031D8D4(NodeProp *, ActorMarker *); +extern void warp_mmmExitRainBarrelBottom(NodeProp *, ActorMarker *); +extern void warp_mmmExitCellar(NodeProp *, ActorMarker *); +extern void warp_mmmExitRedFeatherRoom(NodeProp *, ActorMarker *); +extern void warp_mmmExitBlueEggRoom(NodeProp *, ActorMarker *); +extern void warp_mmmExitBathroomWindow(NodeProp *, ActorMarker *); +extern void warp_mmmExitBrokenFloorboardRoom(NodeProp *, ActorMarker *); +extern void warp_mmmExitBedroom(NodeProp *, ActorMarker *); +extern void warp_mmmExitNoteRoom(NodeProp *, ActorMarker *); +extern void warp_mmmChurchTowerUp(NodeProp *, ActorMarker *); +extern void warp_mmmChurchTowerDown(NodeProp *, ActorMarker *); +extern void warp_mmmExitMumbosHut(NodeProp *, ActorMarker *); +extern void warp_mmmEnterMumbosHut(NodeProp *, ActorMarker *); +extern void warp_ccExitWonderwingRoom(NodeProp *, ActorMarker *); +extern void warp_ccEnterClankerBelly(NodeProp *, ActorMarker *); +extern void warp_ccEnterClankerMouth(NodeProp *, ActorMarker *); +extern void warp_ccEnterWonderwingRoom(NodeProp *, ActorMarker *); +extern void warp_mmEnterLevel(NodeProp *, ActorMarker *); +extern void warp_rbbEnterCaptainsRoomWindow(NodeProp *, ActorMarker *); +extern void warp_rbbEnterCabinRoomWindow(NodeProp *, ActorMarker *); +extern void warp_rbbEnterEngineRoomPipe(NodeProp *, ActorMarker *); +extern void warp_rbbEnterKitchenPipe(NodeProp *, ActorMarker *); +extern void warp_rbbEnterNavigationRoomWindow(NodeProp *, ActorMarker *); +extern void warp_rbbEnterBoomBoxPipe(NodeProp *, ActorMarker *); +extern void warp_rbbEnterEngineRoomDoor(NodeProp *, ActorMarker *); +extern void warp_rbbEnterChumpWarehouseWindow(NodeProp *, ActorMarker *); +extern void warp_rbbEnterBoatRoom(NodeProp *, ActorMarker *); +extern void warp_rbbEnterChompaContainer(NodeProp *, ActorMarker *); +extern void warp_rbbEnterSeamanGrublinContainer(NodeProp *, ActorMarker *); +extern void warp_rbbEnterBoomBoxContainer(NodeProp *, ActorMarker *); +extern void warp_rbbExitCaptainsRoomWindow(NodeProp *, ActorMarker *); +extern void warp_rbbExitCabinRoomWindow(NodeProp *, ActorMarker *); +extern void warp_rbbExitEngineRoomPipe(NodeProp *, ActorMarker *); +extern void warp_rbbExitKitchenPipe(NodeProp *, ActorMarker *); +extern void warp_rbbExitNavigationRoomWindow(NodeProp *, ActorMarker *); +extern void warp_rbbExitBoomBoxPipe(NodeProp *, ActorMarker *); +extern void warp_rbbExitEngineRoomDoor(NodeProp *, ActorMarker *); +extern void warp_rbbExitBoatRoom(NodeProp *, ActorMarker *); +extern void warp_rbbExitChompaContainer(NodeProp *, ActorMarker *); +extern void warp_rbbExitSeamanGrublinContainer(NodeProp *, ActorMarker *); +extern void warp_rbbExitBoomBoxContainer(NodeProp *, ActorMarker *); +extern void warp_rbbExitBossBoomBoxRoom(NodeProp *, ActorMarker *); +extern void warp_rbbEnterBossBoomBoxRoom(NodeProp *, ActorMarker *); +extern void warp_rbbEnterChumpWarehouseDoor(NodeProp *, ActorMarker *); +extern void warp_rbbExitChumpWarehouseDoor(NodeProp *, ActorMarker *); +extern void func_8031E308(NodeProp *, ActorMarker *); +extern void func_8031E32C(NodeProp *, ActorMarker *); +extern void func_8031E350(NodeProp *, ActorMarker *); +extern void func_8031E374(NodeProp *, ActorMarker *); +extern void func_8031E398(NodeProp *, ActorMarker *); +extern void func_8031E3BC(NodeProp *, ActorMarker *); +extern void func_8031E3E0(NodeProp *, ActorMarker *); +extern void func_8031E404(NodeProp *, ActorMarker *); +extern void func_8031E428(NodeProp *, ActorMarker *); +extern void func_8031E44C(NodeProp *, ActorMarker *); +extern void func_8031E470(NodeProp *, ActorMarker *); +extern void func_8031E494(NodeProp *, ActorMarker *); +extern void func_8031E4B8(NodeProp *, ActorMarker *); +extern void func_8031E4DC(NodeProp *, ActorMarker *); +extern void func_8031E500(NodeProp *, ActorMarker *); +extern void func_8031E524(NodeProp *, ActorMarker *); +extern void func_8031E548(NodeProp *, ActorMarker *); +extern void func_8031E56C(NodeProp *, ActorMarker *); +extern void func_8031E590(NodeProp *, ActorMarker *); +extern void func_8031E5B4(NodeProp *, ActorMarker *); +extern void func_8031E5D8(NodeProp *, ActorMarker *); +extern void func_8031E5FC(NodeProp *, ActorMarker *); +extern void func_8031E620(NodeProp *, ActorMarker *); +extern void func_8031E644(NodeProp *, ActorMarker *); +extern void func_8031E668(NodeProp *, ActorMarker *); +extern void func_8031E68C(NodeProp *, ActorMarker *); +extern void func_8031E6B0(NodeProp *, ActorMarker *); +extern void warp_ccwExitWinterToHub(NodeProp *, ActorMarker *); +extern void warp_ccwExitSpringToHub(NodeProp *, ActorMarker *); +extern void warp_ccwExitSummerToHub(NodeProp *, ActorMarker *); +extern void warp_ccwExitAutumnToHub(NodeProp *, ActorMarker *); +extern void warp_ccwEnterWinter(NodeProp *, ActorMarker *); +extern void warp_ccwEnterSpring(NodeProp *, ActorMarker *); +extern void warp_ccwEnterSummer(NodeProp *, ActorMarker *); +extern void warp_ccwEnterAutumn(NodeProp *, ActorMarker *); +extern void warp_gvExitSandybuttMazeBack(NodeProp *, ActorMarker *); +extern void warp_ttcExitSpringMumbosHut(NodeProp *, ActorMarker *); +extern void warp_ttcExitSummerMumbosHut(NodeProp *, ActorMarker *); +extern void warp_ttcExitAutumnMumbosHut(NodeProp *, ActorMarker *); +extern void warp_ttcExitWinterMumbosHut(NodeProp *, ActorMarker *); +extern void warp_ttcEnterSpringMumbosHut(NodeProp *, ActorMarker *); +extern void warp_ttcEnterSummerMumbosHut(NodeProp *, ActorMarker *); +extern void warp_ttcEnterAutumnMumbosHut(NodeProp *, ActorMarker *); +extern void warp_ttcEnterWinterMumbosHut(NodeProp *, ActorMarker *); +extern void warp_ccwEnterSpringNabnutDoor(NodeProp *, ActorMarker *); +extern void warp_ccwEnterSummerNabnutDoor(NodeProp *, ActorMarker *); +extern void warp_ccwEnterAutumnNabnutDoor(NodeProp *, ActorMarker *); +extern void warp_ccwExitSpringNabnutDoor(NodeProp *, ActorMarker *); +extern void warp_ccwExitSummerNabnutDoor(NodeProp *, ActorMarker *); +extern void warp_ccwExitAutumnNabnutDoor(NodeProp *, ActorMarker *); +extern void warp_ccwExitWinterNabnutDoor(NodeProp *, ActorMarker *); +extern void func_8031F0F4(NodeProp *, ActorMarker *); +extern void func_8031F118(NodeProp *, ActorMarker *); +extern void warp_lairEnterGVPuzzleRoomFromMMMLobby(NodeProp *, ActorMarker *); +extern void warp_ttcExitSharkfoodIsland(NodeProp *, ActorMarker *); +extern void warp_lairEnterRBBLobbyFromRBBLevel(NodeProp *, ActorMarker *); +extern void warp_lairEnterBGSLobbyFromBGSLevel(NodeProp *, ActorMarker *); +extern void warp_fpExitWozzasCave(NodeProp *, ActorMarker *); +extern void warp_fpEnterWozzasCave(NodeProp *, ActorMarker *); +extern void warp_lairEnterCryptFromMMMLobby(NodeProp *, ActorMarker *); +extern void warp_lairEnterMMMLobbyFromCrypt(NodeProp *, ActorMarker *); +extern void warp_lairEnterPointingGruntyStatueFromBGSLobby(NodeProp *, ActorMarker *); +extern void warp_lairEnterBGSLobbyFromPointingGruntyStatueRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterMMMLobbyFromGVPuzzleRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnterGVPuzzleRoomFromFPLobby(NodeProp *, ActorMarker *); +extern void warp_lairFPLobbyFromGVPuzzleRoom(NodeProp *, ActorMarker *); +extern void warp_lairEnter640NoteDoorRoomFromFPLobby(NodeProp *, ActorMarker *); +extern void warp_lairEnter640NoteDoorRoomFromCCWLobbyTokenEntrance(NodeProp *, ActorMarker *); +extern void warp_lairEnter640NoteDoorRoomFromCCWLobbyDoorEntrance(NodeProp *, ActorMarker *); +extern void warp_lairEnter640NoteDoorRoomFromRBBLobby(NodeProp *, ActorMarker *); +extern void warp_lairRBBLobbyFrom640NoteDoorRoom(NodeProp *, ActorMarker *); +extern void warp_lairCCWLobbyFrom640NoteDoorRoomDoorEntrance(NodeProp *, ActorMarker *); +extern void warp_lairCCWLobbyFrom640NoteDoorRoomTokenEntrance(NodeProp *, ActorMarker *); +extern void warp_lairEnterFPLobbyFrom640NoteDoorRoom(NodeProp *, ActorMarker *); +extern void warp_ccwEnterSpringZubbaHive(NodeProp *, ActorMarker *); +extern void warp_ccwEnterSummerZubbaHive(NodeProp *, ActorMarker *); +extern void warp_ccwEnterAutumnZubbaHive(NodeProp *, ActorMarker *); +extern void warp_ccwExitSpringZubbaHive(NodeProp *, ActorMarker *); +extern void warp_ccwExitSummerZubbaHive(NodeProp *, ActorMarker *); +extern void warp_ccwExitAutumnZubbaHive(NodeProp *, ActorMarker *); +extern void warp_lairEnterMMMPuzzleFromRBBLobby(NodeProp *, ActorMarker *); +extern void warp_lairEnterRBBPuzzleFromRBBLobby(NodeProp *, ActorMarker *); +extern void func_8031FB6C(NodeProp *, ActorMarker *); +extern void warp_lairEnterCCWLobbyFromFurnaceFunPath(NodeProp *, ActorMarker *); +extern void warp_lairEnterFurnaceFunPathFromCCWLobby(NodeProp *, ActorMarker *); +extern void warp_smEnterBanjosHouse(NodeProp *, ActorMarker *); +extern void warp_smExitBanjosHouse(NodeProp *, ActorMarker *); +extern void warp_lairEnterMMLobbyFromSMLevel(NodeProp *, ActorMarker *); +extern void warp_smExitLair(NodeProp *, ActorMarker *); +extern void warp_rbbExitAnchorRoom(NodeProp *, ActorMarker *); +extern void warp_rbbEnterAnchorRoom(NodeProp *, ActorMarker *); +extern void warp_mmmEnterWellBottom(NodeProp *, ActorMarker *); +extern void warp_mmmExitWellBottom(NodeProp *, ActorMarker *); +extern void warp_mmmEnterBathroomFromLoggo(NodeProp *, ActorMarker *); +extern void warp_mmmEnterLoggo(NodeProp *, ActorMarker *); +extern void warp_ccwEnterLevel(NodeProp *, ActorMarker *); +extern void warp_ccwEnterSpringNabnutWindow(NodeProp *, ActorMarker *); +extern void warp_ccwEnterSummerNabnutWindow(NodeProp *, ActorMarker *); +extern void warp_ccwEnterAutumnNabnutWindow(NodeProp *, ActorMarker *); +extern void warp_ccwEnterWinterNabnutWindow(NodeProp *, ActorMarker *); +extern void warp_ccwExitSpringNabnutWindow(NodeProp *, ActorMarker *); +extern void warp_ccwExitSummerNabnutWindow(NodeProp *, ActorMarker *); +extern void warp_ccwExitAutumnNabnutWindow(NodeProp *, ActorMarker *); +extern void warp_ccwExitWinterNabnutWindow(NodeProp *, ActorMarker *); +extern void warp_gvEnterSNSChamper(NodeProp *, ActorMarker *); +extern void warp_gvExitSNSChamper(NodeProp *, ActorMarker *); +extern void warp_lairEnterLairFromSMLevel(NodeProp *, ActorMarker *); extern void func_802C1674(NodeProp *, ActorMarker *); extern void func_802C169C(NodeProp *, ActorMarker *); @@ -314,7 +314,7 @@ typedef struct { /* .data */ -void * sWarpFunctions[] = { +void (*sWarpFunctions[])(NodeProp *, ActorMarker *) = { func_80388BEC, func_80334430, chOrangePad_handleOrangeCollision, chOrangePad_handleOrangeCollision, chOrangePad_handleOrangeCollision, warp_gvEnterJinxy, warp_gvExitJinxy, func_8038F10C, func_8038F130, warp_bgsEnterMumbosHut, warp_bgsExitMumbosHut, warp_ttcExitNipper, diff --git a/src/core2/code_B5040.c b/src/core2/code_B5040.c index bec8101a..96930d09 100644 --- a/src/core2/code_B5040.c +++ b/src/core2/code_B5040.c @@ -11,7 +11,7 @@ typedef struct { s16 unk2; // enum file_progress_e }Struct_B5040; -void savedata_clear(u8 *savedata); +void savedata_clear(SaveData *savedata); s32 savedata_verify(s32 arg0, SaveData *savedata); /* .data */ @@ -70,12 +70,12 @@ s32 endOffset; u8 D_80383D18[8]; /* .code */ -void savedata_update_crc(s32 buffer, s32 size){ +void savedata_update_crc(void *buffer, u32 size){ u32 sp20[2]; u32 sum; - glcrc_calc_checksum(buffer, buffer + size - 4, sp20); + glcrc_calc_checksum(buffer, (void*)((u32)buffer + size - 4), sp20); sum = sp20[0] ^ sp20[1]; - *(u32*)(buffer + size - 4) = sum; + *(u32*)((u32)buffer + size - 4) = sum; } int _savedata_verify(SaveData *savedata, s32 size){ @@ -118,8 +118,8 @@ void savedata_init(void){ //savedata_init timeScores_getSizeAndPtr(×cores_size, ×cores_addr); saveditem_getSizeAndPtr(&saved_item_size, &saved_item_addr); ability_getSizeAndPtr(&abilities_size, &abilities_addr); - baseOffset = 0; - jiggyOffset = baseOffset + 2; + baseOffset = offsetof(SaveData, magic); + jiggyOffset = baseOffset + (offsetof(SaveData, data) - offsetof(SaveData, magic)); honeycombOffset = jiggyOffset + jiggy_size; mumbotokenOffset = honeycombOffset + honeycomb_size; notescoresOffset = mumbotokenOffset + mumbotoken_size; @@ -130,189 +130,189 @@ void savedata_init(void){ //savedata_init endOffset = abilitiesOffset + abilities_size; } -void __savedata_load_jiggyScore(u8 *savedata){ +void __savedata_load_jiggyScore(SaveData *savedata){ s32 jiggy_size; u8 *jiggy_addr; int i; jiggyscore_getSizeAndPtr(&jiggy_size, &jiggy_addr); for(i = jiggyOffset; i < jiggyOffset + jiggy_size; i++){ - jiggy_addr[i - jiggyOffset] = savedata[i]; + jiggy_addr[i - jiggyOffset] = ((u8*)savedata)[i]; } func_8034798C(); } -void __savedata_load_honeycombScore(u8 *savedata){ //savedata_save_honeycomb +void __savedata_load_honeycombScore(SaveData *savedata){ //savedata_save_honeycomb s32 honeycomb_size; u8 *honeycomb_addr; int i; honeycombscore_getSizeAndPtr(&honeycomb_size, &honeycomb_addr); for(i = honeycombOffset; i < honeycombOffset + honeycomb_size; i++){ - honeycomb_addr[i - honeycombOffset] = savedata[i]; + honeycomb_addr[i - honeycombOffset] = ((u8*)savedata)[i]; } func_80347958(); } -void __savedata_load_mumboScore(u8 *savedata){ +void __savedata_load_mumboScore(SaveData *savedata){ s32 mumbotoken_size; u8 *mumbotoken_addr; int i; mumboscore_getSizeAndPtr(&mumbotoken_size, &mumbotoken_addr); for(i = mumbotokenOffset; i < mumbotokenOffset + mumbotoken_size; i++){ - mumbotoken_addr[i - mumbotokenOffset] = savedata[i]; + mumbotoken_addr[i - mumbotokenOffset] = ((u8*)savedata)[i]; } func_80347984(); } -void __savedata_load_highNoteScores(u8 *savedata){ +void __savedata_load_highNoteScores(SaveData *savedata){ s32 notescores_size; u8 *notescores_addr; int i; notescore_getSizeAndPtr(¬escores_size, ¬escores_addr); for(i = notescoresOffset; i < notescoresOffset + notescores_size; i++){ - notescores_addr[i - notescoresOffset] = savedata[i]; + notescores_addr[i - notescoresOffset] = ((u8*)savedata)[i]; } itemscore_highNoteScores_fromSaveData(notescores_addr); } -void __savedata_load_timeScores(u8 *savedata){ +void __savedata_load_timeScores(SaveData *savedata){ s32 timescores_size; u8 *timescores_addr; int i; timeScores_getSizeAndPtr(×cores_size, ×cores_addr); for(i = timescoresOffset; i < timescoresOffset + timescores_size; i++){ - timescores_addr[i - timescoresOffset] = savedata[i]; + timescores_addr[i - timescoresOffset] = ((u8*)savedata)[i]; } itemscore_timeScores_fromSaveData(timescores_addr); } -void func_8033C460(u8 *savedata){ //global_progress +void func_8033C460(SaveData *savedata){ //global_progress s32 progressflags_size; u8 *progressflags_addr; int i; fileProgressFlag_getSizeAndPtr(&progressflags_size, &progressflags_addr); for(i = progressflagsOffset; i < progressflagsOffset + progressflags_size; i++){ - progressflags_addr[i - progressflagsOffset] = savedata[i]; + progressflags_addr[i - progressflagsOffset] = ((u8*)savedata)[i]; } } -void func_8033C4E4(u8 *savedata){ //saveddata_load_collectibles +void func_8033C4E4(SaveData *savedata){ //saveddata_load_collectibles s32 saved_item_size; u8 *saved_item_addr; int i; saveditem_getSizeAndPtr(&saved_item_size, &saved_item_addr); for(i = savedItemsOffset; i < savedItemsOffset + saved_item_size; i++){ - saved_item_addr[i - savedItemsOffset] = savedata[i]; + saved_item_addr[i - savedItemsOffset] = ((u8*)savedata)[i]; } func_803479C0(saved_item_addr); } -void __savedata_load_abilities(u8 *savedata){ //savedata_load_abilities +void __savedata_load_abilities(SaveData *savedata){ //savedata_load_abilities s32 abilities_size; u8 *abilities_addr; int i; ability_getSizeAndPtr(&abilities_size, &abilities_addr); for(i = abilitiesOffset; i < abilitiesOffset + abilities_size; i++){ - abilities_addr[i - abilitiesOffset] = savedata[i]; + abilities_addr[i - abilitiesOffset] = ((u8*)savedata)[i]; } } -void __savedata_save_magic(u8 *savedata){ - savedata[baseOffset] = 0x11; +void __savedata_save_magic(SaveData *savedata){ + ((u8*)savedata)[baseOffset] = 0x11; } -void __savedata_save_jiggyScore(u8 *savedata){ //savedata_save_jiggies +void __savedata_save_jiggyScore(SaveData *savedata){ //savedata_save_jiggies s32 jiggy_size; u8 *jiggy_addr; int i; jiggyscore_getSizeAndPtr(&jiggy_size, &jiggy_addr); for(i = jiggyOffset; i < jiggyOffset + jiggy_size; i++){ - savedata[i] = jiggy_addr[i - jiggyOffset]; + ((u8*)savedata)[i] = jiggy_addr[i - jiggyOffset]; } } -void __savedata_save_honeycombScore(u8 *savedata){ //savedata_save_honeycomb +void __savedata_save_honeycombScore(SaveData *savedata){ //savedata_save_honeycomb s32 honeycomb_size; u8 *honeycomb_addr; int i; honeycombscore_getSizeAndPtr(&honeycomb_size, &honeycomb_addr); for(i = honeycombOffset; i < honeycombOffset + honeycomb_size; i++){ - savedata[i] = honeycomb_addr[i - honeycombOffset]; + ((u8*)savedata)[i] = honeycomb_addr[i - honeycombOffset]; } } -void __savedata_save_mumboScore(u8 *savedata){ +void __savedata_save_mumboScore(SaveData *savedata){ s32 mumbotoken_size; u8 *mumbotoken_addr; int i; mumboscore_getSizeAndPtr(&mumbotoken_size, &mumbotoken_addr); for(i = mumbotokenOffset; i < mumbotokenOffset + mumbotoken_size; i++){ - savedata[i] = mumbotoken_addr[i - mumbotokenOffset]; + ((u8*)savedata)[i] = mumbotoken_addr[i - mumbotokenOffset]; } } -void __savedata_save_highNoteScores(u8 *savedata){ +void __savedata_save_highNoteScores(SaveData *savedata){ s32 notescores_size; u8 *notescores_addr; int i; notescore_getSizeAndPtr(¬escores_size, ¬escores_addr); for(i = notescoresOffset; i < notescoresOffset + notescores_size; i++){ - savedata[i] = notescores_addr[i - notescoresOffset]; + ((u8*)savedata)[i] = notescores_addr[i - notescoresOffset]; } } -void __savedata_save_timeScores(u8 *savedata){ +void __savedata_save_timeScores(SaveData *savedata){ s32 timescores_size; u8 *timescores_addr; int i; timeScores_getSizeAndPtr(×cores_size, ×cores_addr); for(i = timescoresOffset; i < timescoresOffset + timescores_size; i++){ - savedata[i] = timescores_addr[i - timescoresOffset]; + ((u8*)savedata)[i] = timescores_addr[i - timescoresOffset]; } } -void __savedata_8033C8A0(u8 *savedata){ //global_progress +void __savedata_8033C8A0(SaveData *savedata){ //global_progress s32 progressflags_size; u8 *progressflags_addr; int i; fileProgressFlag_getSizeAndPtr(&progressflags_size, &progressflags_addr); for(i = progressflagsOffset; i < progressflagsOffset + progressflags_size; i++){ - savedata[i] = progressflags_addr[i - progressflagsOffset]; + ((u8*)savedata)[i] = progressflags_addr[i - progressflagsOffset]; } } -void __savedata_8033CA2C(u8 *savedata){ //saveddata_save_collectibles +void __savedata_8033CA2C(SaveData *savedata){ //saveddata_save_collectibles s32 saved_item_size; u8 *saved_item_addr; int i; saveditem_getSizeAndPtr(&saved_item_size, &saved_item_addr); for(i = savedItemsOffset; i < savedItemsOffset + saved_item_size; i++){ - savedata[i] = saved_item_addr[i - savedItemsOffset]; + ((u8*)savedata)[i] = saved_item_addr[i - savedItemsOffset]; } } -void __savedata_save_abilities(u8 *savedata){ //savedata_save_abilities +void __savedata_save_abilities(SaveData *savedata){ //savedata_save_abilities s32 abilities_size; u8 *abilities_addr; int i; ability_getSizeAndPtr(&abilities_size, &abilities_addr); for(i = abilitiesOffset; i < abilitiesOffset + abilities_size; i++){ - savedata[i] = abilities_addr[i - abilitiesOffset]; + ((u8*)savedata)[i] = abilities_addr[i - abilitiesOffset]; } } @@ -411,9 +411,9 @@ int savedata_8033CE40(u8 *buffer){ return out; } -void savedata_clear(u8 *savedata){ +void savedata_clear(SaveData *savedata){ int i; for(i = 0; i < sizeof(SaveData); i++){ - savedata[i] = 0; + ((u8*)savedata)[i] = 0; } } diff --git a/src/core2/code_B9090.c b/src/core2/code_B9090.c index b0c66c8e..0b5ba05b 100644 --- a/src/core2/code_B9090.c +++ b/src/core2/code_B9090.c @@ -42,7 +42,7 @@ bool func_80340020(Struct83s *self, f32 position[3], f32 arg2[3], f32 arg3, f32 return TRUE; } -void func_80340200(Struct83s *self, f32 position[3], f32 arg2[3], f32 arg3, f32 arg4[3], s16 arg5[3], BKVertexList *arg6, f32 arg7[3]) { +void func_80340200(Struct83s *self, f32 position[3], f32 arg2[3], f32 arg3, f32 arg4[3], BKCollisionTri *arg5, BKVertexList *arg6, f32 arg7[3]) { f32 spAC[3]; f32 spA0[3]; f32 sp94[3]; @@ -67,7 +67,7 @@ void func_80340200(Struct83s *self, f32 position[3], f32 arg2[3], f32 arg3, f32 func_80252CC4(position, arg2, arg3, arg4); mlMtx_apply_vec3f(sp94, arg7); for(j = 0; j < 3; j++){ - self->unk14[j] = arg5[j]; + self->unk14[j] = arg5->unk0[j]; } for(j = 0; j < 3; j++){ diff --git a/src/core2/code_C0E60.c b/src/core2/code_C0E60.c index 0f758d7d..40ddc966 100644 --- a/src/core2/code_C0E60.c +++ b/src/core2/code_C0E60.c @@ -3,6 +3,7 @@ #include "variables.h" extern void func_80355C60(f32[3], f32); +extern Actor *bundle_spawn_f32(enum bundle_e bundle_id, f32 position[3]); void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile, s32 uls, s32 ult, s32 cms, s32 cmt, s32 *width, s32 *height, s32 *frame_width, s32 *frame_height, s32 *texture_x, s32 *texture_y, s32 *textureCount); @@ -51,8 +52,8 @@ void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile, } /* .bss */ -s32 D_80386070; -s32 D_80386074; +BKSpriteFrame *D_80386070; +BKSpriteFrame *D_80386074; s32 D_80386078; s32 D_8038607C; s32 D_80386080; @@ -149,7 +150,7 @@ void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile, gDPLoadTLUT_pal16((*gfx)++, 0, palette_addr); spriteRenderHasPalette = TRUE; spriteRender1PrimMode = FALSE; - D_80386074 = 0; + D_80386074 = NULL; texture_block = (BKSpriteTextureBlock *)(palette_addr + 0x20); D_80386098 = D_8038607C = 0; } else if (sprite->type & SPRITE_TYPE_CI8) { @@ -161,7 +162,7 @@ void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile, texture_block = (BKSpriteTextureBlock *)(palette_addr + 0x200); D_80386098 = 0; for(var_a0 = 0; var_a0 < chunk_count; var_a0++) { - texture_block = (s32)texture_block + (texture_block->w * texture_block->h) + sizeof(BKSpriteTextureBlock); + texture_block = (BKSpriteTextureBlock *)((s32)texture_block + (texture_block->w * texture_block->h) + sizeof(BKSpriteTextureBlock)); } *texture_x = texture_block->x; *texture_y = texture_block->y; @@ -284,7 +285,7 @@ void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile, } void func_80349AD0(void){ - D_80386074 = D_80386070 = 0; + D_80386074 = D_80386070 = NULL; D_80386098 = D_8038607C = 0; D_80386094 = D_80386078 = -1; spriteRenderHasPalette = FALSE; diff --git a/src/core2/code_C62B0.c b/src/core2/code_C62B0.c index b9fd7d13..dacd53fc 100644 --- a/src/core2/code_C62B0.c +++ b/src/core2/code_C62B0.c @@ -24,7 +24,7 @@ void func_8034D240(s32 *mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3) { dst->v.cn[3] = (arg3->unk50[3] + temp_f0 * (arg3->unk60[3] - arg3->unk50[3])) * src->v.v.cn[3]; } -void func_8034D554(s32 *mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3){ +void func_8034D554(s32 mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3){ f32 temp_f0; f32 sp18[3]; @@ -36,7 +36,7 @@ void func_8034D554(s32 *mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3){ dst->v.ob[2] = (s16)(src->v.v.ob[2] + sp18[2]); } -void func_8034D634(s32 *mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3){ +void func_8034D634(s32 mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3){ f32 temp_f0; f32 sp18[3]; @@ -47,11 +47,11 @@ void func_8034D634(s32 *mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3){ dst->v.ob[2] = (s16)(src->v.v.ob[2] + sp18[2]); } -void func_8034D700(s32 *mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3){ +void func_8034D700(s32 mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3){ dst->v.ob[1] = src->v.v.ob[1] + (u16)(s32)(arg3->unk4 + ((arg3->unk44 / arg3->unk48) * (arg3->unk8 - arg3->unk4))); } -void func_8034D740(s32 *mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3){ +void func_8034D740(s32 mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3){ f32 temp_f0; f32 temp_f12; f32 temp_f14; @@ -65,14 +65,14 @@ void func_8034D740(s32 *mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3){ dst->v.cn[3] = (((arg3->unk94 - arg3->unk84) * temp_f0) + arg3->unk84); } -void func_8034D9C8(s32 *mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3) { +void func_8034D9C8(s32 mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3) { f32 temp_f0; temp_f0 = arg3->unk98 / arg3->unk9C; dst->v.cn[3] = (((arg3->unk94 - arg3->unk84) * temp_f0) + arg3->unk84); } -void func_8034DA7C(s32 *mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3) { +void func_8034DA7C(s32 mesh_id, BKVtxRef *src, Vtx *dst, Struct6Ds *arg3) { f32 sp24[3]; f32 sp18[3]; diff --git a/src/core2/code_D5D10.c b/src/core2/code_D5D10.c index f9318944..4c14f678 100644 --- a/src/core2/code_D5D10.c +++ b/src/core2/code_D5D10.c @@ -2,7 +2,7 @@ #include "functions.h" #include "variables.h" -extern void func_802DB4E0(s32, s32); +extern void func_802DB4E0(ActorMarker *, s32); extern void func_802DABA0(ParticleEmitter *pCtrl, f32 position[3], f32 scale, enum asset_e model_id); typedef struct { @@ -26,8 +26,8 @@ typedef struct { s16 unk28; s16 unk2A; f32 unk2C; - void (*unk30)(s32, s32); - void (*unk34)(s32, s32); + void (*unk30)(ActorMarker* marker, s32); + void (*unk34)(ActorMarker* marker, s32); }ActorLocal_Skeleton; void chskeleton_update(Actor *this); diff --git a/src/core2/code_DAAA0.c b/src/core2/code_DAAA0.c index a5063fa1..57d47e42 100644 --- a/src/core2/code_DAAA0.c +++ b/src/core2/code_DAAA0.c @@ -7,6 +7,7 @@ extern void anSeq_clear(VLA**); extern void anSeq_PushStep_2Arg(s32, f32, void (*)(s32,s32), s32, s32); extern void anSeq_PushStep_3Arg(s32 , f32, void (*)(s32, s32,s32), s32, s32, s32); vector(AnSeqElement) **anSeq_new(void); +u8 *func_8032479C(void); //TODO import from cutscenes/code_0.h extern Struct63s D_8038D904[]; diff --git a/src/core2/code_DB010.c b/src/core2/code_DB010.c index e11e5262..195bf76c 100644 --- a/src/core2/code_DB010.c +++ b/src/core2/code_DB010.c @@ -181,7 +181,7 @@ void func_8036247C(f32 arg0[3]) { particleEmitter_setSprite(pCtrl, ASSET_70D_SPRITE_SMOKE_1); particleEmitter_setStartingFrameRange(pCtrl, 1, 6); - particleEmitter_setRGB(pCtrl, &D_80373634); + particleEmitter_setRGB(pCtrl, D_80373634); particleEmitter_setAlpha(pCtrl, 0x64); particleEmitter_setPosition(pCtrl, arg0); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_80373670); @@ -261,7 +261,7 @@ void func_80362770(f32 arg0[3]) { particleEmitter_setSprite(pCtrl, ASSET_714_SPRITE_UNKNOWN); particleEmitter_setStartingFrameRange(pCtrl, 7, 8); - particleEmitter_setRGB(pCtrl, &D_803737B4); + particleEmitter_setRGB(pCtrl, D_803737B4); particleEmitter_setPosition(pCtrl, arg0); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_803737F0); func_802EFC28(pCtrl, &D_803737C0); diff --git a/src/core2/code_DC4B0.c b/src/core2/code_DC4B0.c index 0c670033..1ee1eb14 100644 --- a/src/core2/code_DC4B0.c +++ b/src/core2/code_DC4B0.c @@ -14,18 +14,18 @@ ActorInfo D_80373DC0= { /* .code */ void func_80363440(void){ - func_8034DEB4(func_8034C528(0x1F1), -5000.0f); + func_8034DEB4(&func_8034C528(0x1F1)->type_6D, -5000.0f); } void func_80363470(void){ - func_8034DEB4(func_8034C528(0x1F2), -5000.0f); - func_8034DEB4(func_8034C528(0x1F3), 0.0f); + func_8034DEB4(&func_8034C528(0x1F2)->type_6D, -5000.0f); + func_8034DEB4(&func_8034C528(0x1F3)->type_6D, 0.0f); func_80363440(); } void func_803634BC(void){ - func_8034DEB4(func_8034C528(0x1F3), -5000.0f); - func_8034DEB4(func_8034C528(0x1F2), 0.0f); + func_8034DEB4(&func_8034C528(0x1F3)->type_6D, -5000.0f); + func_8034DEB4(&func_8034C528(0x1F2)->type_6D, 0.0f); } void func_80363500(Actor *this){ diff --git a/src/core2/commonParticleTypeMap.c b/src/core2/commonParticleTypeMap.c index c1762ee9..1382710c 100644 --- a/src/core2/commonParticleTypeMap.c +++ b/src/core2/commonParticleTypeMap.c @@ -5,6 +5,7 @@ extern GenFunction_0 commonParticleType_getFreeMethod(enum common_particle_e); extern GenFunction_0 commonParticleType_getUpdateMethod(enum common_particle_e); +extern GenFunction_0 commonParticleType_getInitMethod(enum common_particle_e id); typedef struct { u8 prevParticleType; @@ -56,7 +57,7 @@ void commonParticleTypeMap_freeByIndex(u8 index) { } void commonParticleTypeMap_advanceParticleType(u8 index, enum common_particle_e nextType) { - void (*funcPtr)(void); + GenFunction_0 funcPtr; if (!nextType) { return; diff --git a/src/core2/dustemitter.c b/src/core2/dustemitter.c index 336ceaff..197f8bef 100644 --- a/src/core2/dustemitter.c +++ b/src/core2/dustemitter.c @@ -3,7 +3,7 @@ #include "variables.h" #include "core2/particle.h" - +#include "core2/particleemittermanager.h" #include "core2/dustemitter.h" s16 emitterAssets[EMITTER_COUNT] = { @@ -18,7 +18,7 @@ s32 dustEmitter_returnGiven(s32 value) { return value; } -void dustEmitter_empty(ParticleEmitter *this) { +void dustEmitter_empty(s32 arg0) { return; }