diff --git a/src/k_kart.c b/src/k_kart.c index 50783a586..c7234f24b 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2030,6 +2030,13 @@ boolean K_ApplyOffroad(player_t *player) return true; } +boolean K_SlopeResistance(player_t *player) +{ + if (player->kartstuff[k_invincibilitytimer] || player->kartstuff[k_sneakertimer] || player->kartstuff[k_tiregrease]) + return true; + return false; +} + static fixed_t K_FlameShieldDashVar(INT32 val) { // 1 second = 75% + 50% top speed diff --git a/src/k_kart.h b/src/k_kart.h index 9f18b4661..1a1a932f3 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -82,6 +82,7 @@ void K_StripItems(player_t *player); void K_StripOther(player_t *player); void K_MomentumToFacing(player_t *player); boolean K_ApplyOffroad(player_t *player); +boolean K_SlopeResistance(player_t *player); INT16 K_GetSpindashChargeTime(player_t *player); fixed_t K_GetSpindashChargeSpeed(player_t *player); fixed_t K_GetKartSpeedFromStat(UINT8 kartspeed); diff --git a/src/p_user.c b/src/p_user.c index 0df4aa756..587294d3f 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1851,7 +1851,7 @@ static void P_3dMovement(player_t *player) totalthrust.x = totalthrust.y = 0; // I forget if this is needed totalthrust.z = FRACUNIT*P_MobjFlip(player->mo)/3; // A bit of extra push-back on slopes - if (player->kartstuff[k_sneakertimer] > 0) + if (K_SlopeResistance(player) == true) { totalthrust.z = -(totalthrust.z); }