Match func_80030FC8 (#170)

* Match func_80030FC8

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This commit is contained in:
Tyler McGavran
2022-04-14 23:05:09 -04:00
committed by GitHub
parent ed708bad6e
commit 8d9ad9e098
4 changed files with 115 additions and 1369 deletions
File diff suppressed because it is too large Load Diff
+75 -310
View File
@@ -2,7 +2,9 @@
#include <macros.h>
#include <defines.h>
#include "variables.h"
#include "kart_attributes.h"
#include "code_80027D00.h"
#include "code_8008C1D0.h"
// func_80027D00
s32 get_player_index_for_player(Player *player) {
@@ -4583,6 +4585,8 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80030A34.s")
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
// This is likely the function responsible for detecting triple-tap "A"
// for "fast" acceleration
void func_80030C34(s32 arg0) {
s32 sp4;
s32 *temp_a0;
@@ -4675,6 +4679,8 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80030C34.s")
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
// This is likely the function responsible for detecting triple-tap "A"
// for "fast" acceleration
void func_80030E00(s32 arg0) {
s32 sp4;
s32 *temp_a0;
@@ -4765,344 +4771,103 @@ void func_80030E00(s32 arg0) {
GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80030E00.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s8 get_player_index_for_player(); // extern
? func_8008F104(f32, f64, void *, s8); // extern
extern f64 D_800ED9D8;
extern f64 D_800ED9E0;
extern f64 D_800ED9E8;
extern f64 D_800ED9F0;
extern f64 D_800ED9F8;
extern f64 D_800EDA00;
extern f64 D_800EDA08;
extern f64 D_800EDA10;
extern f64 D_800EDA18;
extern f64 D_800EDA20;
extern f64 D_800EDA28;
extern f64 D_800EDA30;
extern f64 D_800EDA38;
extern f64 D_800EDA40;
extern f64 D_800EDA48;
extern f64 D_800EDA50;
extern f64 D_800EDA58;
extern f64 D_800EDA60;
extern f64 D_800EDA68;
extern f64 D_800EDA70;
extern f64 D_800EDA78;
extern f64 D_800EDA80;
extern f64 D_800EDA88;
extern f64 D_800EDA90;
extern f64 D_800EDA98;
extern f64 D_800EDAA0;
extern f64 D_800EDAA8;
extern f64 D_800EDAB0;
extern f64 D_800EDAB8;
extern f64 D_800EDAC0;
extern f64 D_800EDAC8;
extern f64 D_800EDAD0;
extern f64 D_800EDAD8;
extern f64 D_800EDAE0;
extern f64 D_800EDAE8;
extern f64 D_800EDAF0;
extern ? gKartAccelerationTables;
extern ? gKartTable800E36B0;
/*
D_80165460 appears to track on a per-player index whether they're doing regular or "fast" accleration
"fast" acceleration is triggered by triple tapping "A" instead of just pressing-and-holding
gKartAccelerationTables may actually be something more like gKartJerkTables, with player->unk_09C being player accleration
gKartTable800E36B0 is some sort of per-character multiplier to the jerk that is only used when triple-tap "A" is used
player->unk_214 is possibly the max-acceleration allowed
No speculation on what player->unk_0C4 could be
*/
void func_80030FC8(Player *player) {
f64 some_multiplier;
s32 player_index;
void func_80030FC8(void *arg0) {
f32 temp_f0_3;
f32 temp_f12;
f32 temp_f12_10;
f32 temp_f12_11;
f32 temp_f12_12;
f32 temp_f12_13;
f32 temp_f12_14;
f32 temp_f12_15;
f32 temp_f12_16;
f32 temp_f12_17;
f32 temp_f12_2;
f32 temp_f12_3;
f32 temp_f12_4;
f32 temp_f12_5;
f32 temp_f12_6;
f32 temp_f12_7;
f32 temp_f12_8;
f32 temp_f12_9;
f64 temp_f0;
f64 temp_f0_2;
f64 temp_f14;
f64 temp_f14_2;
f64 temp_f2;
f64 temp_f2_2;
s32 temp_t0;
s32 temp_t0_2;
s32 temp_t2;
s32 temp_t2_2;
s32 temp_t4;
s32 temp_t4_2;
s32 temp_t6;
s32 temp_t6_2;
s32 temp_t8;
s32 temp_t8_2;
s32 temp_v0_2;
s8 temp_a1;
s8 temp_v0;
void *temp_a0;
f64 phi_f0;
f64 phi_f2;
f64 phi_f0_2;
f64 phi_f2_2;
f64 phi_f0_3;
f64 phi_f2_3;
f64 phi_f0_4;
f64 phi_f2_4;
f64 phi_f0_5;
f64 phi_f2_5;
f64 phi_f0_6;
f64 phi_f2_6;
f64 phi_f0_7;
f64 phi_f2_7;
f64 phi_f0_8;
f64 phi_f2_8;
f64 phi_f0_9;
f64 phi_f0_10;
f64 phi_f2_9;
f64 phi_f0_11;
f64 phi_f2_10;
f64 phi_f0_12;
f64 phi_f2_11;
f64 phi_f0_13;
f64 phi_f2_12;
f64 phi_f0_14;
f64 phi_f2_13;
f64 phi_f0_15;
f64 phi_f2_14;
f64 phi_f0_16;
f64 phi_f2_15;
f64 phi_f0_17;
f64 phi_f2_16;
f64 phi_f0_18;
f32 phi_f12;
f32 phi_f12_2;
f32 phi_f12_3;
f64 phi_f14;
temp_v0 = get_player_index_for_player();
temp_a0 = arg0;
if (D_80165460[temp_v0] == 0) {
temp_f0 = temp_a0->unk9C;
phi_f0 = temp_f0;
if ((temp_f0 >= 0.0) && (temp_f0 < (temp_a0->unk214 * D_800ED9D8))) {
temp_a0->unk9C = temp_f0 + (**(&gKartAccelerationTables + (temp_a0->unk254 * 4)) + (D_800ED9E0 * (temp_a0->unkC4 / 0xB6)));
phi_f0 = temp_a0->unk9C;
player_index = get_player_index_for_player(player);
if (D_80165460[player_index] == 0) {
if ((0.0 <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800ED9D8))) {
some_multiplier = D_800ED9E0;
player->unk_09C += gKartAccelerationTables[player->characterId][0] + (some_multiplier * (player->unk_0C4 / 182));
}
temp_f14 = D_800ED9E8;
temp_f2 = temp_a0->unk214;
phi_f2 = temp_f2;
phi_f0_2 = phi_f0;
phi_f14 = temp_f14;
phi_f14 = temp_f14;
phi_f12 = temp_a0->unk9C;
if (((temp_f2 * D_800ED9F0) <= phi_f0) && (phi_f0 < (temp_f2 * D_800ED9F8))) {
temp_a0->unk9C = phi_f0 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk4 + (temp_f14 * (temp_a0->unkC4 / 0xB6)));
temp_f12 = temp_a0->unk9C;
phi_f2 = temp_a0->unk214;
phi_f0_2 = temp_f12;
phi_f12 = temp_f12;
some_multiplier = D_800ED9E8;
if (((player->unk_214 * D_800ED9F0) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800ED9F8))) {
player->unk_09C += gKartAccelerationTables[player->characterId][1] + (some_multiplier * (player->unk_0C4 / 182));
}
phi_f2_2 = phi_f2;
phi_f0_3 = phi_f0_2;
if (((phi_f2 * D_800EDA00) <= phi_f0_2) && (phi_f0_2 < (phi_f2 * D_800EDA08))) {
temp_a0->unk9C = phi_f0_2 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk8 + (temp_f14 * (temp_a0->unkC4 / 0xB6)));
temp_f12_2 = temp_a0->unk9C;
phi_f2_2 = temp_a0->unk214;
phi_f0_3 = temp_f12_2;
phi_f12 = temp_f12_2;
if (((player->unk_214 * D_800EDA00) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA08))) {
player->unk_09C += gKartAccelerationTables[player->characterId][2] + (some_multiplier * (player->unk_0C4 / 182));
}
phi_f2_3 = phi_f2_2;
phi_f0_4 = phi_f0_3;
if (((phi_f2_2 * D_800EDA10) <= phi_f0_3) && (phi_f0_3 < (phi_f2_2 * D_800EDA18))) {
temp_a0->unk9C = phi_f0_3 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unkC + (temp_f14 * (temp_a0->unkC4 / 0xB6)));
temp_f12_3 = temp_a0->unk9C;
phi_f2_3 = temp_a0->unk214;
phi_f0_4 = temp_f12_3;
phi_f12 = temp_f12_3;
if (((player->unk_214 * D_800EDA10) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA18))) {
player->unk_09C += gKartAccelerationTables[player->characterId][3] + (some_multiplier * (player->unk_0C4 / 182));
}
phi_f2_4 = phi_f2_3;
phi_f0_5 = phi_f0_4;
if (((phi_f2_3 * D_800EDA20) <= phi_f0_4) && (phi_f0_4 < (phi_f2_3 * 0.5))) {
temp_a0->unk9C = phi_f0_4 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk10 + (temp_f14 * (temp_a0->unkC4 / 0xB6)));
temp_f12_4 = temp_a0->unk9C;
phi_f2_4 = temp_a0->unk214;
phi_f0_5 = temp_f12_4;
phi_f12 = temp_f12_4;
if (((player->unk_214 * D_800EDA20) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.5 ))) {
player->unk_09C += gKartAccelerationTables[player->characterId][4] + (some_multiplier * (player->unk_0C4 / 182));
}
phi_f2_5 = phi_f2_4;
phi_f0_6 = phi_f0_5;
if (((phi_f2_4 * 0.5) <= phi_f0_5) && (phi_f0_5 < (phi_f2_4 * D_800EDA28))) {
temp_a0->unk9C = phi_f0_5 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk14 + (temp_f14 * (temp_a0->unkC4 / 0xB6)));
temp_f12_5 = temp_a0->unk9C;
phi_f2_5 = temp_a0->unk214;
phi_f0_6 = temp_f12_5;
phi_f12 = temp_f12_5;
if (((player->unk_214 * 0.5) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA28))) {
player->unk_09C += gKartAccelerationTables[player->characterId][5] + (some_multiplier * (player->unk_0C4 / 182));
}
phi_f2_6 = phi_f2_5;
phi_f0_7 = phi_f0_6;
if (((phi_f2_5 * D_800EDA30) <= phi_f0_6) && (phi_f0_6 < (phi_f2_5 * D_800EDA38))) {
temp_a0->unk9C = phi_f0_6 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk18 + (temp_f14 * (temp_a0->unkC4 / 0xB6)));
temp_f12_6 = temp_a0->unk9C;
phi_f2_6 = temp_a0->unk214;
phi_f0_7 = temp_f12_6;
phi_f12 = temp_f12_6;
if (((player->unk_214 * D_800EDA30) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA38))) {
player->unk_09C += gKartAccelerationTables[player->characterId][6] + (some_multiplier * (player->unk_0C4 / 182));
}
phi_f2_7 = phi_f2_6;
phi_f0_8 = phi_f0_7;
if (((phi_f2_6 * D_800EDA40) <= phi_f0_7) && (phi_f0_7 < (phi_f2_6 * D_800EDA48))) {
temp_a0->unk9C = phi_f0_7 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk1C + (temp_f14 * (temp_a0->unkC4 / 0xB6)));
temp_f12_7 = temp_a0->unk9C;
phi_f2_7 = temp_a0->unk214;
phi_f0_8 = temp_f12_7;
phi_f12 = temp_f12_7;
if (((player->unk_214 * D_800EDA40) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA48))) {
player->unk_09C += gKartAccelerationTables[player->characterId][7] + (some_multiplier * (player->unk_0C4 / 182));
}
phi_f2_8 = phi_f2_7;
phi_f0_9 = phi_f0_8;
if (((phi_f2_7 * D_800EDA50) <= phi_f0_8) && (phi_f0_8 < (phi_f2_7 * D_800EDA58))) {
temp_a0->unk9C = phi_f0_8 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk20 + (temp_f14 * (temp_a0->unkC4 / 0xB6)));
temp_f12_8 = temp_a0->unk9C;
phi_f2_8 = temp_a0->unk214;
phi_f0_9 = temp_f12_8;
phi_f12 = temp_f12_8;
if (((player->unk_214 * D_800EDA50) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA58))) {
player->unk_09C += gKartAccelerationTables[player->characterId][8] + (some_multiplier * (player->unk_0C4 / 182));
}
if (((phi_f2_8 * D_800EDA60) <= phi_f0_9) && (phi_f0_9 <= phi_f2_8)) {
temp_a0->unk9C = phi_f0_9 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk24 + (temp_f14 * (temp_a0->unkC4 / 0xB6)));
goto block_61;
if (((player->unk_214 * D_800EDA60) <= player->unk_09C) && (player->unk_09C <= (player->unk_214 * 1.0 ))) {
player->unk_09C += gKartAccelerationTables[player->characterId][9] + (some_multiplier * (player->unk_0C4 / 182));
}
} else {
temp_f0_2 = temp_a0->unk9C;
phi_f0_10 = temp_f0_2;
if ((temp_f0_2 >= 0.0) && (temp_f0_2 < (temp_a0->unk214 * D_800EDA68))) {
temp_t8 = temp_a0->unk254 * 4;
temp_a0->unk9C = temp_f0_2 + ((**(&gKartAccelerationTables + temp_t8) + (D_800EDA70 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t8));
phi_f0_10 = temp_a0->unk9C;
if ((0.0 <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA68))) {
some_multiplier = D_800EDA70;
player->unk_09C += (gKartAccelerationTables[player->characterId][0] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId];
}
temp_f14_2 = D_800EDA78;
temp_f2_2 = temp_a0->unk214;
phi_f2_9 = temp_f2_2;
phi_f0_11 = phi_f0_10;
phi_f14 = temp_f14_2;
phi_f14 = temp_f14_2;
phi_f12 = temp_a0->unk9C;
if (((temp_f2_2 * D_800EDA80) <= phi_f0_10) && (phi_f0_10 < (temp_f2_2 * D_800EDA88))) {
temp_t4 = temp_a0->unk254 * 4;
temp_a0->unk9C = phi_f0_10 + (((*(&gKartAccelerationTables + temp_t4))->unk4 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t4));
temp_f12_9 = temp_a0->unk9C;
phi_f2_9 = temp_a0->unk214;
phi_f0_11 = temp_f12_9;
phi_f12 = temp_f12_9;
some_multiplier = D_800EDA78;
if (((player->unk_214 * D_800EDA80) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA88))) {
player->unk_09C += (gKartAccelerationTables[player->characterId][1] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId];
}
phi_f2_10 = phi_f2_9;
phi_f0_12 = phi_f0_11;
if (((phi_f2_9 * D_800EDA90) <= phi_f0_11) && (phi_f0_11 < (phi_f2_9 * D_800EDA98))) {
temp_t0 = temp_a0->unk254 * 4;
temp_a0->unk9C = phi_f0_11 + (((*(&gKartAccelerationTables + temp_t0))->unk8 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t0));
temp_f12_10 = temp_a0->unk9C;
phi_f2_10 = temp_a0->unk214;
phi_f0_12 = temp_f12_10;
phi_f12 = temp_f12_10;
if (((player->unk_214 * D_800EDA90) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA98))) {
player->unk_09C += (gKartAccelerationTables[player->characterId][2] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId];
}
phi_f2_11 = phi_f2_10;
phi_f0_13 = phi_f0_12;
if (((phi_f2_10 * D_800EDAA0) <= phi_f0_12) && (phi_f0_12 < (phi_f2_10 * D_800EDAA8))) {
temp_t6 = temp_a0->unk254 * 4;
temp_a0->unk9C = phi_f0_12 + (((*(&gKartAccelerationTables + temp_t6))->unkC + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t6));
temp_f12_11 = temp_a0->unk9C;
phi_f2_11 = temp_a0->unk214;
phi_f0_13 = temp_f12_11;
phi_f12 = temp_f12_11;
if (((player->unk_214 * D_800EDAA0) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDAA8))) {
player->unk_09C += (gKartAccelerationTables[player->characterId][3] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId];
}
phi_f2_12 = phi_f2_11;
phi_f0_14 = phi_f0_13;
if (((phi_f2_11 * D_800EDAB0) <= phi_f0_13) && (phi_f0_13 < (phi_f2_11 * 0.5))) {
temp_t2 = temp_a0->unk254 * 4;
temp_a0->unk9C = phi_f0_13 + (((*(&gKartAccelerationTables + temp_t2))->unk10 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t2));
temp_f12_12 = temp_a0->unk9C;
phi_f2_12 = temp_a0->unk214;
phi_f0_14 = temp_f12_12;
phi_f12 = temp_f12_12;
if (((player->unk_214 * D_800EDAB0) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.5 ))) {
player->unk_09C += (gKartAccelerationTables[player->characterId][4] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId];
}
phi_f2_13 = phi_f2_12;
phi_f0_15 = phi_f0_14;
if (((phi_f2_12 * 0.5) <= phi_f0_14) && (phi_f0_14 < (phi_f2_12 * D_800EDAB8))) {
temp_t8_2 = temp_a0->unk254 * 4;
temp_a0->unk9C = phi_f0_14 + (((*(&gKartAccelerationTables + temp_t8_2))->unk14 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t8_2));
temp_f12_13 = temp_a0->unk9C;
phi_f2_13 = temp_a0->unk214;
phi_f0_15 = temp_f12_13;
phi_f12 = temp_f12_13;
if (((player->unk_214 * 0.5) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDAB8))) {
player->unk_09C += (gKartAccelerationTables[player->characterId][5] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId];
}
phi_f2_14 = phi_f2_13;
phi_f0_16 = phi_f0_15;
if (((phi_f2_13 * D_800EDAC0) <= phi_f0_15) && (phi_f0_15 < (phi_f2_13 * D_800EDAC8))) {
temp_t4_2 = temp_a0->unk254 * 4;
temp_a0->unk9C = phi_f0_15 + (((*(&gKartAccelerationTables + temp_t4_2))->unk18 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t4_2));
temp_f12_14 = temp_a0->unk9C;
phi_f2_14 = temp_a0->unk214;
phi_f0_16 = temp_f12_14;
phi_f12 = temp_f12_14;
if (((player->unk_214 * D_800EDAC0) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDAC8))) {
player->unk_09C += (gKartAccelerationTables[player->characterId][6] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId];
}
phi_f2_15 = phi_f2_14;
phi_f0_17 = phi_f0_16;
if (((phi_f2_14 * D_800EDAD0) <= phi_f0_16) && (phi_f0_16 < (phi_f2_14 * D_800EDAD8))) {
temp_t0_2 = temp_a0->unk254 * 4;
temp_a0->unk9C = phi_f0_16 + (((*(&gKartAccelerationTables + temp_t0_2))->unk1C + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t0_2));
temp_f12_15 = temp_a0->unk9C;
phi_f2_15 = temp_a0->unk214;
phi_f0_17 = temp_f12_15;
phi_f12 = temp_f12_15;
if (((player->unk_214 * D_800EDAD0) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDAD8))) {
player->unk_09C += (gKartAccelerationTables[player->characterId][7] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId];
}
phi_f2_16 = phi_f2_15;
phi_f0_18 = phi_f0_17;
if (((phi_f2_15 * D_800EDAE0) <= phi_f0_17) && (phi_f0_17 < (phi_f2_15 * D_800EDAE8))) {
temp_t6_2 = temp_a0->unk254 * 4;
temp_a0->unk9C = phi_f0_17 + (((*(&gKartAccelerationTables + temp_t6_2))->unk20 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t6_2));
temp_f12_16 = temp_a0->unk9C;
phi_f2_16 = temp_a0->unk214;
phi_f0_18 = temp_f12_16;
phi_f12 = temp_f12_16;
if (((player->unk_214 * D_800EDAE0) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDAE8))) {
player->unk_09C += (gKartAccelerationTables[player->characterId][8] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId];
// Only here to satisfy the compiler gods, may they bless us with byte-for-byte matches
if (1) { } if (1) { } if (1) { } if (1) { } if (1) { }
}
if (((phi_f2_16 * D_800EDAF0) <= phi_f0_18) && (phi_f0_18 <= phi_f2_16)) {
temp_t2_2 = temp_a0->unk254 * 4;
temp_a0->unk9C = phi_f0_18 + (((*(&gKartAccelerationTables + temp_t2_2))->unk24 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t2_2));
block_61:
phi_f12 = temp_a0->unk9C;
if (((player->unk_214 * D_800EDAF0) <= player->unk_09C) && (player->unk_09C <= (player->unk_214 * 1.0 ))) {
player->unk_09C += (gKartAccelerationTables[player->characterId][9] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId];
}
}
temp_a1 = temp_v0;
phi_f12_2 = phi_f12;
if (phi_f12 < 0.0f) {
temp_a0->unk9C = 0.0f;
phi_f12_2 = temp_a0->unk9C;
if (player->unk_09C < 0.0f) {
player->unk_09C = 0.0f;
}
temp_f0_3 = temp_a0->unk214;
phi_f12_3 = phi_f12_2;
if (temp_f0_3 <= phi_f12_2) {
temp_a0->unk9C = temp_f0_3;
if (player->unk_214 <= player->unk_09C) {
player->unk_09C = player->unk_214;
}
temp_v0_2 = temp_a0->unkBC;
if (((temp_v0_2 & 8) == 0) || ((temp_v0_2 * 2) < 0)) {
temp_f12_17 = temp_a0->unk9C;
temp_a0->unk8C = (temp_f12_17 * temp_f12_17) / 25.0f;
phi_f12_3 = temp_f12_17;
if (((player->unk_0BC & 8) == 0) || ((player->unk_0BC * 2) < 0)) {
player->unk_08C = (player->unk_09C * player->unk_09C) / 25.0f;
}
temp_a0->unk44 = temp_a0->unk44 | 0x20;
if ((temp_a0->unkC * 8) < 0) {
arg0 = temp_a0;
func_8008F104(phi_f12_3, phi_f14, temp_a0, temp_a1);
arg0->unkC = arg0->unkC & 0xEFFFFFFF;
player->unk_044 |= 0x20;
if ((player->unk_00C * 8) < 0) {
func_8008F104(player, player_index);
player->unk_00C &= 0xEFFFFFFF;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80030FC8.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
+39
View File
@@ -14,9 +14,48 @@ void func_800291E8();
void func_800291F0();
void func_800291F8();
void func_8002AAC0(Player*);
void func_80030FC8(Player*);
/* This is where I'd put my static data, if I had any */
extern s16 D_80164AF0;
extern f64 D_800ED9D8;
extern f64 D_800ED9E0;
extern f64 D_800ED9E8;
extern f64 D_800ED9F0;
extern f64 D_800ED9F8;
extern f64 D_800EDA00;
extern f64 D_800EDA08;
extern f64 D_800EDA10;
extern f64 D_800EDA18;
extern f64 D_800EDA20;
extern f64 D_800EDA28;
extern f64 D_800EDA30;
extern f64 D_800EDA38;
extern f64 D_800EDA40;
extern f64 D_800EDA48;
extern f64 D_800EDA50;
extern f64 D_800EDA58;
extern f64 D_800EDA60;
extern f64 D_800EDA68;
extern f64 D_800EDA70;
extern f64 D_800EDA78;
extern f64 D_800EDA80;
extern f64 D_800EDA88;
extern f64 D_800EDA90;
extern f64 D_800EDA98;
extern f64 D_800EDAA0;
extern f64 D_800EDAA8;
extern f64 D_800EDAB0;
extern f64 D_800EDAB8;
extern f64 D_800EDAC0;
extern f64 D_800EDAC8;
extern f64 D_800EDAD0;
extern f64 D_800EDAD8;
extern f64 D_800EDAE0;
extern f64 D_800EDAE8;
extern f64 D_800EDAF0;
#endif
+1
View File
@@ -20,6 +20,7 @@ void func_8008E884(Player*, s8);
void func_8008EC34(Player*, s8);
void func_8008EEC4(Player*);
void func_8008F0E8(Player*);
void func_8008F104(Player*, s8);
void func_8008F3E0(Player*);
void func_8008F5A4(Player*, s8);
void func_8008F86C(Player*, s8);