Fix being able to reverse in the air

This commit is contained in:
NepDisk 2025-03-24 11:16:33 -04:00
parent fd8917092e
commit 616941841c
3 changed files with 5 additions and 7 deletions

View file

@ -3598,9 +3598,6 @@ fixed_t K_GetNewSpeed(player_t *player)
const fixed_t p_speed = K_GetKartSpeed(player, true, true); const fixed_t p_speed = K_GetKartSpeed(player, true, true);
fixed_t p_accel = K_GetKartAccel(player); fixed_t p_accel = K_GetKartAccel(player);
fixed_t newspeed, oldspeed, finalspeed; fixed_t newspeed, oldspeed, finalspeed;
boolean onground = (P_IsObjectOnGround(player->mo) || (player->pogospring));
if (!onground) return 0; // If the player isn't on the ground, there is no change in speed
if (K_PlayerUsesBotMovement(player) == true && player->botvars.rubberband > 0) if (K_PlayerUsesBotMovement(player) == true && player->botvars.rubberband > 0)
{ {
@ -3635,12 +3632,13 @@ fixed_t K_GetNewSpeed(player_t *player)
return finalspeed; return finalspeed;
} }
fixed_t K_3dKartMovement(player_t *player) fixed_t K_3dKartMovement(player_t *player, boolean onground)
{ {
fixed_t finalspeed = K_GetNewSpeed(player); fixed_t finalspeed = K_GetNewSpeed(player);
SINT8 forwardmove = K_GetForwardMove(player); SINT8 forwardmove = K_GetForwardMove(player);
if (!onground) return 0; // If the player isn't on the ground, there is no change in speed
// forwardmove is: // forwardmove is:
// 50 while accelerating, // 50 while accelerating,
// 25 while clutching, // 25 while clutching,

View file

@ -169,7 +169,7 @@ boolean K_KartKickstart(player_t *player);
UINT16 K_GetKartButtons(player_t *player); UINT16 K_GetKartButtons(player_t *player);
SINT8 K_GetForwardMove(player_t *player); SINT8 K_GetForwardMove(player_t *player);
fixed_t K_GetNewSpeed(player_t *player); fixed_t K_GetNewSpeed(player_t *player);
fixed_t K_3dKartMovement(player_t *player); fixed_t K_3dKartMovement(player_t *player, boolean onground);
SINT8 K_Sliptiding(player_t *player); SINT8 K_Sliptiding(player_t *player);
void K_MoveKartPlayer(player_t *player, boolean onground); void K_MoveKartPlayer(player_t *player, boolean onground);
void K_CheckSpectateStatus(boolean considermapreset); void K_CheckSpectateStatus(boolean considermapreset);

View file

@ -1829,7 +1829,7 @@ static void P_3dMovement(player_t *player)
// Forward movement // Forward movement
if (!((player->exiting || mapreset) || (P_PlayerInPain(player) && !onground))) if (!((player->exiting || mapreset) || (P_PlayerInPain(player) && !onground)))
{ {
movepushforward = K_3dKartMovement(player); movepushforward = K_3dKartMovement(player, onground);
// allow very small movement while in air for gameplay // allow very small movement while in air for gameplay
if (!onground) if (!onground)