From 5164ee7fc98fca43e98a57191e7d5f8856a13ad8 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Sat, 24 Dec 2016 00:11:54 +0000 Subject: [PATCH] Fun gameplay tweak: Turn CA_FLOAT into a limited CA_SLOWFALL when moving slowly, to double down on it being for speedrun characters and punishing slowing down. Rob-approved. --- src/p_user.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/p_user.c b/src/p_user.c index 5a8703ad9..03ea99158 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -4381,13 +4381,15 @@ static void P_DoJumpStuff(player_t *player, ticcmd_t *cmd) { if (player->secondjump == 1) { - if (player->charability == CA_FLOAT) - player->mo->momz = 0; - else if (player->charability == CA_SLOWFALL) - { - if (P_MobjFlip(player->mo)*player->mo->momz < -gravity*4) - player->mo->momz = P_MobjFlip(player->mo)*-gravity*4; - } + fixed_t potentialmomz; + if (player->charability == CA_SLOWFALL) + potentialmomz = -gravity*4; + else + potentialmomz = ((player->speed < 10*player->mo->scale) + ? (player->speed - 10*player->mo->scale)/5 + : 0); + if (P_MobjFlip(player->mo)*player->mo->momz < potentialmomz) + player->mo->momz = P_MobjFlip(player->mo)*potentialmomz; player->pflags &= ~PF_SPINNING; } }