From 4bf7028254617a39bfc9755cdf35ac4638330ce7 Mon Sep 17 00:00:00 2001 From: Owlenuff Date: Tue, 1 Oct 2024 10:27:28 +0200 Subject: [PATCH] Documented ch Tumblar --- include/core2/core2.h | 2 +- include/enums.h | 5 +- src/CC/code_13C0.c | 2 +- src/MMM/code_2040.c | 2 +- src/MMM/code_3D50.c | 12 +- src/MMM/code_47D0.c | 279 +++++++++++++++++++++----------------- src/MMM/code_5000.c | 4 +- src/core1/code_10A00.c | 2 +- src/core1/code_18350.c | 19 ++- src/core1/code_2FA0.c | 4 +- src/core2/ch/climbBase.c | 6 +- src/core2/ch/gameSelect.c | 4 +- src/core2/code_13FC0.c | 4 +- src/core2/code_14420.c | 2 +- src/core2/code_4C020.c | 6 +- src/core2/code_5C870.c | 2 +- src/core2/code_91E10.c | 2 +- src/core2/code_C9F00.c | 17 +-- src/core2/code_CB050.c | 2 +- src/core2/gc/pauseMenu.c | 4 +- src/lair/ch/brentilda.c | 4 +- 21 files changed, 210 insertions(+), 174 deletions(-) diff --git a/include/core2/core2.h b/include/core2/core2.h index 0c401741..7fe1faca 100644 --- a/include/core2/core2.h +++ b/include/core2/core2.h @@ -8,7 +8,7 @@ void func_80351A04(Struct68s *arg0, s32 arg1); void func_80351A14(Struct68s *arg0, Struct68DrawMethod arg1); -void func_8035179C(Struct68s* arg0, f32 arg1[3]); +void func_8035179C_copyPosition(Struct68s* arg0, f32 arg1[3]); void func_80351814(Struct68s *arg0, f32 arg1[3]); f32 func_80351830(Struct68s *arg0); diff --git a/include/enums.h b/include/enums.h index 79ecf709..6c1421d0 100644 --- a/include/enums.h +++ b/include/enums.h @@ -2307,7 +2307,7 @@ enum mm_specific_flags { enum mmm_specific_flags { MMM_SPECIFIC_FLAG_0_UNKNOWN, - MMM_SPECIFIC_FLAG_1_UNKNOWN, + MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN, MMM_SPECIFIC_FLAG_2_UNKNOWN, MMM_SPECIFIC_FLAG_3_UNKNOWN, MMM_SPECIFIC_FLAG_4_UNKNOWN, @@ -4044,6 +4044,9 @@ enum asset_e ASSET_AD5_TEXT_UNKNOWN, ASSET_AD6_TEXT_UNKNOWN, + ASSET_ADA_TEXT_UNKNOWN = 0xada, + ASSET_ADB_TEXT_UNKNOWN, + ASSET_ADD_TEXT_UNKNOWN = 0xadd, ASSET_ADE_TEXT_LOGGO_AS_BEAR, ASSET_ADF_TEXT_ENTER_LOGGO, diff --git a/src/CC/code_13C0.c b/src/CC/code_13C0.c index 6607692c..3723775d 100644 --- a/src/CC/code_13C0.c +++ b/src/CC/code_13C0.c @@ -121,7 +121,7 @@ void CC_func_80387A40(Struct_CC_13C0_1* arg0, Struct68s* arg1, f32 arg2) { } } if ((arg0->unk4 == 0) || (arg0->unk4 == 1)) { - func_8035179C(arg1, sp38); + func_8035179C_copyPosition(arg1, sp38); func_80351814(arg1, sp2C); sp44[0] = 0.0f; sp44[1] = 0.0f; diff --git a/src/MMM/code_2040.c b/src/MMM/code_2040.c index cb737ed6..a375194b 100644 --- a/src/MMM/code_2040.c +++ b/src/MMM/code_2040.c @@ -287,7 +287,7 @@ void func_80388BDC(Actor *this) { f64 phi_f0; func_802D3D74(this); - mapSpecificFlags_set(MMM_SPECIFIC_FLAG_1_UNKNOWN, BOOL((this->yaw > 260.0f) && (this->yaw < 330.0f))); + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN, BOOL((this->yaw > 260.0f) && (this->yaw < 330.0f))); if (!this->volatile_initialized) { if (this->yaw != 0.0f) { this->lifetime_value = 0.5f; diff --git a/src/MMM/code_3D50.c b/src/MMM/code_3D50.c index ead8b49a..a8621dde 100644 --- a/src/MMM/code_3D50.c +++ b/src/MMM/code_3D50.c @@ -181,7 +181,7 @@ void func_8038A82C(Struct_MMM_3D50_0 * arg0){ if(arg0->unk2 == 'X'){ MMM_func_8038A54C(arg0, 1); player_getPosition(sp44); - func_8038AD10(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp38); + chTumblar_copyPosition(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp38); sp38[1] = sp44[1]; func_8028F620(sp38, 300.0f, -1500.0f); return; @@ -192,7 +192,7 @@ void func_8038A82C(Struct_MMM_3D50_0 * arg0){ MMM_func_8038A54C(arg0, 3); if( iPtr->unk0[iPtr->unk4] == 0){ func_8038A140(5); - func_8038AF3C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10); + chTumblar_congratulate(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10); func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 32000); } else{ @@ -249,7 +249,7 @@ void func_8038AA44(void){ func_8038A750(); if( MMM_D_8038C510.unk8 == 1 && MMM_D_8038C510.unkC != NULL - && func_8038AD4C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10) + && chTumblar_isBanjoAbove(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10) ){ if(!levelSpecificFlags_get(0x2f)){ levelSpecificFlags_set(0x2f, TRUE); @@ -265,9 +265,9 @@ void func_8038AA44(void){ func_8038A140(4); } else if( MMM_D_8038C510.unkC != NULL - && func_8038AD4C(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10) + && chTumblar_isBanjoAbove(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10) ){ - func_8038AD10(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp28); + chTumblar_copyPosition(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10, sp28); tmp_v0 = func_8033F3C0(MMM_D_8038C510.unk0, sp28); if(tmp_v0){ sp24 = func_8038A26C(tmp_v0); @@ -286,7 +286,7 @@ void func_8038AA44(void){ }//L8038AB7C if( MMM_D_8038C510.unk8 == 5 - && func_8038AD38(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10) + && chTumblar_isDisappeared(MMM_D_8038C510.unkC, MMM_D_8038C510.unk10) ){ func_8038A140(6); } diff --git a/src/MMM/code_47D0.c b/src/MMM/code_47D0.c index 252648ec..b2d971d2 100644 --- a/src/MMM/code_47D0.c +++ b/src/MMM/code_47D0.c @@ -3,16 +3,25 @@ #include "variables.h" #include +/* extern functions */ extern void sfxsource_setSampleRate(u8, s32); -extern f32 func_80258640(f32[3], f32[3]); +extern f32 ml_vec3f_horizontal_distance_zero_likely(f32[3], f32[3]); + +/* data */ +enum chTumblar_state_e { + TUMBLAR_STATE_0_IDLE, + TUMBLAR_STATE_1_CONGRATULATING, + TUMBLAR_STATE_2_BREAKING, + TUMBLAR_STATE_3_DISAPPEARED +}; typedef struct { - ActorMarker *unk0; - u8 unk4; - u8 pad5[3]; - f32 unk8; - f32 unkC[3]; -}Struct_MMM_47D0_0; + ActorMarker *jiggy_marker; + u8 state; + u8 unused[3]; + f32 timer; + f32 velocity[3]; +} Struct_MMM_47D0_0; /* .code */ void MMM_func_8038ABC0(s32 arg0) { @@ -21,172 +30,198 @@ void MMM_func_8038ABC0(s32 arg0) { } } -void func_8038AC04(void){ - if((*(u32*)PHYS_TO_K1(0x1D0)) - 0x356BAAAE){ +void func_8038AC04(void) { + if ((*(u32 *) PHYS_TO_K1(0x1D0)) - 0x356BAAAE) { MMM_func_8038ABC0(0x820); } } -//BREAK???========== -void func_8038AC40(Struct_MMM_47D0_0 *arg0, struct struct_68_s *arg1, f32 position[3], f32 rotation[3], f32 scale, BKModelBin *model_bin, Gfx **gfx, Mtx **mtx, Vtx **vtx){ - u8 temp_v0; - - if (arg0->unk4 != 3) { - if ((arg0->unk4 == 0) || (arg0->unk4 == 1)) { +void chTumblar_draw(Struct_MMM_47D0_0 *arg0, struct struct_68_s *arg1, f32 position[3], f32 rotation[3], f32 scale, BKModelBin *model_bin, Gfx **gfx, Mtx **mtx, Vtx **vtx) { + if (arg0->state != TUMBLAR_STATE_3_DISAPPEARED) { + if (arg0->state == TUMBLAR_STATE_0_IDLE || arg0->state == TUMBLAR_STATE_1_CONGRATULATING) { modelRender_setAlpha(0xFF); - } else if (arg0->unk4 == 2) { - modelRender_setAlpha((s32)((1 - ((f64)arg0->unk8 * 1)) * 255.0)); } + else if (arg0->state == TUMBLAR_STATE_2_BREAKING) { + modelRender_setAlpha((s32)((1 - ((f64) arg0->timer * 1)) * 255.0)); + } + modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL); modelRender_draw(gfx, mtx, position, rotation, scale, NULL, model_bin); } } -void func_8038AD10(s32 arg0, s32 arg1, f32 arg2[3]) { - func_8035179C(arg1, arg2); +void chTumblar_copyPosition(s32 arg0, s32 arg1, f32 arg2[3]) { + func_8035179C_copyPosition(arg1, arg2); } -bool func_8038AD38(Struct_MMM_47D0_0 *arg0, s32 arg1){ - return arg0->unk4 == 3; +bool chTumblar_isDisappeared(Struct_MMM_47D0_0 *arg0, s32 arg1) { + return arg0->state == TUMBLAR_STATE_3_DISAPPEARED; } -bool func_8038AD4C(s32 arg0, s32 arg1) { +bool chTumblar_isBanjoAbove(s32 arg0, s32 arg1) { f32 plyr_pos[3]; - f32 sp18[3]; + f32 position[3]; player_getPosition(plyr_pos); - func_8035179C(arg1, sp18); - return func_803518D4(arg1) - && (func_80258640(sp18, plyr_pos) < 40.0f) - && (player_getTransformation() == TRANSFORM_1_BANJO) - && (func_8028ECAC() == 0); + func_8035179C_copyPosition(arg1, position); + + return func_803518D4(arg1) && + ml_vec3f_horizontal_distance_zero_likely(position, plyr_pos) < 40.0f && + player_getTransformation() == TRANSFORM_1_BANJO && + func_8028ECAC() == 0; } -void MMM_func_8038ADF0(Struct_MMM_47D0_0 *arg0, Struct68s *arg1) { - u8 sp3F; - f32 sp38; +void chTumblar_init(Struct_MMM_47D0_0 *arg0, Struct68s *arg1) { + u8 sfxsource_index; + f32 distance_to_jiggy; Actor *jiggy; - f32 sp28[3]; + f32 position[3]; + + arg0->state = TUMBLAR_STATE_0_IDLE; + arg0->timer = 0.0f; + + arg0->velocity[0] = 0.0f; + arg0->velocity[1] = 0.0f; + arg0->velocity[2] = 0.0f; - arg0->unk4 = 0; - arg0->unk8 = 0.0f; - arg0->unkC[0] = 0.0f; - arg0->unkC[1] = 0.0f; - arg0->unkC[2] = 0.0f; func_8038AA30(arg0, arg1); - func_80351A14(arg1, (Struct68DrawMethod)func_8038AC40); - sp3F = func_80351758(arg1); - sfxsource_setSfxId(sp3F, SFX_3EC_CCW_DOOR_OPENING); - func_8030DD14(sp3F, 3); - sfxsource_playSfxAtVolume(sp3F, 0.6f); - sfxsource_setSampleRate(sp3F, 0); - func_8030E2C4(sp3F); - func_8035179C(arg1, sp28); - sp38 = 500.0f; - jiggy = actorArray_findClosestActorFromActorId(sp28, ACTOR_46_JIGGY, -1, &sp38); + func_80351A14(arg1, (Struct68DrawMethod) chTumblar_draw); + + sfxsource_index = func_80351758_getSfxsourceIndex(arg1); + sfxsource_setSfxId(sfxsource_index, SFX_3EC_CCW_DOOR_OPENING); + func_8030DD14(sfxsource_index, 3); + sfxsource_playSfxAtVolume(sfxsource_index, 0.6f); + sfxsource_setSampleRate(sfxsource_index, 0); + func_8030E2C4(sfxsource_index); + + func_8035179C_copyPosition(arg1, position); + distance_to_jiggy = 500.0f; + jiggy = actorArray_findClosestActorFromActorId(position, ACTOR_46_JIGGY, -1, &distance_to_jiggy); + if (jiggy != NULL) { - arg0->unk0 = jiggy->marker; - } else { - arg0->unk0 = NULL; + arg0->jiggy_marker = jiggy->marker; + } + else { + arg0->jiggy_marker = NULL; } - if (arg0->unk0 != NULL) { - arg0->unk0->collidable = FALSE; + if (arg0->jiggy_marker != NULL) { + arg0->jiggy_marker->collidable = FALSE; } + if (jiggyscore_isCollected(JIGGY_62_MMM_TUMBLAR)) { func_80351A04(arg1, 1); - arg0->unk4 = 3; + arg0->state = TUMBLAR_STATE_3_DISAPPEARED; } } -void func_8038AF0C(ActorMarker *marker, enum asset_e text_id, s32 arg2) { - mapSpecificFlags_set(MMM_SPECIFIC_FLAG_1_UNKNOWN, TRUE); +void __chTumblar_congratulationTextCallback(ActorMarker *marker, enum asset_e text_id, s32 arg2) { + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN, TRUE); } -void func_8038AF3C(Struct_MMM_47D0_0 *arg0, s32 arg1) { - gcdialog_showText(0xADB, 4, NULL, arg0->unk0, func_8038AF0C, NULL); - arg0->unk4 = 1; +void chTumblar_congratulate(Struct_MMM_47D0_0 *arg0, s32 arg1) { + gcdialog_showText(ASSET_ADB_TEXT_UNKNOWN, 4, NULL, arg0->jiggy_marker, __chTumblar_congratulationTextCallback, NULL); + arg0->state = TUMBLAR_STATE_1_CONGRATULATING; } -void func_8038AF90(Struct_MMM_47D0_0 *arg0, Struct68s *arg1, f32 arg2) { - f32 sp7C[3]; - f32 sp70[3]; - f32 sp64[3]; - Actor *temp_v0_2; - f32 sp54[3]; - f32 sp48[3]; - f32 sp40[2]; - s32 sp3C; - u8 sp38; +void chTumblar_update(Struct_MMM_47D0_0 *arg0, Struct68s *arg1, f32 tick) { + f32 viewport_position[3]; + f32 viewport_rotation[3]; + f32 direction[3]; + Actor *jiggy; + f32 position[3]; + f32 plyr_pos[3]; + f32 joystick[2]; + s32 is_banjo_above; + u8 sfxsource_index; + arg0->timer += tick; - arg0->unk8 += arg2; - if (arg0->unk4 == 0) { - func_8035179C(arg1, sp54); - func_8024E71C(0, sp40); - sp3C = func_8038AD4C(arg0, arg1); - if (sp3C) { + if (arg0->state == TUMBLAR_STATE_0_IDLE) { + func_8035179C_copyPosition(arg1, position); + controller_getJoystick(0, joystick); + is_banjo_above = chTumblar_isBanjoAbove(arg0, arg1); + + if (is_banjo_above) { func_8028F66C(BS_INTR_D_SURF); } - if (sp3C && ((sp40[0] != 0.0f) || (sp40[1] != 0.0f))) { - viewport_getRotation_vec3f(sp70); - sp64[0] = sp40[0]; - sp64[1] = 0.0f; - sp64[2] = -sp40[1]; - ml_vec3f_yaw_rotate_copy(sp64, sp64, sp70[1]); - arg0->unkC[0] += sp64[0] * 2500.0f * arg2; - arg0->unkC[2] += sp64[2] * 2500.0f * arg2; - } else { - arg0->unkC[0] *= 0.7; - arg0->unkC[2] *= 0.7; + + if (is_banjo_above && (joystick[0] != 0.0f || joystick[1] != 0.0f)) { + viewport_getRotation_vec3f(viewport_rotation); + + direction[0] = joystick[0]; + direction[1] = 0.0f; + direction[2] = -joystick[1]; + + ml_vec3f_yaw_rotate_copy(direction, direction, viewport_rotation[1]); + arg0->velocity[0] += direction[0] * 2500.0f * tick; + arg0->velocity[2] += direction[2] * 2500.0f * tick; } - if (LENGTH_VEC3F(arg0->unkC) > 400.0f) { - ml_vec3f_set_length(arg0->unkC, 400.0f); + else { + arg0->velocity[0] *= 0.7; + arg0->velocity[2] *= 0.7; } - sp54[0] += arg0->unkC[0] * arg2; - sp54[2] += arg0->unkC[2] * arg2; - func_80351B28(arg1, sp54); - func_8035179C(arg1, sp54); - if (arg0->unk0 != NULL) { - viewport_getPosition_vec3f(sp7C); - sp64[0] = sp54[0] - sp7C[0]; - sp64[2] = sp54[2] - sp7C[2]; - sp64[1] = 0.0f; - ml_vec3f_normalize(sp64); - temp_v0_2 = marker_getActor(arg0->unk0); - temp_v0_2->position[0] = sp54[0] + (sp64[0] * 20.0f); - temp_v0_2->position[2] = sp54[2] + (sp64[2] * 20.0f); + + if (LENGTH_VEC3F(arg0->velocity) > 400.0f) { + ml_vec3f_set_length(arg0->velocity, 400.0f); } - } else if (arg0->unk4 == 2) { - if (arg0->unk8 >= 1.0f) { - arg0->unk4 = 3U; - if (arg0->unk0 != NULL) { - arg0->unk0->collidable = TRUE; + + position[0] += arg0->velocity[0] * tick; + position[2] += arg0->velocity[2] * tick; + + func_80351B28(arg1, position); + func_8035179C_copyPosition(arg1, position); + + if (arg0->jiggy_marker != NULL) { + viewport_getPosition_vec3f(viewport_position); + + direction[0] = position[0] - viewport_position[0]; + direction[2] = position[2] - viewport_position[2]; + direction[1] = 0.0f; + ml_vec3f_normalize(direction); + + jiggy = marker_getActor(arg0->jiggy_marker); + jiggy->position[0] = position[0] + (direction[0] * 20.0f); + jiggy->position[2] = position[2] + (direction[2] * 20.0f); + } + } + else if (arg0->state == TUMBLAR_STATE_2_BREAKING) { + if (arg0->timer >= 1.0f) { + arg0->state = TUMBLAR_STATE_3_DISAPPEARED; + + if (arg0->jiggy_marker != NULL) { + arg0->jiggy_marker->collidable = TRUE; } + func_80351A04(arg1, 1); } - arg0->unkC[0] *= 0.7; - arg0->unkC[2] *= 0.7; + + arg0->velocity[0] *= 0.7; + arg0->velocity[2] *= 0.7; } - if (arg0->unk4 == 1) { - sp38 = func_80351758(arg1); - sfxsource_setSampleRate(sp38, 0); - } else { - sp38 = func_80351758(arg1); - sfxsource_setSampleRate(sp38, (s32) ((LENGTH_VEC3F(arg0->unkC) / 400.0) * 15000.0)); + + if (arg0->state == TUMBLAR_STATE_1_CONGRATULATING) { + sfxsource_index = func_80351758_getSfxsourceIndex(arg1); + sfxsource_setSampleRate(sfxsource_index, 0); } - player_getPosition(sp48); - func_8035179C(arg1, sp54); - if (!mapSpecificFlags_get(MMM_SPECIFIC_FLAG_0_UNKNOWN) && (arg0->unk4 == 0) && (func_80258640(sp54, sp48) < 250.0f)){ - if(gcdialog_showText(0xADA, 0, NULL, NULL, NULL, NULL)) { + else { + sfxsource_index = func_80351758_getSfxsourceIndex(arg1); + sfxsource_setSampleRate(sfxsource_index, (s32)((LENGTH_VEC3F(arg0->velocity) / 400.0) * 15000.0)); + } + + player_getPosition(plyr_pos); + func_8035179C_copyPosition(arg1, position); + + if (!mapSpecificFlags_get(MMM_SPECIFIC_FLAG_0_UNKNOWN) && arg0->state == TUMBLAR_STATE_0_IDLE && ml_vec3f_horizontal_distance_zero_likely(position, plyr_pos) < 250.0f) { + if (gcdialog_showText(ASSET_ADA_TEXT_UNKNOWN, 0, NULL, NULL, NULL, NULL)) { mapSpecificFlags_set(0, TRUE); } } - if ((arg0->unk4 == 1) && mapSpecificFlags_get(MMM_SPECIFIC_FLAG_1_UNKNOWN)) { - arg0->unk4 = 2U; - arg0->unk8 = 0.0f; - mapSpecificFlags_set(MMM_SPECIFIC_FLAG_1_UNKNOWN, FALSE); - FUNC_8030E8B4(SFX_11B_TUMBLAR_DISAPPEARING_1, 1.0f, 30000, sp54, 500, 2500); + if (arg0->state == TUMBLAR_STATE_1_CONGRATULATING && mapSpecificFlags_get(MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN)) { + arg0->state = TUMBLAR_STATE_2_BREAKING; + arg0->timer = 0.0f; + mapSpecificFlags_set(MMM_SPECIFIC_FLAG_TUMBLAR_BROKEN, FALSE); + FUNC_8030E8B4(SFX_11B_TUMBLAR_DISAPPEARING_1, 1.0f, 30000, position, 500, 2500); } } diff --git a/src/MMM/code_5000.c b/src/MMM/code_5000.c index 6a789f89..7a055263 100644 --- a/src/MMM/code_5000.c +++ b/src/MMM/code_5000.c @@ -74,7 +74,7 @@ void func_8038B630(Struct5Fs *arg0, Struct68s *arg1){ f32 sp20; sp20 = alCents2Ratio(func_80389BBC()*100); - phi_s0 = func_80351758(arg1); + phi_s0 = func_80351758_getSfxsourceIndex(arg1); func_8030E394(phi_s0); sfxsource_playSfxAtVolume(phi_s0, sp20); sfxsource_setSfxId(phi_s0, 0x3f3); @@ -118,7 +118,7 @@ void func_8038B790(Struct5Fs *arg0, Struct68s *arg1, f32 arg2) { if (arg0->unk14 <= 0.0f) { func_80351954(arg1); } else if (arg0->unk14 <= 1.0f) { - sfxsource_setSampleRate(func_80351758(arg1), (s32)(arg0->unk14 * 32767.0f)); + sfxsource_setSampleRate(func_80351758_getSfxsourceIndex(arg1), (s32)(arg0->unk14 * 32767.0f)); } } diff --git a/src/core1/code_10A00.c b/src/core1/code_10A00.c index 8cbed3d2..3f50ec47 100644 --- a/src/core1/code_10A00.c +++ b/src/core1/code_10A00.c @@ -149,7 +149,7 @@ void func_8024E6E0(s32 controller_index, s32 *dst[4]){ dst[3] = D_80281138[controller_index].unk24[3]; } -void func_8024E71C(s32 controller_index, f32 dst[2]){ +void controller_getJoystick(s32 controller_index, f32 dst[2]){ if(func_802E4A08()){ dst[0] = D_80281250[controller_index].joystick[0]; dst[1] = D_80281250[controller_index].joystick[1]; diff --git a/src/core1/code_18350.c b/src/core1/code_18350.c index 6216a429..3f586876 100644 --- a/src/core1/code_18350.c +++ b/src/core1/code_18350.c @@ -345,14 +345,12 @@ void ml_vec3f_roll_rotate_copy(f32 dst[3], f32 src[3], f32 roll) dst[0] = val; } -void ml_vec3f_set_length(f32 arg0[3], f32 arg1) -{ - f32 length = LENGTH_VEC3F(arg0); +void ml_vec3f_set_length(f32 vec[3], f32 length) { + f32 vec_length = LENGTH_VEC3F(vec); - if (length != 0) - { - f32 inv_length = arg1 / length; - TUPLE_SCALE_COPY(arg0, arg0, inv_length) + if (vec_length != 0) { + f32 inv_length = length / vec_length; + TUPLE_SCALE_COPY(vec, vec, inv_length) } } @@ -942,14 +940,13 @@ int func_802585E0(s32 vec[3], s32 minX, s32 minY, s32 minZ, s32 maxX, s32 maxY, && vec[2] > minZ && vec[2] < maxZ; } -//ml_vec3f_horizontal_distance_zero_likely -f32 func_80258640(f32 vec1[3], f32 vec2[3]) -{ +f32 ml_vec3f_horizontal_distance_zero_likely(f32 vec1[3], f32 vec2[3]) { f32 dX = vec1[0] - vec2[0]; f32 dZ = vec1[2] - vec2[2]; - if (dX != 0 || dZ != 0) + if (dX != 0 || dZ != 0) { return gu_sqrtf(_SQ2(dX, dZ)); + } return 0; } diff --git a/src/core1/code_2FA0.c b/src/core1/code_2FA0.c index 0ed7bc46..17d87b9e 100644 --- a/src/core1/code_2FA0.c +++ b/src/core1/code_2FA0.c @@ -14,7 +14,7 @@ void func_802409C0(f32 arg0[3], f32 arg1){ f32 dt; dt = time_getDelta()*arg1; - func_8024E71C(0, sp28); + controller_getJoystick(0, sp28); sp30[0] = sp28[0] * dt; sp30[1] = 0.0f; @@ -46,7 +46,7 @@ void func_80240AC8(f32 arg0[3], f32 arg1){ f32 dt; dt = time_getDelta()*arg1; - func_8024E71C(0, sp28); + controller_getJoystick(0, sp28); if(0.0f != sp28[0] || 0.0f != sp28[1]){ D_80275860++; diff --git a/src/core2/ch/climbBase.c b/src/core2/ch/climbBase.c index 6859a7b0..b1e52759 100644 --- a/src/core2/ch/climbBase.c +++ b/src/core2/ch/climbBase.c @@ -5,7 +5,7 @@ void func_802D77D4(Actor *this); extern void player_setClimbParams(f32[3], f32[3], f32, u32); -extern f32 func_80258640(f32[3], f32[3]); +extern f32 ml_vec3f_horizontal_distance_zero_likely(f32[3], f32[3]); typedef struct { f32 unk0[3]; @@ -40,8 +40,8 @@ s32 func_802D76E0(Actor *this, f32 *arg1) { return FALSE; } if (sp28 && temp_v0) { - sp30 = func_80258640(this->position, sp40); - if (func_80258640(this->position, sp34) < sp30) { + sp30 = ml_vec3f_horizontal_distance_zero_likely(this->position, sp40); + if (ml_vec3f_horizontal_distance_zero_likely(this->position, sp34) < sp30) { sp28 = 0; } } diff --git a/src/core2/ch/gameSelect.c b/src/core2/ch/gameSelect.c index 570c89cb..5910fb8f 100644 --- a/src/core2/ch/gameSelect.c +++ b/src/core2/ch/gameSelect.c @@ -26,7 +26,7 @@ extern void warp_smExitBanjosHouse(s32, s32); extern void func_80335110(s32); extern void func_8024E60C(s32, s32[3]); -extern void func_8024E71C(s32, f32*); +extern void controller_getJoystick(s32, f32*); extern char *gcpausemenu_TimeToA(int); extern struct5Bs *func_803097A0(void); @@ -334,7 +334,7 @@ void func_802C4C14(Actor *this){ else{//L802C4D24 func_8024E60C(0, sp74); func_8024E55C(0, sp5C); - func_8024E71C(0, &sp54); + controller_getJoystick(0, &sp54); switch(this->state){ case 2: case 5: diff --git a/src/core2/code_13FC0.c b/src/core2/code_13FC0.c index dd2d4bc7..df1df256 100644 --- a/src/core2/code_13FC0.c +++ b/src/core2/code_13FC0.c @@ -3,7 +3,7 @@ #include "variables.h" #include -extern void func_8024E71C(s32, f32*); +extern void controller_getJoystick(s32, f32*); extern f32 ml_acosf(f32); extern f32 player_getYaw(void); extern void particleEmitter_setSphericalParticleVelocityRange(ParticleEmitter *this, f32 pitch_min, f32 yaw_min, f32 radial_min, f32 pitch_max, f32 yaw_max, f32 radial_max); @@ -79,7 +79,7 @@ void func_8029B11C(void) { } void func_8029B174(void) { - func_8024E71C(0, &D_8037D1A0.unk1C); + controller_getJoystick(0, &D_8037D1A0.unk1C); if (D_8037D1A0.unk34) { D_8037D1A0.unk1C[0] = D_8037D1A0.unk1C[1] = 0.0f; } diff --git a/src/core2/code_14420.c b/src/core2/code_14420.c index 6e607c4f..dfd1b811 100644 --- a/src/core2/code_14420.c +++ b/src/core2/code_14420.c @@ -7,7 +7,7 @@ #include "core2/ba/physics.h" #include -extern void func_8024E71C(s32, f32*); +extern void controller_getJoystick(s32, f32*); extern f32 ml_acosf(f32); extern f32 player_getYaw(void); extern void particleEmitter_setSphericalParticleVelocityRange(ParticleEmitter *this, f32 pitch_min, f32 yaw_min, f32 radial_min, f32 pitch_max, f32 yaw_max, f32 radial_max); diff --git a/src/core2/code_4C020.c b/src/core2/code_4C020.c index 28a92ae6..62a78c1a 100644 --- a/src/core2/code_4C020.c +++ b/src/core2/code_4C020.c @@ -4,7 +4,7 @@ #include "SnS.h" -extern f32 func_80258640(f32 [3], f32[3]); +extern f32 ml_vec3f_horizontal_distance_zero_likely(f32 [3], f32[3]); extern void func_8025A788(enum comusic_e, f32, f32); extern void func_8031CC40(enum map_e, s32); extern void fxRipple_802F363C(f32); @@ -565,13 +565,13 @@ void func_802D4680(Actor *this){ player_getPosition(sp1C); switch(this->state){ case 0: - if(150.0f < func_80258640(this->position, sp1C)){ + if(150.0f < ml_vec3f_horizontal_distance_zero_likely(this->position, sp1C)){ subaddie_set_state(this, 1); D_803676AC = 0; } break; case 1: - if(func_80258640(this->position, sp1C) < 150.0f && func_8028F20C()){ + if(ml_vec3f_horizontal_distance_zero_likely(this->position, sp1C) < 150.0f && func_8028F20C()){ if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){ if(map_get() == MAP_8E_GL_FURNACE_FUN){ volatileFlag_set(VOLATILE_FLAG_0_IN_FURNACE_FUN_QUIZ, 0); diff --git a/src/core2/code_5C870.c b/src/core2/code_5C870.c index 66e164e4..38424f1f 100644 --- a/src/core2/code_5C870.c +++ b/src/core2/code_5C870.c @@ -626,7 +626,7 @@ s32 getGameMode(void){ int func_802E4A08(void){ return (D_8037E8E0.game_mode == GAME_MODE_6_FILE_PLAYBACK) - || (D_8037E8E0.game_mode == 5) + || (D_8037E8E0.game_mode == GAME_MODE_5_UNKNOWN) || (D_8037E8E0.game_mode == GAME_MODE_7_ATTRACT_DEMO) || (D_8037E8E0.game_mode == GAME_MODE_8_BOTTLES_BONUS) || (D_8037E8E0.game_mode == GAME_MODE_9_BANJO_AND_KAZOOIE) diff --git a/src/core2/code_91E10.c b/src/core2/code_91E10.c index 023da4f4..3f663217 100644 --- a/src/core2/code_91E10.c +++ b/src/core2/code_91E10.c @@ -488,7 +488,7 @@ void func_80319EA4(void) { return; func_8024E55C(0, sp58); - func_8024E71C(0, sp4C); + controller_getJoystick(0, sp4C); for(phi_s0 = 0; phi_s0 < 4; phi_s0++){ gczoombox_update(D_803830E0->unk24[phi_s0]); } diff --git a/src/core2/code_C9F00.c b/src/core2/code_C9F00.c index d2561800..495f1872 100644 --- a/src/core2/code_C9F00.c +++ b/src/core2/code_C9F00.c @@ -41,7 +41,7 @@ Struct_Core2_C9F00_1 D_803725C0[] = { void func_80351DE0(Struct6Bs *, Struct68s *); -extern void MMM_func_8038ADF0(void *, Struct68s *); +extern void chTumblar_init(void *, Struct68s *); extern void func_80387940(void *, Struct68s *); extern void GV_func_80387960(void *, Struct68s *); extern void func_80387980(void *, Struct68s *); @@ -53,7 +53,7 @@ extern void CC_func_80387A20(void *, Struct68s *); extern void func_80351FE0(void *, Struct68s *); void func_80351E60(Struct6Bs *, Struct68s *, f32); -extern void func_8038AF90(void *, Struct68s *, f32); +extern void chTumblar_update(void *, Struct68s *, f32); extern void func_8038B790(void *, Struct68s *, f32); extern void CCW_func_80387A40(void *, Struct68s *, f32); extern void func_80352114(void *, Struct68s *, f32); @@ -61,7 +61,7 @@ extern void func_80352114(void *, Struct68s *, f32); Struct_Core2_C9F00_0 D_803725F4[] = { { NULL, NULL}, {func_80351DE0, func_80351E60}, - {MMM_func_8038ADF0, func_8038AF90}, + {chTumblar_init, chTumblar_update}, { NULL, NULL}, { NULL, func_8038B790}, {func_80387940, CCW_func_80387A40}, @@ -280,10 +280,11 @@ bool func_80351724(void * arg0){ return TRUE; } -s32 func_80351758(Struct68s *arg0){ - if(arg0->unk0 == 0){ +s32 func_80351758_getSfxsourceIndex(Struct68s *arg0) { + if (arg0->unk0 == NULL) { arg0->unk0 = sfxsource_createSfxsourceAndReturnIndex(); } + return arg0->unk0; } @@ -291,8 +292,8 @@ ActorMarker *func_80351794(Struct68s *arg0){ return arg0->unk4; } -void func_8035179C(Struct68s* arg0, f32 arg1[3]) { - TUPLE_COPY(arg1, arg0->position) +void func_8035179C_copyPosition(Struct68s* arg0, f32 position[3]) { + TUPLE_COPY(position, arg0->position) } void * func_803517B8(s32 arg0){ @@ -473,7 +474,7 @@ void func_80351DE0(Struct6Bs *arg0, Struct68s *arg1) { arg0->unk0 = randf2(80.0f, 100.0f); arg0->unk4[0] = arg0->unk4[1] = arg0->unk4[2] = 0.0f; arg0->unk10[0] = arg0->unk10[1] = arg0->unk10[2] = 0.0f; - func_8035179C(arg1, arg0->unk1C); + func_8035179C_copyPosition(arg1, arg0->unk1C); func_80351814(arg1, arg0->unk28); arg0->unk34 = 0.0f; } diff --git a/src/core2/code_CB050.c b/src/core2/code_CB050.c index 762a4b71..46b92aa2 100644 --- a/src/core2/code_CB050.c +++ b/src/core2/code_CB050.c @@ -32,7 +32,7 @@ void func_80351FE0(Struct_core2_CB050_0 *arg0, Struct68s *arg1) { arg0->unk28[0] = arg0->unk28[1] = arg0->unk28[2] = 0.0f; arg0->unk34[0] = arg0->unk34[1] = arg0->unk34[2] = 0.0f; arg0->unk40[0] = arg0->unk40[1] = arg0->unk40[2] = 0.0f; - func_8035179C(arg1, arg0->unk4C); + func_8035179C_copyPosition(arg1, arg0->unk4C); func_80351814(arg1, arg0->unk58); arg0->unk64 = 0.0f; arg0->unk6C = 0; diff --git a/src/core2/gc/pauseMenu.c b/src/core2/gc/pauseMenu.c index 849456fe..f0deb99e 100644 --- a/src/core2/gc/pauseMenu.c +++ b/src/core2/gc/pauseMenu.c @@ -33,7 +33,7 @@ void func_80310D2C(void); s32 level_get(void); void func_8024E6E0(s32, void *); void func_8024E60C(s32, void *); -void func_8024E71C(s32, void *); +void controller_getJoystick(s32, void *); s32 getGameMode(void); void func_802DC5B8(void); @@ -937,7 +937,7 @@ s32 gcPauseMenu_update(void) { } func_8024E55C(0, face_button); - func_8024E71C(0, joystick); + controller_getJoystick(0, joystick); func_8024E60C(0, sp60); func_8024E6E0(0, sp50); func_80310D2C(); diff --git a/src/lair/ch/brentilda.c b/src/lair/ch/brentilda.c index 072330f2..f998ad80 100644 --- a/src/lair/ch/brentilda.c +++ b/src/lair/ch/brentilda.c @@ -2,7 +2,7 @@ #include "functions.h" #include "variables.h" -extern f32 func_80258640(f32[3], f32[3]); +extern f32 ml_vec3f_horizontal_distance_zero_likely(f32[3], f32[3]); typedef struct { s32 unk0; @@ -124,7 +124,7 @@ void chBrentilda_update(Actor *this) { player_getPosition(sp64); temp_f0 = sp64[1] - this->position[1]; if ((temp_f0 > -100.0f) && (temp_f0 < 350.0f)) { - phi_f2 = func_80258640(sp64, this->position); + phi_f2 = ml_vec3f_horizontal_distance_zero_likely(sp64, this->position); } else { phi_f2 = 2000.0f; }