mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-08-11 03:45:51 -04:00
Named "*_step_*_towards" functions (#154)
Also redefined a Lights1 variable in terms of GBI macros. Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This commit is contained in:
+170
-193
@@ -4,9 +4,8 @@
|
||||
#include "code_80040E50.h"
|
||||
#include "main.h"
|
||||
#include "variables.h"
|
||||
#include "math_util.h"
|
||||
|
||||
//#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
UNUSED void func_80040E50(s32 *arg0, s32 arg1) {
|
||||
*arg0 = (s32) (*arg0 | arg1);
|
||||
}
|
||||
@@ -45,282 +44,276 @@ void func_80040EC4(Vec3f arg0, Vec3f arg1) {
|
||||
arg0[2] = arg1[2];
|
||||
}
|
||||
|
||||
s32 func_80040EE0(f32 *arg0, f32 arg1, f32 arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
s32 f32_step_up_towards(f32 *value, f32 target, f32 step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if (*arg0 < arg1) {
|
||||
|
||||
*arg0 += arg2;
|
||||
|
||||
if (arg1 <= *arg0) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (*value < target) {
|
||||
*value += step;
|
||||
if (target <= *value) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
s32 func_80040F2C(f32 *arg0, f32 arg1, f32 arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
s32 f32_step_down_towards(f32 *value, f32 target, f32 step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if (arg1 < *arg0) {
|
||||
*arg0 -= arg2;
|
||||
if (*arg0 <= arg1) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (target < *value) {
|
||||
*value -= step;
|
||||
if (*value <= target) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
s32 func_80040F78(s32 *arg0, s32 arg1, s32 arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
s32 s32_step_up_towards(s32 *value, s32 target, s32 step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if (*arg0 < arg1) {
|
||||
*arg0 = *arg0 + arg2;
|
||||
phi_v1 = 0;
|
||||
if (*arg0 >= arg1) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (*value < target) {
|
||||
*value = *value + step;
|
||||
targetReached = 0;
|
||||
if (*value >= target) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
s32 func_80040FA8(s32 *arg0, s32 arg1, s32 arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
s32 s32_step_down_towards(s32 *value, s32 target, s32 step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if (arg1 < *arg0) {
|
||||
*arg0 = *arg0 - arg2;;
|
||||
if (arg1 >= *arg0) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (target < *value) {
|
||||
*value = *value - step;;
|
||||
if (target >= *value) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
s32 func_80040FD8(s16 *arg0, s16 arg1, s16 arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
s32 s16_step_up_towards(s16 *value, s16 target, s16 step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if (*arg0 < arg1) {
|
||||
*arg0 = *arg0 + arg2;
|
||||
if (*arg0 >= arg1) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (*value < target) {
|
||||
*value = *value + step;
|
||||
if (*value >= target) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
s32 func_80041028(u16 *arg0, u16 arg1, u16 arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
u16 temp_t6 = arg1;
|
||||
u16 temp_t8 = arg2;
|
||||
s32 u16_step_up_towards(u16 *value, u16 target, u16 step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if (*arg0 < temp_t6) {
|
||||
*arg0 += temp_t8;
|
||||
if (*arg0 >= temp_t6) {
|
||||
*arg0 = temp_t6;
|
||||
phi_v1 = 1;
|
||||
if (*value < target) {
|
||||
*value += step;
|
||||
if (*value >= target) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
s32 func_8004106C(s16 *arg0, s16 arg1, s16 arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
s32 s16_step_down_towards(s16 *value, s16 target, s16 step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if (arg1 < *arg0) {
|
||||
*arg0 -= arg2;
|
||||
if (arg1 >= *arg0) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (target < *value) {
|
||||
*value -= step;
|
||||
if (target >= *value) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
s32 func_800410BC(u16 *arg0, s32 arg1, s32 arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
s32 temp = *arg0;
|
||||
// wtf is up with the argument types for this one?
|
||||
s32 u16_step_down_towards(u16 *value, s32 target, s32 step) {
|
||||
s32 targetReached = 0;
|
||||
s32 temp = *value;
|
||||
|
||||
if (arg1 < temp) {
|
||||
temp -= arg2;
|
||||
if (arg1 >= temp) {
|
||||
temp = arg1;
|
||||
phi_v1 = 1;
|
||||
if (target < temp) {
|
||||
temp -= step;
|
||||
if (target >= temp) {
|
||||
temp = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
*arg0 = temp;
|
||||
*value = temp;
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
UNUSED s32 func_800410F0(f32 *arg0, f32 arg1, f32 *arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
UNUSED s32 f32_step_up_towards_alternate(f32 *value, f32 target, f32 *step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if (*arg0 < arg1) {
|
||||
*arg0 = (f32) (*arg2 + *arg0);
|
||||
if (arg1 <= *arg0) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (*value < target) {
|
||||
*value += *step;
|
||||
if (target <= *value) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
UNUSED s32 func_8004113C(f32 *arg0, f32 arg1, f32 *arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
UNUSED s32 f32_step_down_towards_alternate(f32 *value, f32 target, f32 *step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if (arg1 < *arg0) {
|
||||
*arg0 = (f32) (*arg0 - *arg2);
|
||||
if (*arg0 <= arg1) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (target < *value) {
|
||||
*value -= *step;
|
||||
if (*value <= target) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
UNUSED s32 func_80041188(s32 *arg0, s32 arg1, s32 *arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
UNUSED s32 s32_step_up_towards_alternate(s32 *value, s32 target, s32 *step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
|
||||
if (*arg0 < arg1) {
|
||||
*arg0 += *arg2;
|
||||
if (*arg0 >= arg1) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (*value < target) {
|
||||
*value += *step;
|
||||
if (*value >= target) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
UNUSED s32 func_800411C0(s32 *arg0, s32 arg1, s32 *arg2) {
|
||||
UNUSED s32 s32_step_down_towards_alternate(s32 *value, s32 target, s32 *step) {
|
||||
s32 temp_t7;
|
||||
s32 phi_v1 = 0;
|
||||
s32 targetReached = 0;
|
||||
|
||||
if (arg1 < *arg0) {
|
||||
*arg0 -= *arg2;
|
||||
if (arg1 >= *arg0) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (target < *value) {
|
||||
*value -= *step;
|
||||
if (target >= *value) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
UNUSED s32 func_800411F8(s16 *arg0, s16 arg1, s16 *arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
UNUSED s32 s16_step_up_towards_alternate(s16 *value, s16 target, s16 *step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if ((s32) *arg0 < (s32) arg1) {
|
||||
*arg0 = (s16) (*arg2 + *arg0);
|
||||
if ((s32) *arg0 >= (s32) arg1) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (*value < target) {
|
||||
*value += *step;
|
||||
if (*value >= target) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
UNUSED s32 func_80041240(s16 *arg0, s16 arg1, s16 *arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
UNUSED s32 s16_step_down_towards_alternate(s16 *value, s16 target, s16 *step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if ((s32) arg1 < (s32) *arg0) {
|
||||
*arg0 = (s16) (*arg0 - *arg2);
|
||||
if ((s32) arg1 >= (s32) *arg0) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (target < *value) {
|
||||
*value -= *step;
|
||||
if (target >= *value) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
//#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_80041288(s16 *arg0, s16 arg1, s16 arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
s32 s16_step_towards(s16 *value, s16 target, s16 step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if (*arg0 < arg1) {
|
||||
if (arg2 >= 0) {
|
||||
*arg0 += arg2;
|
||||
if (*value < target) {
|
||||
if (step >= 0) {
|
||||
*value += step;
|
||||
} else {
|
||||
*arg0 -= arg2;
|
||||
*value -= step;
|
||||
}
|
||||
if (*arg0 >= arg1) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (*value >= target) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
} else if (arg1 < *arg0) {
|
||||
if (arg2 >= 0) {
|
||||
*arg0 -= arg2;
|
||||
} else if (target < *value) {
|
||||
if (step >= 0) {
|
||||
*value -= step;
|
||||
} else {
|
||||
*arg0 += arg2;
|
||||
*value += step;
|
||||
}
|
||||
if (arg1 >= *arg0) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (target >= *value) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
UNUSED s32 func_8004132C(s32 *arg0, s32 arg1, s32 arg2) {
|
||||
UNUSED s32 s32_step_towards(s32 *value, s32 target, s32 step) {
|
||||
s32 temp_v0;
|
||||
s32 phi_v1;
|
||||
s32 targetReached;
|
||||
|
||||
temp_v0 = *arg0;
|
||||
phi_v1 = 0;
|
||||
if (temp_v0 < arg1) {
|
||||
if (arg2 >= 0) {
|
||||
*arg0 = (s32) (temp_v0 + arg2);
|
||||
temp_v0 = *value;
|
||||
targetReached = 0;
|
||||
if (temp_v0 < target) {
|
||||
if (step >= 0) {
|
||||
*value = (s32) (temp_v0 + step);
|
||||
} else {
|
||||
*arg0 = (s32) (temp_v0 - arg2);
|
||||
*value = (s32) (temp_v0 - step);
|
||||
}
|
||||
if (*arg0 >= arg1) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (*value >= target) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
|
||||
} else if (arg1 < temp_v0) {
|
||||
if (arg2 >= 0) {
|
||||
*arg0 = (s32) (temp_v0 - arg2);
|
||||
} else if (target < temp_v0) {
|
||||
if (step >= 0) {
|
||||
*value = (s32) (temp_v0 - step);
|
||||
} else {
|
||||
*arg0 = (s32) (temp_v0 + arg2);
|
||||
*value = (s32) (temp_v0 + step);
|
||||
}
|
||||
if (arg1 >= *arg0) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (target >= *value) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
s32 func_800413B8(f32 *arg0, f32 arg1, f32 arg2) {
|
||||
s32 phi_v1 = 0;
|
||||
s32 f32_step_towards(f32 *value, f32 target, f32 step) {
|
||||
s32 targetReached = 0;
|
||||
|
||||
if (*arg0 < arg1) {
|
||||
if (arg2 >= 0.0f) {
|
||||
*arg0 += arg2;
|
||||
if (*value < target) {
|
||||
if (step >= 0.0f) {
|
||||
*value += step;
|
||||
} else {
|
||||
*arg0 -= arg2;
|
||||
*value -= step;
|
||||
}
|
||||
if (arg1 <= *arg0) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (target <= *value) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
} else if (arg1 < *arg0) {
|
||||
if (arg2 >= 0.0f) {
|
||||
*arg0 -= arg2;
|
||||
} else if (target < *value) {
|
||||
if (step >= 0.0f) {
|
||||
*value -= step;
|
||||
} else {
|
||||
*arg0 += arg2;
|
||||
*value += step;
|
||||
}
|
||||
if (*arg0 <= arg1) {
|
||||
*arg0 = arg1;
|
||||
phi_v1 = 1;
|
||||
if (*value <= target) {
|
||||
*value = target;
|
||||
targetReached = 1;
|
||||
}
|
||||
}
|
||||
return phi_v1;
|
||||
return targetReached;
|
||||
}
|
||||
|
||||
void func_80041480(s16 *arg0, s16 arg1, s16 arg2, s16 *arg3) {
|
||||
@@ -384,10 +377,6 @@ UNUSED s32 func_80041608(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
|
||||
GLOBAL_ASM("asm/non_matchings/code_80040E50/func_80041608.s")
|
||||
#endif
|
||||
|
||||
// todo: Check that func_802B7830 is s32 and not void.
|
||||
// these funcs match as void with no return. (except func_80041658)
|
||||
extern s32 func_802B7830(f32 arg0, f32 arg1); // extern
|
||||
|
||||
s32 func_80041658(f32 arg0, f32 arg1) {
|
||||
return -func_802B7830(arg0, arg1) & 0xFFFF;
|
||||
}
|
||||
@@ -400,9 +389,6 @@ UNUSED s32 func_800416AC(f32 arg0, f32 arg1) {
|
||||
return func_802B7830(arg1, arg0);
|
||||
}
|
||||
|
||||
f32 sins(u16); // extern
|
||||
f32 coss(u16); // extern
|
||||
|
||||
f32 func_800416D8(f32 arg0, f32 arg1, u16 arg2) {
|
||||
f32 sp1C;
|
||||
|
||||
@@ -410,9 +396,6 @@ f32 func_800416D8(f32 arg0, f32 arg1, u16 arg2) {
|
||||
return (sp1C * arg0) - (sins(arg2) * arg1);
|
||||
}
|
||||
|
||||
f32 sins(u16); // extern
|
||||
f32 coss(u16); // extern
|
||||
|
||||
f32 func_80041724(f32 arg0, f32 arg1, u16 arg2) {
|
||||
f32 sp1C;
|
||||
|
||||
@@ -463,15 +446,9 @@ s32 func_800418AC(f32 arg0, f32 arg1, Vec3f arg2) {
|
||||
return func_802B7830(arg0 - arg2[0], arg1 - arg2[2]);
|
||||
}
|
||||
|
||||
//#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
|
||||
s32 func_800418E8(f32 arg0, f32 arg1, Vec3f arg2) {
|
||||
return func_802B7830(arg0 - arg2[1], arg1 - arg2[2]);
|
||||
}
|
||||
//#else
|
||||
//GLOBAL_ASM("asm/non_matchings/code_80040E50/func_800418E8.s")
|
||||
//#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
|
||||
Reference in New Issue
Block a user