match a few funcs and add compiler option (#465)

* match a few funcs and add compiler option
This commit is contained in:
MegaMech
2023-10-18 13:56:26 -06:00
committed by GitHub
parent 03a5550a94
commit 53f84286d6
7 changed files with 82 additions and 467 deletions
+52 -76
View File
@@ -482,52 +482,43 @@ s32 func_800061DC(Vec3f arg0, f32 arg1, s32 arg2) {
return var_v1;
}
#ifdef MIPS_TO_C
//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de
extern s16 D_80163258;
extern s16 D_80163270;
extern s32 D_80163288;
extern u16 D_80163258[];
extern u16 D_80163270[];
extern s32 D_80163288[];
void func_800065D0(s32 arg0, Player *player) {
Player *temp_a3;
Player *temp_a3_2;
void func_800065D0(s32 playerId, Player *player) {
s16 temp_t2;
s16 var_t1;
s32 *temp_a2;
s32 temp_a1;
s32 temp_v0;
u16 *temp_v1;
u16 temp_t9;
s16 temp_t3;
s16 a;
u32 b;
temp_v0 = arg0 * 2;
temp_t2 = (s16) ((s16) player->unk_02C[1] / 182) - (s16) ((s16) D_80164590[(s16) gPathIndexByPlayerId[arg0]][gNearestWaypointByPlayerId[arg0]] / 182);
var_t1 = temp_t2;
if (temp_t2 < 0) {
var_t1 = temp_t2 * -1;
a = (s16) gPathIndexByPlayerId[playerId];
b = gNearestWaypointByPlayerId[playerId];
temp_t2 = (s16) ((s16) player->unk_02C[1] / 182);
temp_t3 = (s16) ((s16) D_80164590[a][b] / 182);
var_t1 = temp_t2 - temp_t3;
if (var_t1 < 0) {
var_t1 = -var_t1;
}
temp_a2 = (arg0 * 4) + &D_80163288;
temp_a1 = D_80164450[arg0];
if ((temp_a1 < *temp_a2) && (var_t1 >= 0x88) && (var_t1 < 0xE1)) {
temp_v1 = temp_v0 + &D_80163258;
temp_t9 = *temp_v1 + 1;
*temp_v1 = temp_t9;
if ((temp_t9 & 0xFFFF) >= 5) {
*(&D_80163270 + temp_v0) = 1;
temp_a3 = &gPlayers[arg0];
*temp_v1 = 5;
temp_a3->effects |= 0x400000;
if ((D_80164450[playerId] < D_80163288[playerId]) && (var_t1 >= 136) && (var_t1 < 225)) {
D_80163258[playerId]++;
if ((D_80163258[playerId]) >= 5) {
D_80163270[playerId] = 1;
D_80163258[playerId] = 5;
gPlayers[playerId].effects |= 0x400000;
}
} else if ((var_t1 < 0x2D) || (var_t1 >= 0x13C)) {
*(&D_80163270 + temp_v0) = 0;
*(&D_80163258 + temp_v0) = 0;
temp_a3_2 = &gPlayers[arg0];
temp_a3_2->effects &= 0xFFBFFFFF;
} else if ((var_t1 < 45) || (var_t1 >= 316)) {
D_80163270[playerId] = 0;
D_80163258[playerId] = 0;
gPlayers[playerId].effects &= 0xFFBFFFFF;
}
*temp_a2 = temp_a1;
D_80163288[playerId] = D_80164450[playerId];
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800065D0.s")
#endif
void set_places(void) {
s32 temp_s2;
@@ -3370,7 +3361,7 @@ s16 func_8000DBAC(Vec3f pos, s16 *waypointIndex, f32 speed) {
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000DBAC.s")
#endif
void func_8000DD78(void) {
void set_bomb_kart_spawn_positions(void) {
Collision *var_s2;
f32 startingXPos;
f32 startingZPos;
@@ -3521,7 +3512,7 @@ void func_8000DF8C(s32 arg0) {
temp_t2 = temp_t9 & 0xFFFF;
sp4C = temp_t2;
sp7E = temp_t9;
if ((temp_t2 != 0) && (((u16) temp_s0->unk_4A != 1) || (gCurrentCourseId == 0x0014))) {
if ((temp_t2 != 0) && (((u16) temp_s0->unk_4A != 1) || (gCurrentCourseId == COURSE_AWARD_CEREMONY))) {
var_f22 = temp_s0->bombPos[0];
var_f20 = temp_s0->bombPos[1];
var_f24 = temp_s0->bombPos[2];
@@ -4077,7 +4068,7 @@ void func_8000F2DC(void) {
func_80014BDC();
break;
}
func_8000DD78();
set_bomb_kart_spawn_positions();
func_8000EEDC();
}
@@ -4794,50 +4785,35 @@ void func_80010DBC(s32 pathIndex) {
}
}
#ifdef MIPS_TO_C
//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-09-2023
s16 gCurrentCourseId; /* unable to generate initializer */
void func_80010E6C(s32 pathIndex) {
s16 *var_a2;
s16 temp_t0;
s16 var_a0;
s32 var_a1;
s32 var_a3;
s32 var_t1;
u16 temp_v0;
s16 temp_t0;
s32 temp_v0;
s16 *temp;
s32 i, j;
temp_v0 = gWaypointCountByPathIndex[pathIndex];
temp = D_80164580[pathIndex];
var_a2 = D_801645A0[pathIndex];
var_a3 = 0;
if ((s32) temp_v0 > 0) {
do {
var_a0 = 0;
var_a1 = 0;
if ((s32) temp_v0 > 0) {
var_t1 = var_a3;
loop_4:
temp_t0 = D_80164580[pathIndex][var_t1 % (s32) temp_v0];
var_a1 += 1;
if ((temp_t0 == 1) || (temp_t0 == 0)) {
var_a0 += 1;
if (gCurrentCourseId != 0x0014) {
var_t1 += 1;
if (var_a1 != temp_v0) {
goto loop_4;
}
}
}
for (i = 0; i < temp_v0; i++) {
var_a0 = 0;
for (j = 0; j < temp_v0; j++) {
temp_t0 = temp[(i + j) % temp_v0];
if ((temp_t0 == 1) || (temp_t0 == 0)) {
var_a0 += 1;
} else {
break;
}
var_a3 += 1;
*var_a2 = var_a0;
var_a2 += 2;
} while (var_a3 != temp_v0);
if (gCurrentCourseId == COURSE_AWARD_CEREMONY) {
break;
}
}
*var_a2 = var_a0;
var_a2++;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80010E6C.s")
#endif
f32 func_80010F40(f32 arg0, f32 arg1, f32 arg2, UNUSED s32 arg3) {
arg1 = func_802AE1C0(arg0, 2000.0f, arg2);