diff options
| author | Tyler McGavran <tyler.taggerung@gmail.com> | 2022-06-15 01:28:10 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-14 22:28:10 -0700 |
| commit | 491f37be4d8f1f0aa3eb3e1e043c3b5c35c974ce (patch) | |
| tree | 4295e1fd780e255bc302b24cceeff858d5b5f49e /src/code_8003DC40.c | |
| parent | 7d11a134cc79f5dc3105c753fcb6f519626a81e1 (diff) | |
Match code_8003DC40 (#223)
Matched its rodata too
Required making a minor adjustment to the Player struct, which
required updating a couple of other files
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Diffstat (limited to 'src/code_8003DC40.c')
| -rw-r--r-- | src/code_8003DC40.c | 685 |
1 files changed, 291 insertions, 394 deletions
diff --git a/src/code_8003DC40.c b/src/code_8003DC40.c index 312aef32f..f6def030b 100644 --- a/src/code_8003DC40.c +++ b/src/code_8003DC40.c @@ -1,468 +1,365 @@ #include <ultra64.h> #include <macros.h> +#include "math_util.h" +#include "common_structs.h" +#include "code_80027D00.h" +#include "code_8008C1D0.h" +#include "code_8003DC40.h" -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_8003DC40(void *arg0) { - arg0->unkDAC = 1.0f; +void func_8003DC40(Player *player) { + player->unk_DAC = 1.0f; } -#else -GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003DC40.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8002A5F4(void *, s32, f32, f32); // extern -? func_80031F48(void *, ?); // extern -? func_8008D554(void *); // extern -? func_802B63B8(void *, void *); // extern -extern f64 D_800EDF30; -extern f32 D_800EDF38; +UNUSED void func_8003DC50(Player *player, Vec3f arg1) { + s32 thing1 = 0; + s32 thing2 = 0; + // Praise Fake Match!! + if(player){}; + if (player->unk_230 <= player->unk_23C) { + if (player->unk_110.unk48[1] >= 0.1736) { + arg1[0] = (player->unk_206 / 182) * 0x78; + arg1[2] = -(player->unk_0C4 / 182) * 0x78; + } else { + arg1[0] = thing1; + arg1[2] = thing2; + } + } else if (player->unk_110.unk48[1] >= 0.1736) { + arg1[0] = (player->unk_206 / 182) * 0x78; + arg1[2] = -(player->unk_0C4 / 182) * 0x78; + } else { + arg1[0] = thing1; + arg1[2] = thing2; + } + arg1[1] = 0.0f; + func_802B63B8(arg1, player->unk_174); +} -void func_8003E048(void *arg0, void *arg1, void *arg3, s32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { - *arg5 = *arg5 + (arg1->unk0 * arg0->unk124 * 1.0f); - *arg6 = *arg6 + ((arg1->unk4 * arg0->unk124) * D_800EDF30); - *arg7 = *arg7 + (arg1->unk8 * arg0->unk124 * 1.0f); - func_8002A5F4(arg1, *arg4, 1.0f, 2.0f); - if (arg0->unk144 <= D_800EDF38) { - arg3->unk0 = (arg0->unk206 / 0xB6) * 0xB4; - arg3->unk8 = -(arg0->unkC4 / 0xB6) * 0xB4; - func_80031F48(arg0, 0x40800000); - arg0->unkDAC = 0.5f; - if ((arg0->unkBC & 0x2000) != 0) { - func_8008D554(arg0); - arg0->unk9C = arg0->unk9C / 2.0f; - arg0->unk8C = arg0->unk8C / 2.0f; +UNUSED void func_8003DE4C(Player *player, Vec3f arg1) { + s32 thing1 = 0; + s32 thing2 = 0; + // Praise Fake Match!! + if(player){}; + if (player->unk_230 <= player->unk_23C) { + if (player->unk_110.unk54[1] >= 0.1736) { + arg1[0] = (player->unk_206 / 182) * 0x78; + arg1[2] = -(player->unk_0C4 / 182) * 0x78; + } else { + arg1[0] = thing1; + arg1[2] = thing2; } - } else if ((((arg0->unk94 / 18.0f) * 216.0f) > 20.0f) || ((arg0->unkBC & 0x10000) == 0x10000)) { - arg3->unk0 = (arg0->unk206 / 0xB6) * 0x32; - arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x3C; + } else if (player->unk_110.unk54[1] >= 0.1736) { + arg1[0] = (player->unk_206 / 182) * 0x78; + arg1[2] = -(player->unk_0C4 / 182) * 0x78; } else { - arg3->unk0 = 0.0f; - arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x32; + arg1[0] = thing1; + arg1[2] = thing2; } - arg3->unk4 = 0.0f; - func_802B63B8(arg3, arg0 + 0x174); + arg1[1] = 0.0f; + func_802B63B8(arg1, player->unk_174); } -#else -GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003E048.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8002A5F4(void *, s32, ?, f32); // extern -? func_80031F48(void *, ?); // extern -? func_8008D554(void *); // extern -? func_802B63B8(void *, void *); // extern -extern f64 D_800EDF40; -extern f32 D_800EDF48; +void func_8003E048(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { + *arg5 += arg1[0] * player->unk_110.unk44 * 1; + *arg6 += arg1[1] * player->unk_110.unk44 * 0.1; + *arg7 += arg1[2] * player->unk_110.unk44 * 1; + func_8002A5F4(arg1, *arg4, arg2, 1, 2); + if (player->unk_110.unk60[1] <= 0.8829f) { + arg3[0] = ((player->unk_206 / 182) * 0xB4); + arg3[2] = (-(player->unk_0C4 / 182) * 0xB4); + func_80031F48(player, 4.0f); + player->unk_DAC = 0.5f; + if ((player->unk_0BC & 0x2000) != 0) { + func_8008D554(player); + player->unk_09C /= 2; + player->unk_08C /= 2; + } + } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->unk_0BC & 0x10000) == 0x10000)) { + arg3[0] = ((player->unk_206 / 182) * 0x32); + arg3[2] = (-(player->unk_0C4 / 182) * 0x3C); + } else { + arg3[0] = 0.0f; + arg3[2] = (-(player->unk_0C4 / 182) * 0x32); + } + arg3[1] = 0.0f; + func_802B63B8(arg3, player->unk_174); +} -void func_8003E37C(void *arg0, void *arg1, void *arg3, s32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { - *arg5 = *arg5 + (arg1->unk0 * arg0->unk124 * 1.0f); - *arg6 = *arg6 + ((arg1->unk4 * arg0->unk124) * D_800EDF40); - *arg7 = *arg7 + (arg1->unk8 * arg0->unk124 * 1.0f); - func_8002A5F4(arg1, *arg4, 0x3F000000, 2.0f); - if ((arg0->unk144 <= D_800EDF48) || (arg0->unkF8 == 0xC)) { - arg3->unk0 = (arg0->unk206 / 0xB6) * 0xB4; - arg3->unk8 = -(arg0->unkC4 / 0xB6) * 0xB4; - if (((arg0->unk94 / 18.0f) * 216.0f) >= 8.0f) { - func_80031F48(arg0, 0x40A00000); +void func_8003E37C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { + *arg5 += arg1[0] * player->unk_110.unk44 * 1; + *arg6 += arg1[1] * player->unk_110.unk44 * 0.2; + *arg7 += arg1[2] * player->unk_110.unk44 * 1; + func_8002A5F4(arg1, *arg4, arg2, 0.5f, 2); + if ((player->unk_110.unk60[1] <= 0.7318f) || (player->unk_0F8 == 0x000C)) { + arg3[0] = ((player->unk_206 / 182) * 0xB4); + arg3[2] = (-(player->unk_0C4 / 182) * 0xB4); + if (((player->unk_094 / 18.0f) * 216.0f) >= 8.0f) { + func_80031F48(player, 5.0f); } - arg0->unkDAC = 0.5f; - if ((arg0->unkBC & 0x2000) != 0) { - func_8008D554(arg0); - arg0->unk9C = arg0->unk9C / 2.0f; - arg0->unk8C = arg0->unk8C / 2.0f; + player->unk_DAC = 0.5f; + if ((player->unk_0BC & 0x2000) != 0) { + func_8008D554(player); + player->unk_09C /= 2; + player->unk_08C /= 2; } - } else if ((((arg0->unk94 / 18.0f) * 216.0f) > 20.0f) || ((arg0->unkBC & 0x10000) == 0x10000)) { - arg3->unk0 = (arg0->unk206 / 0xB6) * 0x32; - arg3->unk8 = -(arg0->unkC4 / 0xB6) * 0x32; + } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->unk_0BC & 0x10000) == 0x10000)) { + arg3[0] = ((player->unk_206 / 182) * 0x32); + arg3[2] = (-(player->unk_0C4 / 182) * 0x32); } else { - arg3->unk0 = 0.0f; - arg3->unk8 = -(arg0->unkC4 / 0xB6) * 0x32; + arg3[0] = 0.0f; + arg3[2] = (-(player->unk_0C4 / 182) * 0x32); } - arg3->unk4 = 0.0f; - func_802B63B8(arg3, arg0 + 0x174); + arg3[1] = 0.0f; + func_802B63B8(arg3, player->unk_174); } -#else -GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003E37C.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8002A5F4(void *, s32, ?, f32); // extern -? func_80031F48(void *, ?); // extern -? func_8003DC40(void *); // extern -? func_802B63B8(void *, void *); // extern -extern f64 D_800EDF50; -extern f32 D_800EDF58; -void func_8003E6EC(void *arg0, void *arg1, void *arg3, s32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { - *arg5 = *arg5 + (arg1->unk0 * arg0->unk124 * 1.0f); - *arg6 = *arg6 + ((arg1->unk4 * arg0->unk124) * D_800EDF50); - *arg7 = *arg7 + (arg1->unk8 * arg0->unk124 * 1.0f); - func_8002A5F4(arg1, *arg4, 0x3F000000, 2.0f); - if (arg0->unk144 <= D_800EDF58) { - arg3->unk0 = (arg0->unk206 / 0xB6) * 0xB4; - arg3->unk8 = -(arg0->unkC4 / 0xB6) * 0xB4; - func_80031F48(arg0, 0x40800000); - func_8003DC40(arg0); - } else if ((((arg0->unk94 / 18.0f) * 216.0f) > 20.0f) || ((arg0->unkBC & 0x10000) == 0x10000)) { - arg3->unk0 = (arg0->unk206 / 0xB6) * 0x32; - arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x3C; +void func_8003E6EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { + *arg5 += arg1[0] * player->unk_110.unk44 * 1; + *arg6 += arg1[1] * player->unk_110.unk44 * 0.1; + *arg7 += arg1[2] * player->unk_110.unk44 * 1; + func_8002A5F4(arg1, *arg4, arg2, 0.5f, 2); + if (player->unk_110.unk60[1] <= 0.8829f) { + arg3[0] = ((player->unk_206 / 182) * 0xB4); + arg3[2] = (-(player->unk_0C4 / 182) * 0xB4); + func_80031F48(player, 4.0f); + func_8003DC40(player); + } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->unk_0BC & 0x10000) == 0x10000)) { + arg3[0] = ((player->unk_206 / 182) * 0x32); + arg3[2] = (-(player->unk_0C4 / 182) * 0x3C); } else { - arg3->unk0 = 0.0f; - arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x32; + arg3[0] = 0.0f; + arg3[2] = (-(player->unk_0C4 / 182) * 0x32); } - arg3->unk4 = 0.0f; - func_802B63B8(arg3, arg0 + 0x174); + arg3[1] = 0.0f; + func_802B63B8(arg3, player->unk_174); } -#else -GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003E6EC.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8002A5F4(void *, s32, ?, f32); // extern -? func_80031F48(void *, ?); // extern -? func_8003DC40(void *); // extern -? func_802B63B8(void *, void *); // extern -extern f64 D_800EDF60; -extern f32 D_800EDF68; - -void func_8003E9EC(void *arg0, void *arg1, void *arg3, s32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { - s32 phi_v0; - - *arg5 = *arg5 + (arg1->unk0 * arg0->unk124 * 1.0f); - *arg6 = *arg6 + ((arg1->unk4 * arg0->unk124) * D_800EDF60); - *arg7 = *arg7 + (arg1->unk8 * arg0->unk124 * 1.0f); - func_8002A5F4(arg1, *arg4, 0x3F99999A, 2.0f); - if (arg0->unk144 <= D_800EDF68) { - arg3->unk0 = (arg0->unk206 / 0xB6) * 0x78; - arg3->unk8 = (arg0->unkC4 / 0xB6) * -0xB4; - func_80031F48(arg0, 0x40800000); - func_8003DC40(arg0); +void func_8003E9EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { + *arg5 += arg1[0] * player->unk_110.unk44 * 1; + *arg6 += arg1[1] * player->unk_110.unk44 * 0.1; + *arg7 += arg1[2] * player->unk_110.unk44 * 1; + func_8002A5F4(arg1, *arg4, arg2, 1.2f, 2); + if (player->unk_110.unk60[1] <= 0.8357f) { + arg3[0] = ((player->unk_206 / 182) * 0x78); + arg3[2] = (-(player->unk_0C4 / 182) * 0xB4); + func_80031F48(player, 4.0f); + func_8003DC40(player); } else { - if ((((arg0->unk94 / 18.0f) * 216.0f) > 20.0f) || ((arg0->unkBC & 0x10000) == 0x10000)) { - if ((arg0->unk1D4 == 1) || (arg0->unk1EC == 1) || (arg0->unk1BC == 1) || (arg0->unk1A4 == 1)) { - arg3->unk0 = (arg0->unk206 / 0xB6) * 5; + if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->unk_0BC & 0x10000) == 0x10000)) { + if ((player->boundingBoxCorners[2].surfaceType == 1) || (player->boundingBoxCorners[3].surfaceType == 1) || (player->boundingBoxCorners[1].surfaceType == 1) || (player->boundingBoxCorners[0].surfaceType == 1)) { + arg3[0] = ((player->unk_206 / 182) * 5); } else { - arg3->unk0 = (arg0->unk206 / 0xB6) * 0x28; + arg3[0] = ((player->unk_206 / 182) * 0x28); } - arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x28; - phi_v0 = 0xB6; + arg3[2] = (-(player->unk_0C4 / 182) * 0x28); } else { - arg3->unk0 = 0.0f; - arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x32; - phi_v0 = 0xB6; + arg3[0] = 0.0f; + arg3[2] = (-(player->unk_0C4 / 182) * 0x32); } - if ((arg0->unkBC & 0x10000) != 0) { - arg3->unk0 = (arg0->unk206 / phi_v0) * 0x78; - arg3->unk8 = (arg0->unkC4 / phi_v0) * -0xB4; + if ((player->unk_0BC & 0x10000) != 0) { + arg3[0] = ((player->unk_206 / 182) * 0x78); + arg3[2] = (-(player->unk_0C4 / 182) * 0xB4); } } - arg3->unk4 = 0.0f; - func_802B63B8(arg3, arg0 + 0x174); + arg3[1] = 0.0f; + func_802B63B8(arg3, player->unk_174); } -#else -GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003E9EC.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8002A5F4(void *, s32, ?, f32); // extern -? func_80031F48(void *, ?); // extern -? func_8003DC40(void *); // extern -? func_802B63B8(void *, void *); // extern -extern f64 D_800EDF70; -extern f32 D_800EDF78; -void func_8003EE2C(void *arg0, void *arg1, void *arg3, s32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { - *arg5 = *arg5 + (arg1->unk0 * arg0->unk124 * 1.0f); - *arg6 = *arg6 + ((arg1->unk4 * arg0->unk124) * D_800EDF70); - *arg7 = *arg7 + (arg1->unk8 * arg0->unk124 * 1.0f); - func_8002A5F4(arg1, *arg4, 0x3F000000, 2.0f); - if (arg0->unk144 <= D_800EDF78) { - arg3->unk0 = (arg0->unk206 / 0xB6) * 0x78; - arg3->unk8 = (arg0->unkC4 / 0xB6) * -0xB4; - func_80031F48(arg0, 0x40800000); - func_8003DC40(arg0); - } else if ((((arg0->unk94 / 18.0f) * 216.0f) > 20.0f) || ((arg0->unkBC & 0x10000) == 0x10000)) { - arg3->unk0 = (arg0->unk206 / 0xB6) * 0x32; - arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x3C; +void func_8003EE2C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { + *arg5 += arg1[0] * player->unk_110.unk44 * 1; + *arg6 += arg1[1] * player->unk_110.unk44 * 0.1; + *arg7 += arg1[2] * player->unk_110.unk44 * 1; + func_8002A5F4(arg1, *arg4, arg2, 0.5f, 2); + if (player->unk_110.unk60[1] <= 0.8357f) { + arg3[0] = ((player->unk_206 / 182) * 0x78); + arg3[2] = (-(player->unk_0C4 / 182) * 0xB4); + func_80031F48(player, 4.0f); + func_8003DC40(player); + } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->unk_0BC & 0x10000) == 0x10000)) { + arg3[0] = ((player->unk_206 / 182) * 0x32); + arg3[2] = (-(player->unk_0C4 / 182) * 0x3C); } else { - arg3->unk0 = 0.0f; - arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x32; + arg3[0] = 0.0f; + arg3[2] = (-(player->unk_0C4 / 182) * 0x32); } - arg3->unk4 = 0.0f; - func_802B63B8(arg3, arg0 + 0x174); + arg3[1] = 0.0f; + func_802B63B8(arg3, player->unk_174); } -#else -GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003EE2C.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8002A5F4(void *, s32, ?, f32); // extern -? func_80031F48(void *, ?); // extern -? func_802B63B8(void *, void *); // extern -extern f64 D_800EDF80; -extern f32 D_800EDF88; - -void func_8003F138(void *arg0, void *arg1, void *arg3, s32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { - *arg5 = *arg5 + (arg1->unk0 * arg0->unk124 * 1.0f); - *arg6 = *arg6 + ((arg1->unk4 * arg0->unk124) * D_800EDF80); - *arg7 = *arg7 + (arg1->unk8 * arg0->unk124 * 1.0f); - func_8002A5F4(arg1, *arg4, 0x3F000000, 2.0f); - if (arg0->unkF8 == 8) { - arg0->unk44 = arg0->unk44 & ~1; +void func_8003F138(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { + *arg5 += arg1[0] * player->unk_110.unk44 * 1; + *arg6 += arg1[1] * player->unk_110.unk44 * 0.1; + *arg7 += arg1[2] * player->unk_110.unk44 * 1; + func_8002A5F4(arg1, *arg4, arg2, 0.5f, 2); + if (player->unk_0F8 == 8) { + player->unk_044 &= ~1; } - if (arg0->unk144 <= D_800EDF88) { - arg3->unk0 = (arg0->unk206 / 0xB6) * 0xC8; - arg3->unk8 = -(arg0->unkC4 / 0xB6) * 0xC8; - func_80031F48(arg0, 0x40800000); - arg0->unkDAC = 0.5f; - arg3->unk0 = 0.0f; - } else if ((((arg0->unk94 / 18.0f) * 216.0f) > 20.0f) || ((arg0->unkBC & 0x10000) == 0x10000)) { - arg3->unk0 = (arg0->unk206 / 0xB6) * 0x78; - arg3->unk0 = 0.0f; - arg3->unk8 = -(arg0->unkC4 / 0xB6) * 0x78; + if (player->unk_110.unk60[1] <= 0.8357f) { + arg3[0] = ((player->unk_206 / 182) * 0xC8); + arg3[2] = (-(player->unk_0C4 / 182) * 0xC8); + func_80031F48(player, 4.0f); + player->unk_DAC = 0.5f; + arg3[0] = 0; + } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->unk_0BC & 0x10000) == 0x10000)) { + arg3[0] = ((player->unk_206 / 182) * 0x78); + arg3[2] = (-(player->unk_0C4 / 182) * 0x78); + arg3[0] = 0; } else { - arg3->unk0 = 0.0f; - arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x32; + arg3[0] = 0.0f; + arg3[2] = (-(player->unk_0C4 / 182) * 0x32); } - arg3->unk4 = 0.0f; - arg3->unk8 = 0.0f; - func_802B63B8(arg3, arg0 + 0x174); + arg3[1] = 0.0f; + arg3[2] = 0.0f; + func_802B63B8(arg3, player->unk_174); } -#else -GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003F138.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_8002A5F4(void *, f32, ?, f32); /* extern */ -? func_8003E048(Player *, void *, f32 *, f32 *, f32 *, f32 *); /* extern */ -? func_8003E37C(Player *, void *, f32 *, f32 *, f32 *, f32 *); /* extern */ -? func_8003E6EC(Player *, void *, f32 *, f32 *, f32 *, f32 *); /* extern */ -? func_8003E9EC(Player *, void *, f32 *, f32 *, f32 *, f32 *); /* extern */ -? func_8003EE2C(Player *, void *, f32 *, f32 *, f32 *, f32 *); /* extern */ -? func_8003F138(Player *, void *, f32 *, f32 *, f32 *, f32 *); /* extern */ -u16 gCurrentCourseId; /* unable to generate initializer */ -void func_8003F46C(Player *arg0, void *arg1, s32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7, f32 *arg6, f32 *arg7) { - u16 temp_t9; - - arg1->unk0 = -arg0->unk_140; - arg1->unk4 = -arg0->unk_144; - arg1->unk8 = -arg0->unk_148; - if ((arg0->unk_144 < 0.0f) && ((arg0->unk_0CA & 2) == 0)) { - *arg7 += arg1->unk0 * arg0->unk_124 * 1.0f; - *arg6 += arg1->unk4 * arg0->unk_124 * 1.0f; - *arg7 += arg1->unk8 * arg0->unk_124 * 1.0f; - func_8002A5F4(arg1, *arg6, 0x3F99999A, 0.0f); - arg0->kartHopJerk = 0.0f; - arg0->kartHopAcceleration = 0.0f; - arg0->kartHopVelocity = 0.0f; +void func_8003F46C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { + arg1[0] = -player->unk_110.unk60[0]; + arg1[1] = -player->unk_110.unk60[1]; + arg1[2] = -player->unk_110.unk60[2]; + if ((player->unk_110.unk60[1] < 0.0f) && ((player->unk_0CA & 2) == 0)) { + *arg5 += arg1[0] * player->unk_110.unk44 * 1; + *arg6 += arg1[1] * player->unk_110.unk44 * 1; + *arg7 += arg1[2] * player->unk_110.unk44 * 1; + func_8002A5F4(arg1, *arg4, arg2, 1.2f, 0.0f); + player->kartHopJerk = 0.0f; + player->kartHopAcceleration = 0.0f; + player->kartHopVelocity = 0.0f; return; - } - temp_t9 = gCurrentCourseId; - switch (temp_t9) { - case 0: - func_8003E048(arg0, arg1, arg6, arg7, arg6, arg7); - break; - case 1: - case 6: - func_8003E37C(arg0, arg1, arg6, arg7, arg6, arg7); - break; - case 2: - func_8003E6EC(arg0, arg1, arg6, arg7, arg6, arg7); - break; - case 8: - func_8003E9EC(arg0, arg1, arg6, arg7, arg6, arg7); - break; - case 14: - func_8003EE2C(arg0, arg1, arg6, arg7, arg6, arg7); - break; - case 18: - func_8003F138(arg0, arg1, arg6, arg7, arg6, arg7); - break; - default: - func_8003E048(arg0, arg1, arg6, arg7, arg6, arg7); - break; - } - if (arg0->unk_0BC & 0x10000) { - arg0->unk_DAC = 0.5f; + } else { + switch (gCurrentCourseId) { + case 0: + func_8003E048(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7); + break; + case 1: + case 6: + func_8003E37C(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7); + break; + case 2: + func_8003E6EC(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7); + break; + case 8: + func_8003E9EC(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7); + break; + case 14: + func_8003EE2C(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7); + break; + case 18: + func_8003F138(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7); + break; + default: + func_8003E048(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7); + break; + } + if (player->unk_0BC & 0x10000) { + player->unk_DAC = 0.5f; + } } } -#else -GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003F46C.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8002A5F4(f32, void *, s32, f32, f32); // extern -extern f64 D_800EDFD8; -extern f64 D_800EDFE0; -extern f64 D_800EDFE8; -extern f64 D_800EDFF0; -extern f64 D_800EDFF8; -void func_8003F734(void *arg0, void *arg1, void *arg2, s32 *arg3, f32 *arg4, f32 *arg5, f32 *arg6) { - f32 temp_f0; - f32 temp_f0_2; - f32 temp_f0_3; - f32 temp_f0_4; - f32 temp_f0_5; +void func_8003F734(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6) { f32 temp_f12; f32 temp_f14; - s32 temp_v0; - s32 temp_v0_2; - f32 phi_f2; + f32 temp_f0_2; - arg1->unk0 = -arg0->unk128; - arg1->unk4 = -arg0->unk12C; - arg1->unk8 = -arg0->unk130; - temp_f0 = arg0->unk12C; - phi_f2 = 0.0f; - phi_f2 = 0.0f; - if (temp_f0 == 0.0f) { - *arg4 = *arg4 + (arg1->unk0 * arg0->unk11C * 1.0f); - *arg5 = *arg5 + ((arg1->unk4 * arg0->unk11C) * D_800EDFD8); - *arg6 = *arg6 + (arg1->unk8 * arg0->unk11C * 1.0f); - if ((arg0->unkC4 < 0) && (((arg0->unk94 / 18.0f) * 216.0f) < 10.0f)) { - func_8002A5F4(1.0f, arg1, *arg3, 2.5f, 0.0f); + arg1[0] = -player->unk_110.unk48[0]; + arg1[1] = -player->unk_110.unk48[1]; + arg1[2] = -player->unk_110.unk48[2]; + if (player->unk_110.unk48[1] == 0) { + *arg4 += arg1[0] * player->unk_110.unk3C * 1; + *arg5 += arg1[1] * player->unk_110.unk3C * 0.1; + *arg6 += arg1[2] * player->unk_110.unk3C * 1; + if ((player->unk_0C4 < 0) && (((player->unk_094 / 18.0f) * 216.0f) < 10.0f)) { + func_8002A5F4(arg1, *arg3, arg2, 2.5f, 0); } else { - func_8002A5F4(1.0f, arg1, *arg3, 0.5f, 0.0f); + func_8002A5F4(arg1, *arg3, arg2, 0.5f, 0); } - phi_f2 = 0.0f; - goto block_16; - } - if (temp_f0 <= 0.5) { - *arg4 = *arg4 + (arg1->unk0 * arg0->unk11C * 1.0f); - *arg5 = *arg5 + ((arg1->unk4 * arg0->unk11C) * D_800EDFE0); - *arg6 = *arg6 + (arg1->unk8 * arg0->unk11C * 1.0f); - func_8002A5F4(1.0f, arg1, *arg3, 1.0f, 0.0f); - temp_v0 = arg0->unkBC; - if (((temp_v0 << 0xF) >= 0) && ((temp_v0 & 8) == 0)) { - arg2->unk4 = arg2->unk4 * D_800EDFE8; - goto block_16; + } else if (player->unk_110.unk48[1] <= 0.5) { + *arg4 += arg1[0] * player->unk_110.unk3C * 1; + *arg5 += arg1[1] * player->unk_110.unk3C * 0.1; + *arg6 += arg1[2] * player->unk_110.unk3C * 1; + func_8002A5F4(arg1, *arg3, arg2, 1, 0); + if (((player->unk_0BC << 0xF) >= 0) && ((player->unk_0BC & 8) == 0)) { + arg2[1] *= -1e-05; } } else { - *arg4 = *arg4 + (arg1->unk0 * arg0->unk11C * 1.0f); - temp_f0_2 = arg1->unk4 * arg0->unk11C; - if (temp_f0_2 < 0.0f) { - *arg5 = *arg5 + (temp_f0_2 * D_800EDFF0); + *arg4 += arg1[0] * player->unk_110.unk3C * 1; + temp_f0_2 = arg1[1] * player->unk_110.unk3C; + if (temp_f0_2 < 0) { + *arg5 += temp_f0_2 * 0.1; } else { - *arg5 = *arg5 + (temp_f0_2 * 0.0f); + *arg5 += temp_f0_2 * 0; } - *arg6 = *arg6 + (arg1->unk8 * arg0->unk11C * 1.0f); - func_8002A5F4(1.0f, arg1, *arg3, 1.2f, 0.0f); - temp_v0_2 = arg0->unkBC; - if (((temp_v0_2 << 0xF) >= 0) && ((temp_v0_2 & 8) == 0)) { - arg2->unk4 = arg2->unk4 * D_800EDFF8; -block_16: + *arg6 += arg1[2] * player->unk_110.unk3C * 1; + func_8002A5F4(arg1, *arg3, arg2, 1.2f, 0); + if (((player->unk_0BC << 0xF) >= 0) && ((player->unk_0BC & 8) == 0)) { + arg2[1] *= -1e-05; } } - arg0->unkBC = arg0->unkBC & ~0x10; - temp_f0_3 = arg0->unk11C; - temp_f12 = arg1->unk0 * temp_f0_3; - temp_f14 = arg1->unk8 * temp_f0_3; - if (((phi_f2 <= temp_f12) && (phi_f2 <= temp_f14)) || ((temp_f12 < phi_f2) && (phi_f2 <= temp_f14))) { - temp_f0_4 = arg0->unk70 / 2.0f; - arg0->unk218 = (*arg4 - temp_f12) - temp_f0_4; - arg0->unk21C = (*arg6 - temp_f14) - temp_f0_4; + player->unk_0BC &= ~0x10; + temp_f12 = arg1[0] * player->unk_110.unk3C; + temp_f14 = arg1[2] * player->unk_110.unk3C; + if (((temp_f12 >= 0) && (temp_f14 >= 0)) || ((temp_f12 < 0) && (temp_f14 >= 0))) { + temp_f0_2 = player->boundingBoxSize / 2; + player->unk_218 = *arg4 - temp_f12 - temp_f0_2; + player->unk_21C = *arg6 - temp_f14 - temp_f0_2; } - if (((temp_f12 < phi_f2) && (temp_f14 < phi_f2)) || ((phi_f2 <= temp_f12) && (temp_f14 < phi_f2))) { - temp_f0_5 = arg0->unk70 / 2.0f; - arg0->unk218 = *arg4 + temp_f12 + temp_f0_5; - arg0->unk21C = *arg6 + temp_f14 + temp_f0_5; + if (((temp_f12 < 0) && (temp_f14 < 0)) || ((temp_f12 >= 0) && (temp_f14 < 0))) { + temp_f0_2 = player->boundingBoxSize / 2; + player->unk_218 = *arg4 + temp_f12 + temp_f0_2; + player->unk_21C = *arg6 + temp_f14 + temp_f0_2; } } -#else -GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003F734.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8002A5F4(f32, void *, s32, f32, f32); // extern -extern f64 D_800EE000; -extern f64 D_800EE008; -extern f64 D_800EE010; -extern f64 D_800EE018; -extern f64 D_800EE020; -void func_8003FBAC(void *arg0, void *arg1, void *arg2, s32 *arg3, f32 *arg4, f32 *arg5, f32 *arg6) { - f32 temp_f0; +void func_8003FBAC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6) { f32 temp_f0_2; - f32 temp_f0_3; - f32 temp_f0_4; - f32 temp_f0_5; f32 temp_f12; f32 temp_f14; - s32 temp_v0; - s32 temp_v0_2; - f32 phi_f2; - arg1->unk0 = -arg0->unk134; - arg1->unk4 = -arg0->unk138; - arg1->unk8 = -arg0->unk13C; - temp_f0 = arg0->unk138; - phi_f2 = 0.0f; - phi_f2 = 0.0f; - if (temp_f0 == 0.0f) { - *arg4 = *arg4 + (arg1->unk0 * arg0->unk120 * 1.0f); - *arg5 = *arg5 + ((arg1->unk4 * arg0->unk120) * D_800EE000); - *arg6 = *arg6 + (arg1->unk8 * arg0->unk120 * 1.0f); - if ((arg0->unkC4 < 0) && (((arg0->unk94 / 18.0f) * 216.0f) < 10.0f)) { - func_8002A5F4(1.0f, arg1, *arg3, 1.5f, 0.0f); + arg1[0] = -player->unk_110.unk54[0]; + arg1[1] = -player->unk_110.unk54[1]; + arg1[2] = -player->unk_110.unk54[2]; + if (player->unk_110.unk54[1] == 0) { + *arg4 += arg1[0] * player->unk_110.unk40 * 1; + *arg5 += arg1[1] * player->unk_110.unk40 * 0.1; + *arg6 += arg1[2] * player->unk_110.unk40 * 1; + if ((player->unk_0C4 < 0) && (((player->unk_094 / 18.0f) * 216.0f) < 10.0f)) { + func_8002A5F4(arg1, *arg3, arg2, 1.5f, 0); } else { - func_8002A5F4(1.0f, arg1, *arg3, 0.5f, 0.0f); + func_8002A5F4(arg1, *arg3, arg2, 0.5f, 0); } - phi_f2 = 0.0f; - goto block_16; - } - if (temp_f0 <= 0.5) { - *arg4 = *arg4 + (arg1->unk0 * arg0->unk120 * 1.0f); - *arg5 = *arg5 + ((arg1->unk4 * arg0->unk120) * D_800EE008); - *arg6 = *arg6 + (arg1->unk8 * arg0->unk120 * 1.0f); - func_8002A5F4(1.0f, arg1, *arg3, 1.0f, 0.0f); - temp_v0 = arg0->unkBC; - if (((temp_v0 << 0xF) >= 0) && ((temp_v0 & 8) == 0)) { - arg2->unk4 = arg2->unk4 * D_800EE010; - goto block_16; + } else if (player->unk_110.unk54[1] <= 0.5) { + *arg4 += arg1[0] * player->unk_110.unk40 * 1; + *arg5 += arg1[1] * player->unk_110.unk40 * 0.1; + *arg6 += arg1[2] * player->unk_110.unk40 * 1; + func_8002A5F4(arg1, *arg3, arg2, 1, 0); + if (((player->unk_0BC << 0xF) >= 0) && ((player->unk_0BC & 8) == 0)) { + arg2[1] *= -1e-05; } } else { - *arg4 = *arg4 + (arg1->unk0 * arg0->unk120 * 1.0f); - temp_f0_2 = arg1->unk4 * arg0->unk120; - if (temp_f0_2 < 0.0f) { - *arg5 = *arg5 + (temp_f0_2 * D_800EE018); + *arg4 += arg1[0] * player->unk_110.unk40 * 1; + temp_f0_2 = arg1[1] * player->unk_110.unk40; + if (temp_f0_2 < 0) { + *arg5 += temp_f0_2 * 0.1; } else { - *arg5 = *arg5 + (temp_f0_2 * 0.0f); + *arg5 += temp_f0_2 * 0; } - *arg6 = *arg6 + (arg1->unk8 * arg0->unk120 * 1.0f); - func_8002A5F4(1.0f, arg1, *arg3, 1.2f, 0.0f); - temp_v0_2 = arg0->unkBC; - if (((temp_v0_2 << 0xF) >= 0) && ((temp_v0_2 & 8) == 0)) { - arg2->unk4 = arg2->unk4 * D_800EE020; -block_16: + *arg6 += arg1[2] * player->unk_110.unk40 * 1; + func_8002A5F4(arg1, *arg3, arg2, 1.2f, 0); + if (((player->unk_0BC << 0xF) >= 0) && ((player->unk_0BC & 8) == 0)) { + arg2[1] *= -1e-05; } } - arg0->unkBC = arg0->unkBC & ~0x10; - temp_f0_3 = arg0->unk120; - temp_f12 = arg1->unk0 * temp_f0_3; - temp_f14 = arg1->unk8 * temp_f0_3; - if (((phi_f2 <= temp_f12) && (phi_f2 <= temp_f14)) || ((phi_f2 <= temp_f12) && (temp_f14 < phi_f2))) { - temp_f0_4 = arg0->unk70 / 2.0f; - arg0->unk218 = (*arg4 - temp_f12) - temp_f0_4; - arg0->unk21C = (*arg6 - temp_f14) - temp_f0_4; + player->unk_0BC &= ~0x10; + temp_f12 = arg1[0] * player->unk_110.unk40; + temp_f14 = arg1[2] * player->unk_110.unk40; + if (((temp_f12 >= 0) && (temp_f14 >= 0)) || ((temp_f12 >= 0) && (temp_f14 < 0))) { + temp_f0_2 = player->boundingBoxSize / 2; + player->unk_218 = *arg4 - temp_f12 - temp_f0_2; + player->unk_21C = *arg6 - temp_f14 - temp_f0_2; } - if (((temp_f12 < phi_f2) && (phi_f2 <= temp_f14)) || ((temp_f12 < phi_f2) && (temp_f14 < phi_f2))) { - temp_f0_5 = arg0->unk70 / 2.0f; - arg0->unk218 = *arg4 + temp_f12 + temp_f0_5; - arg0->unk21C = *arg6 + temp_f14 + temp_f0_5; + if (((temp_f12 < 0) && (temp_f14 >= 0)) || ((temp_f12 < 0) && (temp_f14 < 0))) { + temp_f0_2 = player->boundingBoxSize / 2; + player->unk_218 = *arg4 + temp_f12 + temp_f0_2; + player->unk_21C = *arg6 + temp_f14 + temp_f0_2; } } -#else -GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003FBAC.s") -#endif |
