From e6e2cd5d820af10e8d79e31a776588a0891c25fe Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Sat, 2 May 2020 00:54:54 -0400 Subject: [PATCH] Adjust air speed cap easing with bot rubberbanding --- src/p_user.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/p_user.c b/src/p_user.c index dd6415918..b0432cc93 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -4139,11 +4139,21 @@ static void P_3dMovement(player_t *player) if (!onground) { - fixed_t airspeedcap = (50*mapobjectscale); - fixed_t speed = R_PointToDist2(0, 0, player->mo->momx, player->mo->momy); + const fixed_t airspeedcap = (50*mapobjectscale); + const fixed_t speed = R_PointToDist2(0, 0, player->mo->momx, player->mo->momy); + if (speed > airspeedcap) { - fixed_t newspeed = speed - ((speed - airspeedcap) / 32); + fixed_t div = 32*FRACUNIT; + fixed_t newspeed; + + if (K_PlayerUsesBotMovement(player)) + { + div = FixedMul(div, K_BotRubberband(player)); + } + + newspeed = speed - FixedDiv((speed - airspeedcap), div); + player->mo->momx = FixedMul(FixedDiv(player->mo->momx, speed), newspeed); player->mo->momy = FixedMul(FixedDiv(player->mo->momy, speed), newspeed); }