summaryrefslogtreecommitdiff
path: root/src/player_controller.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/player_controller.c')
-rw-r--r--src/player_controller.c152
1 files changed, 76 insertions, 76 deletions
diff --git a/src/player_controller.c b/src/player_controller.c
index bfb791f11..421581d06 100644
--- a/src/player_controller.c
+++ b/src/player_controller.c
@@ -1883,7 +1883,7 @@ void func_8002C954(Player* player, s8 playerId, Vec3f arg2) {
player->unk_256 = 0;
}
if ((player->slopeAccel >= 0) && (((player->speed / 18.0f) * 216.0f) > 5.0f)) {
- player_decelerate(player, 18.0f);
+ player_decelerate_alternative(player, 18.0f);
}
if ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) {
xdist = gPlayerLastVelocity[playerId][0] - arg2[0];
@@ -1947,7 +1947,7 @@ void apply_effect(Player* player, s8 arg1, s8 arg2) {
apply_boo_effect(player, arg1);
}
if (((player->effects & 0x20000000) == 0x20000000) && (player->unk_228 >= 0x64)) {
- player_decelerate(player, 4.0f);
+ player_decelerate_alternative(player, 4.0f);
}
if (((player->effects & 0x80) == 0x80) || ((player->effects & 0x40) == 0x40)) {
func_8008C9EC(player, arg1);
@@ -1969,7 +1969,7 @@ void apply_effect(Player* player, s8 arg1, s8 arg2) {
}
if ((player->effects & 0x800000) == 0x800000) {
func_8008D8B4(player, arg1);
- player_decelerate(player, 10.0f);
+ player_decelerate_alternative(player, 10.0f);
}
if (gRaceState != RACE_FINISHED) {
if (player->soundEffects & 0x04000000) {
@@ -2547,13 +2547,13 @@ void func_8002E594(Player* player, UNUSED Camera* camera, s8 screenId, s8 player
if (sp74 < 0.0f) {
func_8003F734(player, sp48, sp54, &sp74, &spD0, &spCC, &spC8);
func_8002C954(player, playerId, sp54);
- player_decelerate(player, 6.0f);
+ player_decelerate_alternative(player, 6.0f);
}
sp74 = player->collision.surfaceDistance[1];
if (sp74 < 0.0f) {
func_8003FBAC(player, sp48, sp54, &sp74, &spD0, &spCC, &spC8);
func_8002C954(player, playerId, sp54);
- player_decelerate(player, 6.0f);
+ player_decelerate_alternative(player, 6.0f);
}
sp74 = player->collision.surfaceDistance[0];
if (sp74 >= 0.0f) {
@@ -3199,7 +3199,7 @@ void detect_triple_a_combo_a_pressed(Player* player) {
}
}
-void player_accelerate(Player* player) {
+void player_accelerate_alternative(Player* player) {
s32 player_index;
player_index = get_player_index_for_player(player);
@@ -3312,7 +3312,7 @@ void player_accelerate(Player* player) {
}
}
-void player_decelerate(Player* player, f32 speed) {
+void player_decelerate_alternative(Player* player, f32 speed) {
s32 player_index;
player_index = get_player_index_for_player(player);
@@ -3491,7 +3491,7 @@ void func_800323E4(Player* player) {
player->effects |= 1;
// This check will never be true, why is it here?
if ((player->effects & 0x20) == 0x20) {
- player_decelerate(player, 1.0f);
+ player_decelerate_alternative(player, 1.0f);
player->unk_20C = var_f2;
} else {
if ((s32) player->tyres[BACK_RIGHT].surfaceType < 0xF) {
@@ -3511,24 +3511,24 @@ void func_800323E4(Player* player) {
}
if (gIsPlayerTripleBButtonCombo[var_v1] == true) {
if (player->unk_20C >= 2.0f) {
- player_decelerate(player, (1.0f - var_f2) * 5.0f);
+ player_decelerate_alternative(player, (1.0f - var_f2) * 5.0f);
} else {
- player_decelerate(player, (1.0f - var_f2) * 3.0f);
+ player_decelerate_alternative(player, (1.0f - var_f2) * 3.0f);
}
} else {
if (((player->speed / 18.0f) * 216.0f) <= 20.0f) {
- player_decelerate(player, (1.0f - var_f2) * 4.0f);
+ player_decelerate_alternative(player, (1.0f - var_f2) * 4.0f);
}
if (player->unk_20C >= 2.0f) {
- player_decelerate(player, (1.0f - var_f2) * 2.5);
+ player_decelerate_alternative(player, (1.0f - var_f2) * 2.5);
} else {
- player_decelerate(player, (1.0f - var_f2) * 1.2);
+ player_decelerate_alternative(player, (1.0f - var_f2) * 1.2);
}
}
}
}
-void func_80032700(Player* player) {
+void player_accelerate_during_start_sequence(Player* player) {
s32 temp_v0;
s32 var_v0;
s32 test;
@@ -3584,8 +3584,8 @@ void func_80032700(Player* player) {
player->unk_098 = (player->currentSpeed * player->currentSpeed) / 25.0f;
}
-void func_80032CB0(Player* player, f32 arg1) {
- player->currentSpeed -= arg1;
+void player_decelerate_during_start_sequence(Player* player, f32 speedReduction) {
+ player->currentSpeed -= speedReduction;
if (player->currentSpeed <= 0.0f) {
player->currentSpeed = 0.0f;
}
@@ -3603,7 +3603,7 @@ void func_80032CB0(Player* player, f32 arg1) {
player->unk_098 = (player->currentSpeed * player->currentSpeed) / 25.0f;
}
-void func_80032D94(Player* player) {
+void player_accelerate(Player* player) {
UNUSED s32 player_index;
player_index = get_player_index_for_player(player);
@@ -3643,8 +3643,8 @@ void func_80032D94(Player* player) {
player->unk_098 = (player->currentSpeed * player->currentSpeed) / 25.0f;
}
-void func_80033280(Player* player, f32 arg1) {
- player->currentSpeed -= arg1;
+void player_decelerate(Player* player, f32 speedReduction) {
+ player->currentSpeed -= speedReduction;
if (player->currentSpeed <= 0.0f) {
player->currentSpeed = 0.0f;
}
@@ -3654,54 +3654,54 @@ void func_80033280(Player* player, f32 arg1) {
player->unk_098 = (player->currentSpeed * player->currentSpeed) / 25.0f;
}
-void func_800332E8(Player* player, s32 arg1) {
- if ((D_80165280[arg1] >= 0.0) && (D_80165280[arg1] < ((f64) player->topSpeed * 0.1))) {
- D_80165280[arg1] += gKartAccelerationTables[player->characterId][0] * 3.2;
+void player_accelerate_global(Player* player, s32 playerIndex) {
+ if ((gPlayerCurrentSpeed[playerIndex] >= 0.0) && (gPlayerCurrentSpeed[playerIndex] < ((f64) player->topSpeed * 0.1))) {
+ gPlayerCurrentSpeed[playerIndex] += gKartAccelerationTables[player->characterId][0] * 3.2;
}
- if (((player->topSpeed * 0.1) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.2))) {
- D_80165280[arg1] += gKartAccelerationTables[player->characterId][1] * 3.2;
+ if (((player->topSpeed * 0.1) <= gPlayerCurrentSpeed[playerIndex]) && (gPlayerCurrentSpeed[playerIndex] < (player->topSpeed * 0.2))) {
+ gPlayerCurrentSpeed[playerIndex] += gKartAccelerationTables[player->characterId][1] * 3.2;
}
- if (((player->topSpeed * 0.2) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.3))) {
- D_80165280[arg1] += gKartAccelerationTables[player->characterId][2] * 3.2;
+ if (((player->topSpeed * 0.2) <= gPlayerCurrentSpeed[playerIndex]) && (gPlayerCurrentSpeed[playerIndex] < (player->topSpeed * 0.3))) {
+ gPlayerCurrentSpeed[playerIndex] += gKartAccelerationTables[player->characterId][2] * 3.2;
}
- if (((player->topSpeed * 0.3) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.4))) {
- D_80165280[arg1] += gKartAccelerationTables[player->characterId][3] * 3.2;
+ if (((player->topSpeed * 0.3) <= gPlayerCurrentSpeed[playerIndex]) && (gPlayerCurrentSpeed[playerIndex] < (player->topSpeed * 0.4))) {
+ gPlayerCurrentSpeed[playerIndex] += gKartAccelerationTables[player->characterId][3] * 3.2;
}
- if (((player->topSpeed * 0.4) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.5))) {
- D_80165280[arg1] += gKartAccelerationTables[player->characterId][4] * 3.2;
+ if (((player->topSpeed * 0.4) <= gPlayerCurrentSpeed[playerIndex]) && (gPlayerCurrentSpeed[playerIndex] < (player->topSpeed * 0.5))) {
+ gPlayerCurrentSpeed[playerIndex] += gKartAccelerationTables[player->characterId][4] * 3.2;
}
- if (((player->topSpeed * 0.5) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.6))) {
- D_80165280[arg1] += gKartAccelerationTables[player->characterId][5] * 3.2;
+ if (((player->topSpeed * 0.5) <= gPlayerCurrentSpeed[playerIndex]) && (gPlayerCurrentSpeed[playerIndex] < (player->topSpeed * 0.6))) {
+ gPlayerCurrentSpeed[playerIndex] += gKartAccelerationTables[player->characterId][5] * 3.2;
}
- if (((player->topSpeed * 0.6) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.7))) {
- D_80165280[arg1] += gKartAccelerationTables[player->characterId][6] * 3.2;
+ if (((player->topSpeed * 0.6) <= gPlayerCurrentSpeed[playerIndex]) && (gPlayerCurrentSpeed[playerIndex] < (player->topSpeed * 0.7))) {
+ gPlayerCurrentSpeed[playerIndex] += gKartAccelerationTables[player->characterId][6] * 3.2;
}
- if (((player->topSpeed * 0.7) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.8))) {
- D_80165280[arg1] += gKartAccelerationTables[player->characterId][7] * 2.8;
+ if (((player->topSpeed * 0.7) <= gPlayerCurrentSpeed[playerIndex]) && (gPlayerCurrentSpeed[playerIndex] < (player->topSpeed * 0.8))) {
+ gPlayerCurrentSpeed[playerIndex] += gKartAccelerationTables[player->characterId][7] * 2.8;
}
- if (((player->topSpeed * 0.8) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.9))) {
- D_80165280[arg1] += gKartAccelerationTables[player->characterId][8] * 2.8;
+ if (((player->topSpeed * 0.8) <= gPlayerCurrentSpeed[playerIndex]) && (gPlayerCurrentSpeed[playerIndex] < (player->topSpeed * 0.9))) {
+ gPlayerCurrentSpeed[playerIndex] += gKartAccelerationTables[player->characterId][8] * 2.8;
}
- if (((player->topSpeed * 0.9) <= D_80165280[arg1]) && (D_80165280[arg1] <= (player->topSpeed * 1.0))) {
- D_80165280[arg1] += gKartAccelerationTables[player->characterId][9] * 2.8;
+ if (((player->topSpeed * 0.9) <= gPlayerCurrentSpeed[playerIndex]) && (gPlayerCurrentSpeed[playerIndex] <= (player->topSpeed * 1.0))) {
+ gPlayerCurrentSpeed[playerIndex] += gKartAccelerationTables[player->characterId][9] * 2.8;
}
player->unk_044 |= 0x20;
- if (D_80165280[arg1] < 0.0f) {
- D_80165280[arg1] = 0.0f;
+ if (gPlayerCurrentSpeed[playerIndex] < 0.0f) {
+ gPlayerCurrentSpeed[playerIndex] = 0.0f;
}
- player->unk_098 = (D_80165280[arg1] * D_80165280[arg1]) / 25.0f;
+ player->unk_098 = (gPlayerCurrentSpeed[playerIndex] * gPlayerCurrentSpeed[playerIndex]) / 25.0f;
}
-void func_800337CC(Player* player, f32 arg1, s32 arg2) {
+void player_decelerate_global(Player* player, f32 speedReduction, s32 playerIndex) {
player->unk_044 &= ~0x20;
- D_80165280[arg2] -= arg1;
- if (D_80165280[arg2] <= 0.0f) {
- D_80165280[arg2] = 0.0f;
+ gPlayerCurrentSpeed[playerIndex] -= speedReduction;
+ if (gPlayerCurrentSpeed[playerIndex] <= 0.0f) {
+ gPlayerCurrentSpeed[playerIndex] = 0.0f;
}
- if (player->topSpeed <= D_80165280[arg2]) {
- D_80165280[arg2] = player->topSpeed;
+ if (player->topSpeed <= gPlayerCurrentSpeed[playerIndex]) {
+ gPlayerCurrentSpeed[playerIndex] = player->topSpeed;
}
- player->unk_098 = (D_80165280[arg2] * D_80165280[arg2]) / 25.0f;
+ player->unk_098 = (gPlayerCurrentSpeed[playerIndex] * gPlayerCurrentSpeed[playerIndex]) / 25.0f;
}
void func_80033850(Player* player, f32 arg1) {
@@ -4519,13 +4519,13 @@ void func_80037CFC(Player* player, struct Controller* controller, s8 arg2) {
}
if ((player->unk_044 & 1) != 1) {
if (controller->button & A_BUTTON) {
- player_accelerate(player);
+ player_accelerate_alternative(player);
detect_triple_a_combo_a_pressed(player);
} else {
if (gModeSelection == BATTLE) {
- player_decelerate(player, 2.0f);
+ player_decelerate_alternative(player, 2.0f);
} else {
- player_decelerate(player, 1.0f);
+ player_decelerate_alternative(player, 1.0f);
}
detect_triple_a_combo_a_released(player);
}
@@ -4555,9 +4555,9 @@ void func_80037CFC(Player* player, struct Controller* controller, s8 arg2) {
} else {
if ((player->effects & 0x4000) == 0x4000) {
if (controller->button & A_BUTTON) {
- player_accelerate(player);
+ player_accelerate_alternative(player);
} else {
- player_decelerate(player, 5.0f);
+ player_decelerate_alternative(player, 5.0f);
}
}
if (((((player->effects & 0x80) == 0x80) || ((player->effects & 0x40) == 0x40)) ||
@@ -4565,24 +4565,24 @@ void func_80037CFC(Player* player, struct Controller* controller, s8 arg2) {
((player->effects & HIT_BY_ITEM_EFFECT) == HIT_BY_ITEM_EFFECT)) {
if (controller->button & A_BUTTON) {
detect_triple_a_combo_a_pressed(player);
- func_800332E8(player, arg2);
+ player_accelerate_global(player, arg2);
return;
}
detect_triple_a_combo_a_released(player);
- func_800337CC(player, 5.0f, arg2);
+ player_decelerate_global(player, 5.0f, arg2);
}
}
}
-void func_800381AC(Player* player, struct Controller* controller, s8 arg2) {
+void handle_a_press_for_player_during_race(Player* player, struct Controller* controller, s8 arg2) {
if (((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) && ((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) &&
((player->type & PLAYER_CPU) != PLAYER_CPU)) {
if ((player->type & PLAYER_START_SEQUENCE) != PLAYER_START_SEQUENCE) {
if (((player->unk_0CA & 2) == 2) || ((player->unk_0CA & 8) == 8)) {
if (controller->button & A_BUTTON) {
- func_80032D94(player);
+ player_accelerate(player);
} else {
- func_80033280(player, 5.0f);
+ player_decelerate(player, 5.0f);
}
} else {
func_80037CFC(player, controller, arg2);
@@ -4595,15 +4595,15 @@ void func_800381AC(Player* player, struct Controller* controller, s8 arg2) {
}
}
if (controller->button & A_BUTTON) {
- func_80032700(player);
+ player_accelerate_during_start_sequence(player);
} else {
- func_80032CB0(player, 5.0f);
+ player_decelerate_during_start_sequence(player, 5.0f);
}
}
}
}
-void func_800382DC(void) {
+void handle_a_press_for_all_players_during_race(void) {
u16 temp_v0_3;
u16 temp_v0_4;
u16 temp_v0_5;
@@ -4613,31 +4613,31 @@ void func_800382DC(void) {
case SCREEN_MODE_1P:
switch (gModeSelection) {
case GRAND_PRIX:
- func_800381AC(gPlayerOne, gControllerOne, 0);
+ handle_a_press_for_player_during_race(gPlayerOne, gControllerOne, 0);
return;
case TIME_TRIALS:
if (D_8015F890 != 1) {
- func_800381AC(gPlayerOne, gControllerOne, 0);
+ handle_a_press_for_player_during_race(gPlayerOne, gControllerOne, 0);
temp_v0_3 = gPlayerTwo->type;
if (((temp_v0_3 & 0x100) == 0x100) && ((temp_v0_3 & 0x800) != 0x800)) {
- func_800381AC(gPlayerTwo, gControllerSix, 1);
+ handle_a_press_for_player_during_race(gPlayerTwo, gControllerSix, 1);
}
temp_v0_4 = gPlayerThree->type;
if (((temp_v0_4 & 0x100) == 0x100) && ((temp_v0_4 & 0x800) != 0x800)) {
- func_800381AC(gPlayerThree, gControllerSeven, 2);
+ handle_a_press_for_player_during_race(gPlayerThree, gControllerSeven, 2);
return;
}
} else {
if ((gPlayerOne->type & 0x800) != 0x800) {
- func_800381AC(gPlayerOne, gControllerEight, 0);
+ handle_a_press_for_player_during_race(gPlayerOne, gControllerEight, 0);
}
temp_v0_5 = gPlayerTwo->type;
if (((temp_v0_5 & 0x100) == 0x100) && ((temp_v0_5 & 0x800) != 0x800)) {
- func_800381AC(gPlayerTwo, gControllerSix, 1);
+ handle_a_press_for_player_during_race(gPlayerTwo, gControllerSix, 1);
}
temp_v0_6 = gPlayerThree->type;
if (((temp_v0_6 & 0x100) == 0x100) && ((temp_v0_6 & 0x800) != 0x800)) {
- func_800381AC(gPlayerThree, gControllerSeven, 2);
+ handle_a_press_for_player_during_race(gPlayerThree, gControllerSeven, 2);
return;
}
return;
@@ -4648,15 +4648,15 @@ void func_800382DC(void) {
break;
case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL:
case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL:
- func_800381AC(gPlayerOne, gControllerOne, 0);
- func_800381AC(gPlayerTwo, gControllerTwo, 1);
+ handle_a_press_for_player_during_race(gPlayerOne, gControllerOne, 0);
+ handle_a_press_for_player_during_race(gPlayerTwo, gControllerTwo, 1);
return;
case SCREEN_MODE_3P_4P_SPLITSCREEN:
- func_800381AC(gPlayerOne, gControllerOne, 0);
- func_800381AC(gPlayerTwo, gControllerTwo, 1);
- func_800381AC(gPlayerThree, gControllerThree, 2);
+ handle_a_press_for_player_during_race(gPlayerOne, gControllerOne, 0);
+ handle_a_press_for_player_during_race(gPlayerTwo, gControllerTwo, 1);
+ handle_a_press_for_player_during_race(gPlayerThree, gControllerThree, 2);
if (gPlayerCountSelection1 == 4) {
- func_800381AC(gPlayerFour, gControllerFour, 3);
+ handle_a_press_for_player_during_race(gPlayerFour, gControllerFour, 3);
}
break;
}