mirror of
https://github.com/n64decomp/mk64
synced 2026-07-31 07:55:51 -04:00
Match func_80030FC8 (#170)
* Match func_80030FC8 Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
+75
-310
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user