From e0957b9250868fd8c409d6ed9c149ce49fc9137b Mon Sep 17 00:00:00 2001 From: James R Date: Sat, 26 Sep 2020 15:44:28 -0700 Subject: [PATCH] Apply horizontal springs offset after mobj angle is set --- src/p_mobj.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index 43eb411c7..ed3dae68b 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -11470,16 +11470,6 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj, boolean mobj->flags2 |= MF2_BOSSNOTRAP; } - if ((mobj->flags & MF_SPRING) - && mobj->info->damage != 0 - && mobj->info->mass == 0) - { - // Offset sprite of horizontal springs - angle_t a = mobj->angle + ANGLE_180; - mobj->sprxoff = FixedMul(mobj->radius, FINECOSINE(a >> ANGLETOFINESHIFT)); - mobj->spryoff = FixedMul(mobj->radius, FINESINE(a >> ANGLETOFINESHIFT)); - } - return true; } @@ -11555,6 +11545,16 @@ static mobj_t *P_SpawnMobjFromMapThing(mapthing_t *mthing, fixed_t x, fixed_t y, if (doangle) mobj->angle = FixedAngle(mthing->angle << FRACBITS); + if ((mobj->flags & MF_SPRING) + && mobj->info->damage != 0 + && mobj->info->mass == 0) + { + // Offset sprite of horizontal springs + angle_t a = mobj->angle + ANGLE_180; + mobj->sprxoff = FixedMul(mobj->radius, FINECOSINE(a >> ANGLETOFINESHIFT)); + mobj->spryoff = FixedMul(mobj->radius, FINESINE(a >> ANGLETOFINESHIFT)); + } + mobj->pitch = FixedAngle(mthing->pitch << FRACBITS); mobj->roll = FixedAngle(mthing->roll << FRACBITS);