From bdd36d45263ef922f4a307ef1bc5dadc9b1e4ec8 Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 11 May 2023 20:32:50 -0700 Subject: [PATCH] K_SpawnKartMissile: scale backward thrown nerfs to gamespeed for perfect consistency --- src/k_kart.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 098d20a90..9bd20a510 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -4572,6 +4572,8 @@ static mobj_t *K_SpawnKartMissile(mobj_t *source, mobjtype_t type, angle_t an, I if (dir == -1) { + fixed_t nerf = FRACUNIT; + // Backwards nerfs switch (type) { @@ -4579,16 +4581,22 @@ static mobj_t *K_SpawnKartMissile(mobj_t *source, mobjtype_t type, angle_t an, I case MT_GACHABOM: // These items orbit in place. // Look for a tight radius... - finalspeed /= 4; + nerf = FRACUNIT/4; break; case MT_BALLHOG: - finalspeed /= 8; + nerf = FRACUNIT/8; break; default: break; } + + if (finalspeed != FRACUNIT) + { + // Scale to gamespeed for consistency + finalspeed = FixedMul(finalspeed, FixedDiv(nerf, K_GetKartGameSpeedScalar(gamespeed))); + } } x = source->x + source->momx + FixedMul(finalspeed, FINECOSINE(an>>ANGLETOFINESHIFT));