Skip to content

Commit

Permalink
Rename collision funcs
Browse files Browse the repository at this point in the history
  • Loading branch information
MegaMech committed Jun 24, 2024
1 parent f2370d9 commit d0f7836
Show file tree
Hide file tree
Showing 20 changed files with 123 additions and 122 deletions.
6 changes: 3 additions & 3 deletions asm/non_matchings/code_80005FD0/kart_ai_use_item_strategy.s
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ glabel L8001AFD8
/* 01BC94 8001B094 46283280 */ add.d $f10, $f6, $f8
/* 01BC98 8001B098 8D86001C */ lw $a2, 0x1c($t4)
/* 01BC9C 8001B09C AFA70028 */ sw $a3, 0x28($sp)
/* 01BCA0 8001B0A0 0C0AB870 */ jal func_802AE1C0
/* 01BCA0 8001B0A0 0C0AB870 */ jal spawn_actor_on_surface
/* 01BCA4 8001B0A4 462053A0 */ cvt.s.d $f14, $f10
/* 01BCA8 8001B0A8 8FA70028 */ lw $a3, 0x28($sp)
/* 01BCAC 8001B0AC 3C013F80 */ li $at, 0x3F800000 # 1.000000
Expand Down Expand Up @@ -582,7 +582,7 @@ glabel L8001B3B4
/* 01C054 8001B454 E4E00028 */ swc1 $f0, 0x28($a3)
/* 01C058 8001B458 E4E0002C */ swc1 $f0, 0x2c($a3)
/* 01C05C 8001B45C AFA70028 */ sw $a3, 0x28($sp)
/* 01C060 8001B460 0C0AB870 */ jal func_802AE1C0
/* 01C060 8001B460 0C0AB870 */ jal spawn_actor_on_surface
/* 01C064 8001B464 462033A0 */ cvt.s.d $f14, $f6
/* 01C068 8001B468 8FA70028 */ lw $a3, 0x28($sp)
/* 01C06C 8001B46C 3C013F80 */ li $at, 0x3F800000 # 1.000000
Expand Down Expand Up @@ -1122,7 +1122,7 @@ glabel L8001BB30
/* 01C7F4 8001BBF4 46249180 */ add.d $f6, $f18, $f4
/* 01C7F8 8001BBF8 8CE60020 */ lw $a2, 0x20($a3)
/* 01C7FC 8001BBFC AFA70028 */ sw $a3, 0x28($sp)
/* 01C800 8001BC00 0C0AB870 */ jal func_802AE1C0
/* 01C800 8001BC00 0C0AB870 */ jal spawn_actor_on_surface
/* 01C804 8001BC04 462033A0 */ cvt.s.d $f14, $f6
/* 01C808 8001BC08 8FA70028 */ lw $a3, 0x28($sp)
/* 01C80C 8001BC0C C4E8000C */ lwc1 $f8, 0xc($a3)
Expand Down
2 changes: 1 addition & 1 deletion enhancements/flycam.patch
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ index 0000000..5569838
+ f32 pitchChange = controller->rawStickY * SENSITIVITY_Y;
+ Vec3f forwardVector;
+
+ func_802ADDC8(&camera->unk_54, 50, camera->pos[0], camera->pos[1], camera->pos[2]);
+ check_bounding_collision(&camera->collision, 50, camera->pos[0], camera->pos[1], camera->pos[2]);
+
+ camera->rot[1] += (short)(yawChange * 65535.0f / (2 * M_PI)); // Convert radians to 0-65535 range
+
Expand Down
8 changes: 4 additions & 4 deletions src/actors/banana/update.inc.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ void update_actor_banana(struct BananaActor *banana) {
banana->pos[1] = player->pos[1] - temp_f14 - 2.0f;
banana->pos[2] = player->pos[2] - temp_f16;
}
func_802ADDC8(&banana->unk30, banana->boundingBoxSize + 1.0f, banana->pos[0], banana->pos[1], banana->pos[2]);
check_bounding_collision(&banana->unk30, banana->boundingBoxSize + 1.0f, banana->pos[0], banana->pos[1], banana->pos[2]);
func_802B4E30((struct Actor *) banana);
if ((player->type & PLAYER_HUMAN) != 0) {
if (gDemoMode) {
Expand Down Expand Up @@ -99,7 +99,7 @@ void update_actor_banana(struct BananaActor *banana) {
if ((banana->pos[2] < (f32) gCourseMinZ) || ((f32) gCourseMaxZ < banana->pos[2]) || (banana->pos[0] < (f32) gCourseMinX) || ((f32) gCourseMaxX < banana->pos[0]) || (banana->pos[1] < (f32) gCourseMinY)) {
destroy_destructable_actor((struct Actor *) banana);
} else {
func_802ADDC8(&banana->unk30, banana->boundingBoxSize + 1.0f, banana->pos[0], banana->pos[1], banana->pos[2]);
check_bounding_collision(&banana->unk30, banana->boundingBoxSize + 1.0f, banana->pos[0], banana->pos[1], banana->pos[2]);
banana->unk30.unk34 = 1;
if ((banana->unk30.unk34 != 0) && (banana->unk30.surfaceDistance[2] < 0.0f)) {
someOtherVelocity[0] = -banana->unk30.orientationVector[0];
Expand Down Expand Up @@ -137,7 +137,7 @@ void update_actor_banana(struct BananaActor *banana) {
banana->pos[1] = unkY - temp_f14 - 2.0f;
banana->pos[2] = unkZ - temp_f16;
}
func_802ADDC8(&banana->unk30, banana->boundingBoxSize + 1.0f, banana->pos[0], banana->pos[1], banana->pos[2]);
check_bounding_collision(&banana->unk30, banana->boundingBoxSize + 1.0f, banana->pos[0], banana->pos[1], banana->pos[2]);
func_802B4E30((struct Actor *) banana);
break;
case BANANA_BUNCH_BANANA:
Expand All @@ -159,7 +159,7 @@ void update_actor_banana(struct BananaActor *banana) {
banana->pos[2] = elderBanana->pos[2] - temp_f16;
}
var_f8 = banana->pos[2];
func_802ADDC8(&banana->unk30, banana->boundingBoxSize + 1.0f, banana->pos[0], banana->pos[1], banana->pos[2]);
check_bounding_collision(&banana->unk30, banana->boundingBoxSize + 1.0f, banana->pos[0], banana->pos[1], banana->pos[2]);
func_802B4E30((struct Actor *) banana);
break;
case DESTROYED_BANANA:
Expand Down
8 changes: 4 additions & 4 deletions src/actors/blue_and_red_shells/update.inc.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ void func_802B3B44(struct ShellActor *shell) {
shell->pos[0] += temp_f12_3;
shell->pos[1] += temp_f14_2;
shell->pos[2] += temp_f16_2;
func_802AD950(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], origPos[0], origPos[1], origPos[2]);
actor_terrain_collision(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], origPos[0], origPos[1], origPos[2]);
func_802B4E30((struct Actor *) shell);
}
} else {
Expand Down Expand Up @@ -142,7 +142,7 @@ void func_802B3E7C(struct ShellActor *shell, Player *player) {
if (player->effects & BOO_EFFECT) {
destroy_destructable_actor((struct Actor *) shell);
} else {
func_802AD950(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], newPosition[0], newPosition[1], newPosition[2]);
actor_terrain_collision(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], newPosition[0], newPosition[1], newPosition[2]);
func_802B4E30((struct Actor *) shell);
func_802B4104(shell);
}
Expand Down Expand Up @@ -385,7 +385,7 @@ void update_actor_red_blue_shell(struct ShellActor *shell) {
shell->pos[0] += shell->velocity[0];
shell->pos[1] += shell->velocity[1];
shell->pos[2] += shell->velocity[2];
func_802AD950(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], origPos[0], origPos[1], origPos[2]);
actor_terrain_collision(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], origPos[0], origPos[1], origPos[2]);
func_802B4E30((struct Actor *) shell);
func_802B4104(shell);
break;
Expand Down Expand Up @@ -430,7 +430,7 @@ void update_actor_red_blue_shell(struct ShellActor *shell) {
shell->pos[0] = player->pos[0] + somePosVel[0];
shell->pos[1] = player->pos[1] + somePosVel[1];
shell->pos[2] = player->pos[2] + somePosVel[2];
func_802AD950(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], origPos[0], origPos[1], origPos[2]);
actor_terrain_collision(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], origPos[0], origPos[1], origPos[2]);
func_802B4E30((struct Actor *) shell);
}
break;
Expand Down
2 changes: 1 addition & 1 deletion src/actors/fake_item_box/update.inc.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ void update_actor_fake_item_box(struct FakeItemBox *fake_item_box) {
fake_item_box->pos[0] = temp_v0_4->pos[0] - temp_f14;
fake_item_box->pos[1] = (temp_v0_4->pos[1] - temp_f16) - 1.0f;
fake_item_box->pos[2] = temp_v0_4->pos[2] - temp_f18;
func_802ADDC8(&fake_item_box->unk30, fake_item_box->boundingBoxSize, fake_item_box->pos[0], fake_item_box->pos[1], fake_item_box->pos[2]);
check_bounding_collision(&fake_item_box->unk30, fake_item_box->boundingBoxSize, fake_item_box->pos[0], fake_item_box->pos[1], fake_item_box->pos[2]);
func_802B4E30((struct Actor *)fake_item_box);
temp_v1_3 = &gControllers[temp_v1];
if ((temp_v0_4->type & 0x4000) != 0) {
Expand Down
8 changes: 4 additions & 4 deletions src/actors/falling_rock/update.inc.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ void update_actor_falling_rocks(struct FallingRock *rock) {
rock->pos[1] += rock->velocity[1];
rock->pos[2] += rock->velocity[2];
pad1 = rock->velocity[1];
func_802ADDC8(&rock->unk30, 10.0f, rock->pos[0], rock->pos[1], rock->pos[2]);
check_bounding_collision(&rock->unk30, 10.0f, rock->pos[0], rock->pos[1], rock->pos[2]);
pad0 = rock->unk30.surfaceDistance[2];
if (pad0 < 0.0f) {
unkVec[0] = -rock->unk30.orientationVector[0];
Expand All @@ -86,7 +86,7 @@ void update_actor_falling_rocks(struct FallingRock *rock) {
rock->pos[0] += unkVec[0] * rock->unk30.surfaceDistance[2];
rock->pos[1] += unkVec[1] * rock->unk30.surfaceDistance[2];
rock->pos[2] += unkVec[2] * rock->unk30.surfaceDistance[2];
func_802AC114(unkVec, pad0, rock->velocity, 2.0f);
adjust_pos_orthogonally(unkVec, pad0, rock->velocity, 2.0f);
rock->velocity[1] = -1.2f * pad1;
func_800C98B8(rock->pos, rock->velocity, SOUND_ARG_LOAD(0x19, 0x00, 0x80, 0x0F));
}
Expand All @@ -103,7 +103,7 @@ void update_actor_falling_rocks(struct FallingRock *rock) {
rock->pos[0] += unkVec[0] * rock->unk30.surfaceDistance[0];
rock->pos[1] += unkVec[1] * rock->unk30.surfaceDistance[0];
rock->pos[2] += unkVec[2] * rock->unk30.surfaceDistance[0];
func_802AC114(unkVec, pad0, rock->velocity, 2.0f);
adjust_pos_orthogonally(unkVec, pad0, rock->velocity, 2.0f);
rock->velocity[1] = -1.2f * pad1;
func_800C98B8(rock->pos, rock->velocity, SOUND_ARG_LOAD(0x19, 0x00, 0x80, 0x0F));
}
Expand All @@ -121,7 +121,7 @@ void update_actor_falling_rocks(struct FallingRock *rock) {
rock->pos[1] += unkVec[1] * rock->unk30.surfaceDistance[1];
rock->pos[2] += unkVec[2] * rock->unk30.surfaceDistance[1];
pad1 = rock->velocity[1];
func_802AC114(unkVec, pad0, rock->velocity, 2.0f);
adjust_pos_orthogonally(unkVec, pad0, rock->velocity, 2.0f);
rock->velocity[1] = -1.2f * pad1;
func_800C98B8(rock->pos, rock->velocity, SOUND_ARG_LOAD(0x19, 0x00, 0x80, 0x0F));
}
Expand Down
4 changes: 2 additions & 2 deletions src/actors/green_shell/update.inc.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ void update_actor_green_shell(struct ShellActor *shell) {
shell->pos[0] += shell->velocity[0];
shell->pos[1] += shell->velocity[1];
shell->pos[2] += shell->velocity[2];
func_802AD950(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], somePos2[0], somePos2[1], somePos2[2]);
actor_terrain_collision(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], somePos2[0], somePos2[1], somePos2[2]);
func_802B4E30((struct Actor *) shell);
if ((shell->unk30.surfaceDistance[0] < 0.0f) || (shell->unk30.surfaceDistance[1] < 0.0f)) {
shell_collision(&shell->unk30, shell->velocity);
Expand All @@ -170,7 +170,7 @@ void update_actor_green_shell(struct ShellActor *shell) {
shell->pos[0] = player->pos[0] + somePosVel[0];
shell->pos[1] = player->pos[1] + somePosVel[1];
shell->pos[2] = player->pos[2] + somePosVel[2];
func_802AD950(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], somePos2[0], somePos2[1], somePos2[2]);
actor_terrain_collision(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], somePos2[0], somePos2[1], somePos2[2]);
func_802B4E30((struct Actor *) shell);
}
break;
Expand Down
32 changes: 16 additions & 16 deletions src/camera.c
Original file line number Diff line number Diff line change
Expand Up @@ -641,23 +641,23 @@ void func_8001E0C4(Camera *camera, Player *player, s8 arg2) {
adjust_angle(&camera->unk_2C, player->rotation[1], var_a2);
func_8001CA78(player, camera, sp60, &sp74, &sp70, &sp6C, camera->unk_2C, arg2);
camera->someBitFlags &= ~0x0004;
temp_t7 = func_802ADDC8(&camera->unk_54, test, sp74, sp70, sp6C);
if (camera->unk_54.surfaceDistance[2] < 0.0f) {
sp74 += -camera->unk_54.orientationVector[0] * camera->unk_54.surfaceDistance[2] * 1;
sp70 += -camera->unk_54.orientationVector[1] * camera->unk_54.surfaceDistance[2] * 0.5;
sp6C += -camera->unk_54.orientationVector[2] * camera->unk_54.surfaceDistance[2] * 1;
temp_t7 = check_bounding_collision(&camera->collision, test, sp74, sp70, sp6C);
if (camera->collision.surfaceDistance[2] < 0.0f) {
sp74 += -camera->collision.orientationVector[0] * camera->collision.surfaceDistance[2] * 1;
sp70 += -camera->collision.orientationVector[1] * camera->collision.surfaceDistance[2] * 0.5;
sp6C += -camera->collision.orientationVector[2] * camera->collision.surfaceDistance[2] * 1;
}
if (camera->unk_54.surfaceDistance[0] < 0.0f) {
if (camera->collision.surfaceDistance[0] < 0.0f) {
camera->someBitFlags = camera->someBitFlags | 4 | 2;
sp74 += -camera->unk_54.unk48[0] * camera->unk_54.surfaceDistance[0] * 1.5;
sp70 += -camera->unk_54.unk48[1] * camera->unk_54.surfaceDistance[0] * 1;
sp6C += -camera->unk_54.unk48[2] * camera->unk_54.surfaceDistance[0] * 1.5;
sp74 += -camera->collision.unk48[0] * camera->collision.surfaceDistance[0] * 1.5;
sp70 += -camera->collision.unk48[1] * camera->collision.surfaceDistance[0] * 1;
sp6C += -camera->collision.unk48[2] * camera->collision.surfaceDistance[0] * 1.5;
}
if (camera->unk_54.surfaceDistance[1] < 0.0f) {
if (camera->collision.surfaceDistance[1] < 0.0f) {
camera->someBitFlags = camera->someBitFlags | 4 | 2;
sp74 += -camera->unk_54.unk54[0] * camera->unk_54.surfaceDistance[1] * 1.5;
sp70 += -camera->unk_54.unk54[1] * camera->unk_54.surfaceDistance[1] * 1;
sp6C += -camera->unk_54.unk54[2] * camera->unk_54.surfaceDistance[1] * 1.5;
sp74 += -camera->collision.unk54[0] * camera->collision.surfaceDistance[1] * 1.5;
sp70 += -camera->collision.unk54[1] * camera->collision.surfaceDistance[1] * 1;
sp6C += -camera->collision.unk54[2] * camera->collision.surfaceDistance[1] * 1.5;
}
if ((temp_t7 == 0) && ((camera->someBitFlags & 2) != 2)) {
camera->unk_AC = camera->unk_2C;
Expand Down Expand Up @@ -748,7 +748,7 @@ void func_8001E45C(Camera *camera, Player *player, s8 arg2) {
}
temp = 3;
camera->someBitFlags &= 0xFFFB;
func_802ADDC8(&camera->unk_54, temp, sp84, sp80, sp7C);
check_bounding_collision(&camera->collision, temp, sp84, sp80, sp7C);

camera->pos[0] = sp84;
camera->pos[1] = sp80;
Expand Down Expand Up @@ -783,7 +783,7 @@ void func_8001E8E8(Camera *camera, Player *player, s8 arg2) {
camera->unk_B0 = 0;
camera->unk_2C = player->rotation[1];
func_8001D53C(player, camera, sp5C, &sp7C, &sp78, &sp74, (s16) (s32) player->rotation[1], (s16) (s32) arg2);
func_802ADDC8(&camera->unk_54, 5.0f, sp7C, sp78, sp74);
check_bounding_collision(&camera->collision, 5.0f, sp7C, sp78, sp74);
camera->lookAt[0] = sp5C[0];
camera->lookAt[1] = sp5C[1];
camera->lookAt[2] = sp5C[2];
Expand Down Expand Up @@ -870,7 +870,7 @@ void func_8001EA0C(Camera *camera, Player *player, s8 arg2) {
}
temp = 3;
camera->someBitFlags &= 0xFFFB;
func_802ADDC8(&camera->unk_54, temp, sp84, sp80, sp7C);
check_bounding_collision(&camera->collision, temp, sp84, sp80, sp7C);

camera->pos[0] = sp84;
camera->pos[1] = sp80;
Expand Down
2 changes: 1 addition & 1 deletion src/camera.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ typedef struct {
/* 0x48 */ s32 unk_48;
/* 0x4C */ s32 unk_4C;
/* 0x50 */ s32 unk_50;
/* 0x54 */ Collision unk_54;
/* 0x54 */ Collision collision;
// When you hit a wall (or another driver) the camera's pos and lookAt bounce up and down. This is the velocity(?) of that bouncing
/* 0x94 */ UnkCameraInner unk_94;
// Timer for wall-hit bounce. Counts up instead of down
Expand Down
Loading

0 comments on commit d0f7836

Please sign in to comment.