diff --git a/src/k_kart.c b/src/k_kart.c index 10269b818..fa90649c4 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -9446,6 +9446,10 @@ static void K_KartDrift(player_t *player, boolean onground) S_StartSound(player->mo, sfx_s23c); //K_SpawnDashDustRelease(player); + // Airtime means we're not gaining speed. Get grounded! + if (!onground) + player->mo->momz -= player->speed/2; + if (player->driftcharge < 0) { // Stage 0: Grey sparks @@ -9459,7 +9463,7 @@ static void K_KartDrift(player_t *player, boolean onground) { // Stage 1: Yellow sparks if (!onground) - P_Thrust(player->mo, pushdir, player->speed / 4); + P_Thrust(player->mo, pushdir, player->speed / 3); if (player->driftboost < 20) player->driftboost = 20; @@ -9470,7 +9474,7 @@ static void K_KartDrift(player_t *player, boolean onground) { // Stage 2: Red sparks if (!onground) - P_Thrust(player->mo, pushdir, player->speed / 3); + P_Thrust(player->mo, pushdir, player->speed / 2); if (player->driftboost < 50) player->driftboost = 50; @@ -9481,7 +9485,7 @@ static void K_KartDrift(player_t *player, boolean onground) { // Stage 3: Blue sparks if (!onground) - P_Thrust(player->mo, pushdir, ( 5 * player->speed ) / 12); + P_Thrust(player->mo, pushdir, player->speed); if (player->driftboost < 85) player->driftboost = 85; @@ -9495,7 +9499,7 @@ static void K_KartDrift(player_t *player, boolean onground) { // Stage 4: Rainbow sparks if (!onground) - P_Thrust(player->mo, pushdir, player->speed / 2); + P_Thrust(player->mo, pushdir, (5 * player->speed / 4)); if (player->driftboost < 125) player->driftboost = 125;