mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-06-09 12:46:55 -04:00
a2dc62ccf8
* Part 1, Commit 1 of 24 audio/effects Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 2 of 24 audio/external Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 3 of 24 audio/heap Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 4 of 24 audio/port_eu Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 5 of 24 audio/seqplayer Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 6 of 24 code_80005FD0 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 7 of 24 code_8001C4D0 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 8 of 24 code_80027D00 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 9 of 24 code_800393C0 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 10 of 24 code_8003DC40 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 11 of 24 code_800431B0 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 12 of 24 code_80057C60 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 13 of 24 code_8006E9C0 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 14 of 24 code_80071F00 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 15 of 24 code_80086E70 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 16 of 24 code_8008C1D0 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 17 of 24 code_80091750 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 18 of 24 code_800AF9B0 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 19 of 24 code_8028DF00 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 20 of 24 code_80290C20 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 21 of 24 code_802B0210 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 22 of 24 code_actors Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 23 of 24 memory Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 1, Commit 24 of 24 os/__osException Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 1 of 20 audio/effects.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 2 of 20 audio/external.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 3 of 24 audio/heap.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 4 of 20 audio/port_eu.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 5 of 20 audio/seqplayer.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 6 of 20 code_80005FD0.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 7 of 20 code_8001C4D0.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 8 of 20 code_80027D00.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 9 of 20 code_8003DC40.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 10 of 20 code_800431B0.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 11 of 20 code_80057C60.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 12 of 20 code_8006E9C0.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 13 of 20 code_80071F00.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 14 of 20 code_80086E70.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 15 of 20 code_80091750.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 16 of 20 code_800AF9B0.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 17 of 20 code_80290C20.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 18 of 20 code_802B0210.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 19 of 20 code_80296A50.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 2, Commit 20 of 20 memory.c Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 3, Commit 1 of 4 code_8008C1D0 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 3, Commit 2 of 4 code_8028DF00 Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 3, Commit 3 of 4 math_util Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Part 3, Commit 4 of 4 crash_screen Signed-off-by: Taggerung <tyler.taggerung@gmail.com> * Recreated disassemblies with a context file Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
469 lines
17 KiB
C
469 lines
17 KiB
C
#include <ultra64.h>
|
|
#include <macros.h>
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
void func_8003DC40(void *arg0) {
|
|
arg0->unkDAC = 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;
|
|
|
|
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;
|
|
}
|
|
} 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 {
|
|
arg3->unk0 = 0.0f;
|
|
arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x32;
|
|
}
|
|
arg3->unk4 = 0.0f;
|
|
func_802B63B8(arg3, arg0 + 0x174);
|
|
}
|
|
#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_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);
|
|
}
|
|
arg0->unkDAC = 0.5f;
|
|
if ((arg0->unkBC & 0x2000) != 0) {
|
|
func_8008D554(arg0);
|
|
arg0->unk9C = arg0->unk9C / 2.0f;
|
|
arg0->unk8C = arg0->unk8C / 2.0f;
|
|
}
|
|
} 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 {
|
|
arg3->unk0 = 0.0f;
|
|
arg3->unk8 = -(arg0->unkC4 / 0xB6) * 0x32;
|
|
}
|
|
arg3->unk4 = 0.0f;
|
|
func_802B63B8(arg3, arg0 + 0x174);
|
|
}
|
|
#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;
|
|
} else {
|
|
arg3->unk0 = 0.0f;
|
|
arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x32;
|
|
}
|
|
arg3->unk4 = 0.0f;
|
|
func_802B63B8(arg3, arg0 + 0x174);
|
|
}
|
|
#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);
|
|
} 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;
|
|
} else {
|
|
arg3->unk0 = (arg0->unk206 / 0xB6) * 0x28;
|
|
}
|
|
arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x28;
|
|
phi_v0 = 0xB6;
|
|
} else {
|
|
arg3->unk0 = 0.0f;
|
|
arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x32;
|
|
phi_v0 = 0xB6;
|
|
}
|
|
if ((arg0->unkBC & 0x10000) != 0) {
|
|
arg3->unk0 = (arg0->unk206 / phi_v0) * 0x78;
|
|
arg3->unk8 = (arg0->unkC4 / phi_v0) * -0xB4;
|
|
}
|
|
}
|
|
arg3->unk4 = 0.0f;
|
|
func_802B63B8(arg3, arg0 + 0x174);
|
|
}
|
|
#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;
|
|
} else {
|
|
arg3->unk0 = 0.0f;
|
|
arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x32;
|
|
}
|
|
arg3->unk4 = 0.0f;
|
|
func_802B63B8(arg3, arg0 + 0x174);
|
|
}
|
|
#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;
|
|
}
|
|
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;
|
|
} else {
|
|
arg3->unk0 = 0.0f;
|
|
arg3->unk8 = (arg0->unkC4 / 0xB6) * -0x32;
|
|
}
|
|
arg3->unk4 = 0.0f;
|
|
arg3->unk8 = 0.0f;
|
|
func_802B63B8(arg3, arg0 + 0x174);
|
|
}
|
|
#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;
|
|
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
|
|
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;
|
|
f32 temp_f12;
|
|
f32 temp_f14;
|
|
s32 temp_v0;
|
|
s32 temp_v0_2;
|
|
f32 phi_f2;
|
|
|
|
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);
|
|
} else {
|
|
func_8002A5F4(1.0f, arg1, *arg3, 0.5f, 0.0f);
|
|
}
|
|
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 {
|
|
*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);
|
|
} else {
|
|
*arg5 = *arg5 + (temp_f0_2 * 0.0f);
|
|
}
|
|
*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:
|
|
}
|
|
}
|
|
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;
|
|
}
|
|
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;
|
|
}
|
|
}
|
|
#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;
|
|
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);
|
|
} else {
|
|
func_8002A5F4(1.0f, arg1, *arg3, 0.5f, 0.0f);
|
|
}
|
|
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 {
|
|
*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);
|
|
} else {
|
|
*arg5 = *arg5 + (temp_f0_2 * 0.0f);
|
|
}
|
|
*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:
|
|
}
|
|
}
|
|
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;
|
|
}
|
|
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;
|
|
}
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/code_8003DC40/func_8003FBAC.s")
|
|
#endif
|