K_SpawnKartMissile: scale backward thrown nerfs to gamespeed for perfect consistency

This commit is contained in:
James R 2023-05-11 20:32:50 -07:00
parent b08890bf92
commit bdd36d4526

View file

@ -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));