summaryrefslogtreecommitdiff
path: root/src/code_8003DC40.c
diff options
context:
space:
mode:
authorMegaMech <MegaMech@users.noreply.github.com>2024-07-26 11:29:35 -0600
committerGitHub <noreply@github.com>2024-07-26 11:29:35 -0600
commit532ad5a4c03d7098b316ac1ebf2c467525442791 (patch)
tree258d8b8b206efab661fa69c92121718b08b5a9d7 /src/code_8003DC40.c
parentdd5844ab81ebe3e429b8810e16ececb6b56219bc (diff)
Renames & seg 3 & 5 texture fixes (#19)
* Remove tools/torch * Auto compile torch and extract * Re-implement soh's implementation of lus implementation of an array * Fix static actors in mr * Update * Updated torch * Updated lus * uncomment * Fix collision * Renames * More renaming * Collision Renames * Update collision.c * Collision Documentation (#640) * Collision related renames * Update * update lus * Bug fixes * remove tabs * fixes * fixes * Fix kart textures * Networking * net * Add networking * Update * Cleanup * Fix balloon rendering * Fix lakitu and red shell * fixes * Implement new random system --------- Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
Diffstat (limited to 'src/code_8003DC40.c')
-rw-r--r--src/code_8003DC40.c148
1 files changed, 74 insertions, 74 deletions
diff --git a/src/code_8003DC40.c b/src/code_8003DC40.c
index 9853b8d7e..d4e117b91 100644
--- a/src/code_8003DC40.c
+++ b/src/code_8003DC40.c
@@ -18,14 +18,14 @@ UNUSED void func_8003DC50(Player *player, Vec3f arg1) {
// Praise Fake Match!!
if(player){};
if (player->unk_230 <= player->unk_23C) {
- if (player->unk_110.unk48[1] >= 0.1736) {
+ if (player->collision.unk48[1] >= 0.1736) {
arg1[0] = (player->unk_206 / 182) * 0x78;
arg1[2] = -(player->slopeAccel / 182) * 0x78;
} else {
arg1[0] = thing1;
arg1[2] = thing2;
}
- } else if (player->unk_110.unk48[1] >= 0.1736) {
+ } else if (player->collision.unk48[1] >= 0.1736) {
arg1[0] = (player->unk_206 / 182) * 0x78;
arg1[2] = -(player->slopeAccel / 182) * 0x78;
} else {
@@ -42,14 +42,14 @@ UNUSED void func_8003DE4C(Player *player, Vec3f arg1) {
// Praise Fake Match!!
if(player){};
if (player->unk_230 <= player->unk_23C) {
- if (player->unk_110.unk54[1] >= 0.1736) {
+ if (player->collision.unk54[1] >= 0.1736) {
arg1[0] = (player->unk_206 / 182) * 0x78;
arg1[2] = -(player->slopeAccel / 182) * 0x78;
} else {
arg1[0] = thing1;
arg1[2] = thing2;
}
- } else if (player->unk_110.unk54[1] >= 0.1736) {
+ } else if (player->collision.unk54[1] >= 0.1736) {
arg1[0] = (player->unk_206 / 182) * 0x78;
arg1[2] = -(player->slopeAccel / 182) * 0x78;
} else {
@@ -61,14 +61,14 @@ UNUSED void func_8003DE4C(Player *player, Vec3f arg1) {
}
// Stick to ground?
void func_8003E048(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
- *arg5 += arg1[0] * player->unk_110.unk3C[2] * 1;
- *arg6 += arg1[1] * player->unk_110.unk3C[2] * 0.1;
- *arg7 += arg1[2] * player->unk_110.unk3C[2] * 1;
+ *arg5 += arg1[0] * player->collision.surfaceDistance[2] * 1;
+ *arg6 += arg1[1] * player->collision.surfaceDistance[2] * 0.1;
+ *arg7 += arg1[2] * player->collision.surfaceDistance[2] * 1;
func_8002A5F4(arg1, *arg4, arg2, 1, 2);
- if (player->unk_110.orientationVector[1] <= 0.8829f) {
+ if (player->collision.orientationVector[1] <= 0.8829f) {
arg3[0] = ((player->unk_206 / 182) * 0xB4);
arg3[2] = (-(player->slopeAccel / 182) * 0xB4);
- func_80031F48(player, 4.0f);
+ decelerate_ai_player(player, 4.0f);
player->unk_DAC = 0.5f;
if ((player->effects & BOOST_EFFECT) != 0) {
remove_boost_effect(player);
@@ -87,15 +87,15 @@ void func_8003E048(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4
}
void func_8003E37C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
- *arg5 += arg1[0] * player->unk_110.unk3C[2] * 1;
- *arg6 += arg1[1] * player->unk_110.unk3C[2] * 0.2;
- *arg7 += arg1[2] * player->unk_110.unk3C[2] * 1;
+ *arg5 += arg1[0] * player->collision.surfaceDistance[2] * 1;
+ *arg6 += arg1[1] * player->collision.surfaceDistance[2] * 0.2;
+ *arg7 += arg1[2] * player->collision.surfaceDistance[2] * 1;
func_8002A5F4(arg1, *arg4, arg2, 0.5f, 2);
- if ((player->unk_110.orientationVector[1] <= 0.7318f) || (player->surfaceType == CLIFF)) {
+ if ((player->collision.orientationVector[1] <= 0.7318f) || (player->surfaceType == CLIFF)) {
arg3[0] = ((player->unk_206 / 182) * 0xB4);
arg3[2] = (-(player->slopeAccel / 182) * 0xB4);
if (((player->unk_094 / 18.0f) * 216.0f) >= 8.0f) {
- func_80031F48(player, 5.0f);
+ decelerate_ai_player(player, 5.0f);
}
player->unk_DAC = 0.5f;
if ((player->effects & BOOST_EFFECT) != 0) {
@@ -115,14 +115,14 @@ void func_8003E37C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4
}
void func_8003E6EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
- *arg5 += arg1[0] * player->unk_110.unk3C[2] * 1;
- *arg6 += arg1[1] * player->unk_110.unk3C[2] * 0.1;
- *arg7 += arg1[2] * player->unk_110.unk3C[2] * 1;
+ *arg5 += arg1[0] * player->collision.surfaceDistance[2] * 1;
+ *arg6 += arg1[1] * player->collision.surfaceDistance[2] * 0.1;
+ *arg7 += arg1[2] * player->collision.surfaceDistance[2] * 1;
func_8002A5F4(arg1, *arg4, arg2, 0.5f, 2);
- if (player->unk_110.orientationVector[1] <= 0.8829f) {
+ if (player->collision.orientationVector[1] <= 0.8829f) {
arg3[0] = ((player->unk_206 / 182) * 0xB4);
arg3[2] = (-(player->slopeAccel / 182) * 0xB4);
- func_80031F48(player, 4.0f);
+ decelerate_ai_player(player, 4.0f);
func_8003DC40(player);
} else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) {
arg3[0] = ((player->unk_206 / 182) * 0x32);
@@ -136,18 +136,18 @@ void func_8003E6EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4
}
void func_8003E9EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
- *arg5 += arg1[0] * player->unk_110.unk3C[2] * 1;
- *arg6 += arg1[1] * player->unk_110.unk3C[2] * 0.1;
- *arg7 += arg1[2] * player->unk_110.unk3C[2] * 1;
+ *arg5 += arg1[0] * player->collision.surfaceDistance[2] * 1;
+ *arg6 += arg1[1] * player->collision.surfaceDistance[2] * 0.1;
+ *arg7 += arg1[2] * player->collision.surfaceDistance[2] * 1;
func_8002A5F4(arg1, *arg4, arg2, 1.2f, 2);
- if (player->unk_110.orientationVector[1] <= 0.8357f) {
+ if (player->collision.orientationVector[1] <= 0.8357f) {
arg3[0] = ((player->unk_206 / 182) * 0x78);
arg3[2] = (-(player->slopeAccel / 182) * 0xB4);
- func_80031F48(player, 4.0f);
+ decelerate_ai_player(player, 4.0f);
func_8003DC40(player);
} else {
if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) {
- if ((player->boundingBoxCorners[2].surfaceType == ASPHALT) || (player->boundingBoxCorners[3].surfaceType == ASPHALT) || (player->boundingBoxCorners[1].surfaceType == ASPHALT) || (player->boundingBoxCorners[0].surfaceType == ASPHALT)) {
+ if ((player->tyres[BACK_LEFT].surfaceType == ASPHALT) || (player->tyres[BACK_RIGHT].surfaceType == ASPHALT) || (player->tyres[FRONT_RIGHT].surfaceType == ASPHALT) || (player->tyres[FRONT_LEFT].surfaceType == ASPHALT)) {
arg3[0] = ((player->unk_206 / 182) * 5);
} else {
arg3[0] = ((player->unk_206 / 182) * 0x28);
@@ -167,14 +167,14 @@ void func_8003E9EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4
}
void func_8003EE2C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
- *arg5 += arg1[0] * player->unk_110.unk3C[2] * 1;
- *arg6 += arg1[1] * player->unk_110.unk3C[2] * 0.1;
- *arg7 += arg1[2] * player->unk_110.unk3C[2] * 1;
+ *arg5 += arg1[0] * player->collision.surfaceDistance[2] * 1;
+ *arg6 += arg1[1] * player->collision.surfaceDistance[2] * 0.1;
+ *arg7 += arg1[2] * player->collision.surfaceDistance[2] * 1;
func_8002A5F4(arg1, *arg4, arg2, 0.5f, 2);
- if (player->unk_110.orientationVector[1] <= 0.8357f) {
+ if (player->collision.orientationVector[1] <= 0.8357f) {
arg3[0] = ((player->unk_206 / 182) * 0x78);
arg3[2] = (-(player->slopeAccel / 182) * 0xB4);
- func_80031F48(player, 4.0f);
+ decelerate_ai_player(player, 4.0f);
func_8003DC40(player);
} else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) {
arg3[0] = ((player->unk_206 / 182) * 0x32);
@@ -188,17 +188,17 @@ void func_8003EE2C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4
}
void func_8003F138(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
- *arg5 += arg1[0] * player->unk_110.unk3C[2] * 1;
- *arg6 += arg1[1] * player->unk_110.unk3C[2] * 0.1;
- *arg7 += arg1[2] * player->unk_110.unk3C[2] * 1;
+ *arg5 += arg1[0] * player->collision.surfaceDistance[2] * 1;
+ *arg6 += arg1[1] * player->collision.surfaceDistance[2] * 0.1;
+ *arg7 += arg1[2] * player->collision.surfaceDistance[2] * 1;
func_8002A5F4(arg1, *arg4, arg2, 0.5f, 2);
if (player->surfaceType == GRASS) {
player->unk_044 &= ~1;
}
- if (player->unk_110.orientationVector[1] <= 0.8357f) {
+ if (player->collision.orientationVector[1] <= 0.8357f) {
arg3[0] = ((player->unk_206 / 182) * 0xC8);
arg3[2] = (-(player->slopeAccel / 182) * 0xC8);
- func_80031F48(player, 4.0f);
+ decelerate_ai_player(player, 4.0f);
player->unk_DAC = 0.5f;
arg3[0] = 0;
} else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) {
@@ -215,13 +215,13 @@ void func_8003F138(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4
}
void func_8003F46C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) {
- arg1[0] = -player->unk_110.orientationVector[0];
- arg1[1] = -player->unk_110.orientationVector[1];
- arg1[2] = -player->unk_110.orientationVector[2];
- if ((player->unk_110.orientationVector[1] < 0.0f) && ((player->unk_0CA & 2) == 0)) {
- *arg5 += arg1[0] * player->unk_110.unk3C[2] * 1;
- *arg6 += arg1[1] * player->unk_110.unk3C[2] * 1;
- *arg7 += arg1[2] * player->unk_110.unk3C[2] * 1;
+ arg1[0] = -player->collision.orientationVector[0];
+ arg1[1] = -player->collision.orientationVector[1];
+ arg1[2] = -player->collision.orientationVector[2];
+ if ((player->collision.orientationVector[1] < 0.0f) && ((player->unk_0CA & 2) == 0)) {
+ *arg5 += arg1[0] * player->collision.surfaceDistance[2] * 1;
+ *arg6 += arg1[1] * player->collision.surfaceDistance[2] * 1;
+ *arg7 += arg1[2] * player->collision.surfaceDistance[2] * 1;
func_8002A5F4(arg1, *arg4, arg2, 1.2f, 0.0f);
player->kartHopJerk = 0.0f;
player->kartHopAcceleration = 0.0f;
@@ -263,43 +263,43 @@ void func_8003F734(Player *player, Vec3f arg1, Vec3f arg2, f32 *arg3, f32 *arg4,
f32 temp_f14;
f32 temp_f0_2;
- arg1[0] = -player->unk_110.unk48[0];
- arg1[1] = -player->unk_110.unk48[1];
- arg1[2] = -player->unk_110.unk48[2];
- if (player->unk_110.unk48[1] == 0) {
- *arg4 += arg1[0] * player->unk_110.unk3C[0] * 1;
- *arg5 += arg1[1] * player->unk_110.unk3C[0] * 0.1;
- *arg6 += arg1[2] * player->unk_110.unk3C[0] * 1;
+ arg1[0] = -player->collision.unk48[0];
+ arg1[1] = -player->collision.unk48[1];
+ arg1[2] = -player->collision.unk48[2];
+ if (player->collision.unk48[1] == 0) {
+ *arg4 += arg1[0] * player->collision.surfaceDistance[0] * 1;
+ *arg5 += arg1[1] * player->collision.surfaceDistance[0] * 0.1;
+ *arg6 += arg1[2] * player->collision.surfaceDistance[0] * 1;
if ((player->slopeAccel < 0) && (((player->unk_094 / 18.0f) * 216.0f) < 10.0f)) {
func_8002A5F4(arg1, *arg3, arg2, 2.5f, 0);
} else {
func_8002A5F4(arg1, *arg3, arg2, 0.5f, 0);
}
- } else if (player->unk_110.unk48[1] <= 0.5) {
- *arg4 += arg1[0] * player->unk_110.unk3C[0] * 1;
- *arg5 += arg1[1] * player->unk_110.unk3C[0] * 0.1;
- *arg6 += arg1[2] * player->unk_110.unk3C[0] * 1;
+ } else if (player->collision.unk48[1] <= 0.5) {
+ *arg4 += arg1[0] * player->collision.surfaceDistance[0] * 1;
+ *arg5 += arg1[1] * player->collision.surfaceDistance[0] * 0.1;
+ *arg6 += arg1[2] * player->collision.surfaceDistance[0] * 1;
func_8002A5F4(arg1, *arg3, arg2, 1, 0);
if ((!(player->effects & 0x10000)) && ((player->effects & 8) == 0)) {
arg2[1] *= -1e-05;
}
} else {
- *arg4 += arg1[0] * player->unk_110.unk3C[0] * 1;
- temp_f0_2 = player->unk_110.unk3C[0] * arg1[1];
+ *arg4 += arg1[0] * player->collision.surfaceDistance[0] * 1;
+ temp_f0_2 = player->collision.surfaceDistance[0] * arg1[1];
if (temp_f0_2 < 0) {
*arg5 += temp_f0_2 * 0.1;
} else {
*arg5 += temp_f0_2 * 0;
}
- *arg6 += arg1[2] * player->unk_110.unk3C[0] * 1;
+ *arg6 += arg1[2] * player->collision.surfaceDistance[0] * 1;
func_8002A5F4(arg1, *arg3, arg2, 1.2f, 0);
if ((!(player->effects & 0x10000)) && ((player->effects & 8) == 0)) {
arg2[1] *= -1e-05;
}
}
player->effects &= ~0x10;
- temp_f12 = player->unk_110.unk3C[0] * arg1[0];
- temp_f14 = player->unk_110.unk3C[0] * arg1[2];
+ temp_f12 = player->collision.surfaceDistance[0] * arg1[0];
+ temp_f14 = player->collision.surfaceDistance[0] * arg1[2];
if (((temp_f12 >= 0) && (temp_f14 >= 0)) || ((temp_f12 < 0) && (temp_f14 >= 0))) {
temp_f0_2 = player->boundingBoxSize / 2;
player->unk_218 = *arg4 - temp_f12 - temp_f0_2;
@@ -317,43 +317,43 @@ void func_8003FBAC(Player *player, Vec3f arg1, Vec3f arg2, f32 *arg3, f32 *arg4,
f32 temp_f12;
f32 temp_f14;
- arg1[0] = -player->unk_110.unk54[0];
- arg1[1] = -player->unk_110.unk54[1];
- arg1[2] = -player->unk_110.unk54[2];
- if (player->unk_110.unk54[1] == 0) {
- *arg4 += arg1[0] * player->unk_110.unk3C[1] * 1;
- *arg5 += arg1[1] * player->unk_110.unk3C[1] * 0.1;
- *arg6 += arg1[2] * player->unk_110.unk3C[1] * 1;
+ arg1[0] = -player->collision.unk54[0];
+ arg1[1] = -player->collision.unk54[1];
+ arg1[2] = -player->collision.unk54[2];
+ if (player->collision.unk54[1] == 0) {
+ *arg4 += arg1[0] * player->collision.surfaceDistance[1] * 1;
+ *arg5 += arg1[1] * player->collision.surfaceDistance[1] * 0.1;
+ *arg6 += arg1[2] * player->collision.surfaceDistance[1] * 1;
if ((player->slopeAccel < 0) && (((player->unk_094 / 18.0f) * 216.0f) < 10.0f)) {
func_8002A5F4(arg1, *arg3, arg2, 1.5f, 0);
} else {
func_8002A5F4(arg1, *arg3, arg2, 0.5f, 0);
}
- } else if (player->unk_110.unk54[1] <= 0.5) {
- *arg4 += arg1[0] * player->unk_110.unk3C[1] * 1;
- *arg5 += arg1[1] * player->unk_110.unk3C[1] * 0.1;
- *arg6 += arg1[2] * player->unk_110.unk3C[1] * 1;
+ } else if (player->collision.unk54[1] <= 0.5) {
+ *arg4 += arg1[0] * player->collision.surfaceDistance[1] * 1;
+ *arg5 += arg1[1] * player->collision.surfaceDistance[1] * 0.1;
+ *arg6 += arg1[2] * player->collision.surfaceDistance[1] * 1;
func_8002A5F4(arg1, *arg3, arg2, 1, 0);
if ((!(player->effects & 0x10000)) && ((player->effects & 8) == 0)) {
arg2[1] *= -1e-05;
}
} else {
- *arg4 += arg1[0] * player->unk_110.unk3C[1] * 1;
- temp_f0_2 = player->unk_110.unk3C[1] * arg1[1];
+ *arg4 += arg1[0] * player->collision.surfaceDistance[1] * 1;
+ temp_f0_2 = player->collision.surfaceDistance[1] * arg1[1];
if (temp_f0_2 < 0) {
*arg5 += temp_f0_2 * 0.1;
} else {
*arg5 += temp_f0_2 * 0;
}
- *arg6 += arg1[2] * player->unk_110.unk3C[1] * 1;
+ *arg6 += arg1[2] * player->collision.surfaceDistance[1] * 1;
func_8002A5F4(arg1, *arg3, arg2, 1.2f, 0);
if ((!(player->effects & 0x10000)) && ((player->effects & 8) == 0)) {
arg2[1] *= -1e-05;
}
}
player->effects &= ~0x10;
- temp_f12 = player->unk_110.unk3C[1] * arg1[0];
- temp_f14 = player->unk_110.unk3C[1] * arg1[2];
+ temp_f12 = player->collision.surfaceDistance[1] * arg1[0];
+ temp_f14 = player->collision.surfaceDistance[1] * arg1[2];
if (((temp_f12 >= 0) && (temp_f14 >= 0)) || ((temp_f12 >= 0) && (temp_f14 < 0))) {
temp_f0_2 = player->boundingBoxSize / 2;
player->unk_218 = *arg4 - temp_f12 - temp_f0_2;