2023-10-19 20:53:47 +03:00
|
|
|
#include "global.h"
|
|
|
|
|
2023-10-07 09:24:29 +03:00
|
|
|
extern s32 D_8013B3A0;
|
2023-10-07 09:28:35 +03:00
|
|
|
extern s32 D_8013B3A4;
|
|
|
|
extern s32 D_8013B3A8;
|
|
|
|
extern s32 D_8013B3AC;
|
2023-10-07 09:24:29 +03:00
|
|
|
extern s32 D_8013B3B0;
|
|
|
|
extern s32 D_8013B3B4;
|
|
|
|
|
2023-10-07 09:17:19 +03:00
|
|
|
f32 func_80004E20(f32 arg0, f32 arg1) {
|
2023-10-18 16:50:51 +03:00
|
|
|
return arg0 - ((s32) (arg0 / arg1) * arg1);
|
2023-10-07 09:17:19 +03:00
|
|
|
}
|
2023-10-06 15:57:30 +03:00
|
|
|
|
2023-10-07 09:28:35 +03:00
|
|
|
void func_80004E4C(void) {
|
2023-10-18 16:50:51 +03:00
|
|
|
D_8013B3A4 = (s32) osGetTime() % 30000;
|
|
|
|
D_8013B3A8 = (s32) osGetTime() % 30000;
|
|
|
|
D_8013B3AC = (s32) osGetTime() % 30000;
|
2023-10-07 09:28:35 +03:00
|
|
|
}
|
2023-10-06 15:57:30 +03:00
|
|
|
|
2023-10-23 23:02:01 +03:00
|
|
|
f32 func_80004EB0(void) {
|
|
|
|
D_8013B3A4 = (D_8013B3A4 * 0xAB) % 30269;
|
|
|
|
D_8013B3A8 = (D_8013B3A8 * 0xAC) % 30307;
|
|
|
|
D_8013B3AC = (D_8013B3AC * 0xAA) % 30323;
|
|
|
|
|
|
|
|
return fabsf(func_80004E20((D_8013B3A4 / 30269.0f) + (D_8013B3A8 / 30307.0f) + (D_8013B3AC / 30323.0f), 1.0f));
|
|
|
|
}
|
2023-10-06 15:57:30 +03:00
|
|
|
|
2023-10-07 09:17:19 +03:00
|
|
|
void func_80004FC8(s32 arg0, s32 arg1, s32 arg2) {
|
|
|
|
D_8013B3B0 = arg0;
|
|
|
|
D_8013B3B4 = arg1;
|
|
|
|
D_8013B3A0 = arg2;
|
|
|
|
}
|
2023-10-06 15:57:30 +03:00
|
|
|
|
2023-10-23 23:02:01 +03:00
|
|
|
f32 func_80004FE8(void) {
|
|
|
|
D_8013B3B0 = (D_8013B3B0 * 0xAB) % 30269;
|
|
|
|
D_8013B3B4 = (D_8013B3B4 * 0xAC) % 30307;
|
|
|
|
D_8013B3A0 = (D_8013B3A0 * 0xAA) % 30323;
|
|
|
|
|
|
|
|
return fabsf(func_80004E20((D_8013B3B0 / 30269.0f) + (D_8013B3B4 / 30307.0f) + (D_8013B3A0 / 30323.0f), 1.0f));
|
|
|
|
}
|
2023-10-06 15:57:30 +03:00
|
|
|
|
2023-10-07 10:29:27 +03:00
|
|
|
f32 func_80005100(f32 arg0, f32 arg1) {
|
|
|
|
if ((arg0 == 0.0f) && (arg1 == 0.0f)) {
|
|
|
|
return 0.0f;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (arg1 == 0.0f) {
|
|
|
|
if (arg0 < 0.0f) {
|
2023-10-19 20:53:47 +03:00
|
|
|
return -M_PI / 2.0f;
|
2023-10-07 10:29:27 +03:00
|
|
|
} else {
|
2023-10-19 20:53:47 +03:00
|
|
|
return M_PI / 2.0f;
|
2023-10-07 10:29:27 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (arg1 < 0.0f) {
|
|
|
|
if (arg0 < 0.0f) {
|
2023-10-23 23:02:01 +03:00
|
|
|
return -(M_PI - func_8001FBE8(fabs(arg0 / arg1)));
|
2023-10-07 10:29:27 +03:00
|
|
|
} else {
|
2023-10-23 23:02:01 +03:00
|
|
|
return M_PI - func_8001FBE8(fabs(arg0 / arg1));
|
2023-10-07 10:29:27 +03:00
|
|
|
}
|
|
|
|
} else {
|
|
|
|
return func_8001FBE8(arg0 / arg1);
|
|
|
|
}
|
|
|
|
}
|
2023-10-06 15:57:30 +03:00
|
|
|
|
|
|
|
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/5A20/func_800051F8.s")
|
|
|
|
|
2023-10-07 09:58:07 +03:00
|
|
|
f32 func_80005320(f32 arg0, f32 arg1) {
|
|
|
|
if ((arg0 == 0.0f) && (arg1 == 0.0f)) {
|
|
|
|
return 0.0f;
|
|
|
|
}
|
2023-10-07 10:38:28 +03:00
|
|
|
|
2023-10-07 09:58:07 +03:00
|
|
|
if (arg0 == 0.0f) {
|
|
|
|
if (arg1 < 0.0f) {
|
2023-10-19 20:53:47 +03:00
|
|
|
return -M_PI / 2.0f;
|
2023-10-07 09:58:07 +03:00
|
|
|
}
|
2023-10-19 20:53:47 +03:00
|
|
|
return M_PI / 2.0f;
|
2023-10-07 09:58:07 +03:00
|
|
|
}
|
2023-10-07 10:38:28 +03:00
|
|
|
|
2023-10-07 09:58:07 +03:00
|
|
|
if (arg1 == 0.0f) {
|
|
|
|
return 0.0f;
|
|
|
|
}
|
|
|
|
return -func_8001FBE8(arg0 / arg1);
|
|
|
|
}
|
2023-10-06 15:57:30 +03:00
|
|
|
|
|
|
|
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/5A20/func_800053C8.s")
|
|
|
|
|
|
|
|
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/5A20/func_800054C8.s")
|
|
|
|
|
2023-10-07 09:21:36 +03:00
|
|
|
f32 func_800055DC(f32 arg0, s32 arg1) {
|
|
|
|
f32 var_fv1 = 1.0f;
|
2023-10-07 10:38:28 +03:00
|
|
|
|
2023-10-07 09:21:36 +03:00
|
|
|
while (arg1 > 0) {
|
|
|
|
arg1--;
|
|
|
|
var_fv1 *= arg0;
|
|
|
|
}
|
|
|
|
return var_fv1;
|
|
|
|
}
|
2023-10-06 15:57:30 +03:00
|
|
|
|
2023-10-07 09:40:47 +03:00
|
|
|
void func_80005604(s32* arg0, s32* arg1, s32 arg2, s32 arg3, s32 arg4) {
|
|
|
|
if (arg2 < arg3) {
|
|
|
|
if (arg3 < arg4) {
|
|
|
|
*arg0 = arg2;
|
|
|
|
*arg1 = arg4;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
*arg1 = arg3;
|
2023-10-07 10:38:28 +03:00
|
|
|
|
2023-10-07 09:40:47 +03:00
|
|
|
if (arg2 < arg4) {
|
|
|
|
*arg0 = arg2;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
*arg0 = arg4;
|
|
|
|
return;
|
|
|
|
}
|
2023-10-07 10:38:28 +03:00
|
|
|
|
2023-10-07 09:40:47 +03:00
|
|
|
if (arg2 < arg4) {
|
|
|
|
*arg0 = arg3;
|
|
|
|
*arg1 = arg4;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
*arg1 = arg2;
|
2023-10-07 10:38:28 +03:00
|
|
|
|
2023-10-07 09:40:47 +03:00
|
|
|
if (arg3 < arg4) {
|
|
|
|
*arg0 = arg3;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
*arg0 = arg4;
|
|
|
|
}
|