diff --git a/src/k_kart.c b/src/k_kart.c index 26c7c4811..d4d9ebcd7 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -3407,7 +3407,7 @@ void K_TumblePlayer(player_t *player, mobj_t *inflictor, mobj_t *source) P_StartQuake(64<angle >> ANGLETOFINESHIFT); fixed_t rollMul = FINECOSINE(mobj->angle >> ANGLETOFINESHIFT); @@ -3422,11 +3422,7 @@ static angle_t K_TumbleSlope(mobj_t *mobj, angle_t pitch, angle_t roll) return slope; } - -#define STEEP_VAL ANG60 -#define STEEP_VAL_AIR ANG30 + ANG10 - -boolean K_CheckSlopeTumble(player_t *player, angle_t oldPitch, angle_t oldRoll, boolean fromAir) +boolean K_CheckStumble(player_t *player, angle_t oldPitch, angle_t oldRoll, boolean fromAir) { angle_t steepVal = ANGLE_MAX; fixed_t gravityadjust; @@ -3451,14 +3447,14 @@ boolean K_CheckSlopeTumble(player_t *player, angle_t oldPitch, angle_t oldRoll, if (fromAir == true) { - steepVal = STEEP_VAL_AIR; + steepVal = STUMBLE_STEEP_VAL_AIR; } else { - steepVal = STEEP_VAL; + steepVal = STUMBLE_STEEP_VAL; } - oldSlope = K_TumbleSlope(player->mo, oldPitch, oldRoll); + oldSlope = K_StumbleSlope(player->mo, oldPitch, oldRoll); if (oldSlope <= steepVal) { @@ -3467,7 +3463,7 @@ boolean K_CheckSlopeTumble(player_t *player, angle_t oldPitch, angle_t oldRoll, return false; } - newSlope = K_TumbleSlope(player->mo, player->mo->pitch, player->mo->roll); + newSlope = K_StumbleSlope(player->mo, player->mo->pitch, player->mo->roll); slopeDelta = AngleDelta(oldSlope, newSlope); if (slopeDelta <= steepVal) diff --git a/src/k_kart.h b/src/k_kart.h index 8881729ad..796392d85 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -28,6 +28,9 @@ Make sure this matches the actual number of states #define GROW_PHYSICS_SCALE (3*FRACUNIT/2) #define SHRINK_PHYSICS_SCALE (3*FRACUNIT/4) +#define STUMBLE_STEEP_VAL ANG60 +#define STUMBLE_STEEP_VAL_AIR (ANG30 + ANG10) + player_t *K_GetItemBoxPlayer(mobj_t *mobj); angle_t K_ReflectAngle(angle_t angle, angle_t against, fixed_t maxspeed, fixed_t yourspeed); @@ -70,7 +73,8 @@ void K_DoInstashield(player_t *player); void K_BattleAwardHit(player_t *player, player_t *victim, mobj_t *inflictor, UINT8 bumpersRemoved); void K_SpinPlayer(player_t *player, mobj_t *inflictor, mobj_t *source, INT32 type); void K_TumblePlayer(player_t *player, mobj_t *inflictor, mobj_t *source); -boolean K_CheckSlopeTumble(player_t *player, angle_t oldPitch, angle_t oldRoll, boolean fromAir); +angle_t K_StumbleSlope(mobj_t *mobj, angle_t pitch, angle_t roll); +boolean K_CheckStumble(player_t *player, angle_t oldPitch, angle_t oldRoll, boolean fromAir); INT32 K_ExplodePlayer(player_t *player, mobj_t *inflictor, mobj_t *source); void K_DebtStingPlayer(player_t *player, mobj_t *source); void K_HandleBumperChanges(player_t *player, UINT8 prevBumpers); diff --git a/src/p_user.c b/src/p_user.c index 9eba0531e..7e6e1b1f9 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1338,7 +1338,7 @@ boolean P_PlayerHitFloor(player_t *player, boolean fromAir, angle_t oldPitch, an if (P_IsObjectOnGround(player->mo) && (player->mo->eflags & MFE_JUSTHITFLOOR)) air = true; - if (K_CheckSlopeTumble(player, oldPitch, oldRoll, air)) + if (K_CheckStumble(player, oldPitch, oldRoll, air)) return false; } }