- fixed: When A_SpawnProjectile got fixed, this fix broke the old A_CustomMissile function because the added workaround was overlooked.

This now separates the code more clearly into the twp paths to make the differences easier to see and compare.
This commit is contained in:
Christoph Oelckers 2019-01-27 14:00:23 +01:00 committed by drfrag
parent 67513389e7
commit 5add7b1cb4

View file

@ -987,13 +987,26 @@ DEFINE_ACTION_FUNCTION(AActor, A_SpawnProjectile)
if ( (CMF_ABSOLUTEPITCH|CMF_OFFSETPITCH) & flags)
{
if (CMF_OFFSETPITCH & flags)
if (!(flags & CMF_BADPITCH))
{
Pitch += missile->Vel.Pitch();
if (CMF_OFFSETPITCH & flags)
{
Pitch += missile->Vel.Pitch();
}
missilespeed = fabs(Pitch.Cos() * missile->Speed);
missile->Vel.Z = -Pitch.Sin() * missile->Speed;
}
else
{
// Replicate the bogus calculation from A_CustomMissile in its entirety.
// This tried to do the right thing but in the process effectively inverted the base pitch.
if (CMF_OFFSETPITCH & flags)
{
Pitch -= missile->Vel.Pitch();
}
missilespeed = fabs(Pitch.Cos() * missile->Speed);
missile->Vel.Z = Pitch.Sin() * missile->Speed;
}
missilespeed = fabs(Pitch.Cos() * missile->Speed);
missile->Vel.Z = Pitch.Sin() * missile->Speed;
if (!(flags & CMF_BADPITCH)) missile->Vel.Z *= -1;
}
else
{