diff --git a/src/p_user.c b/src/p_user.c index e4792c1071e8ca08fa650de7ced26b569f8aebb2..f1a1ac93cb940ccc4fab34ad0028708c3d2ed72e 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -5842,35 +5842,28 @@ static void P_3dMovement(player_t *player) else topspeed = normalspd; } - else if (player->powers[pw_super] || player->powers[pw_sneakers]) + else { - thrustfactor = player->thrustfactor*2; - acceleration = player->accelstart/2 + (FixedDiv(player->speed, player->mo->scale)>>FRACBITS) * player->acceleration/2; - - if (player->powers[pw_tailsfly]) - topspeed = normalspd; - else if (player->mo->eflags & (MFE_UNDERWATER|MFE_GOOWATER)) + if (player->powers[pw_super] || player->powers[pw_sneakers]) { - topspeed = normalspd; - acceleration = 2*acceleration/3; + topspeed = 5 * normalspd / 3; // 1.67x + thrustfactor = player->thrustfactor*2; + acceleration = player->accelstart/2 + (FixedDiv(player->speed, player->mo->scale)>>FRACBITS) * player->acceleration/2; } else - topspeed = normalspd * 2; - } - else - { - thrustfactor = player->thrustfactor; - acceleration = player->accelstart + (FixedDiv(player->speed, player->mo->scale)>>FRACBITS) * player->acceleration; + { + topspeed = normalspd; + thrustfactor = player->thrustfactor; + acceleration = player->accelstart + (FixedDiv(player->speed, player->mo->scale)>>FRACBITS) * player->acceleration; + } if (player->powers[pw_tailsfly]) - topspeed = normalspd/2; + topspeed >>= 1; else if (player->mo->eflags & (MFE_UNDERWATER|MFE_GOOWATER)) { - topspeed = normalspd/2; + topspeed >>= 1; acceleration = 2*acceleration/3; } - else - topspeed = normalspd; } if (spin) // Prevent gaining speed whilst rolling!