diff --git a/src/p_mobj.c b/src/p_mobj.c index 72ad46cdce3f5fe7bae2d2223e1a2d6c6e3d7865..ecb60daa2cfbc0e3f63c0a5894045ceaf7cd3973 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -14476,9 +14476,13 @@ mobj_t *P_SpawnMobjFromMobj(mobj_t *mobj, fixed_t xofs, fixed_t yofs, fixed_t zo newmobj->old_scale2 = mobj->old_scale2; newmobj->old_scale = mobj->old_scale; + newmobj->old_spritexscale2 = mobj->old_spritexscale2; newmobj->old_spritexscale = mobj->old_spritexscale; + newmobj->old_spriteyscale2 = mobj->old_spriteyscale2; newmobj->old_spriteyscale = mobj->old_spriteyscale; + newmobj->old_spritexoffset2 = mobj->old_spritexoffset2; newmobj->old_spritexoffset = mobj->old_spritexoffset; + newmobj->old_spriteyoffset2 = mobj->old_spriteyoffset2; newmobj->old_spriteyoffset = mobj->old_spriteyoffset; return newmobj; diff --git a/src/p_mobj.h b/src/p_mobj.h index bc6601ea38a9f7f93488e05fcf9cc8865099fa3a..573e3ef8b5cf318c19fdf7ad6e6eba88ac04044f 100644 --- a/src/p_mobj.h +++ b/src/p_mobj.h @@ -302,8 +302,8 @@ typedef struct mobj_s INT32 blendmode; // blend mode fixed_t spritexscale, spriteyscale; fixed_t spritexoffset, spriteyoffset; - fixed_t old_spritexscale, old_spriteyscale; - fixed_t old_spritexoffset, old_spriteyoffset; + fixed_t old_spritexscale, old_spriteyscale, old_spritexscale2, old_spriteyscale2; + fixed_t old_spritexoffset, old_spriteyoffset, old_spritexoffset2, old_spriteyoffset2; struct pslope_s *floorspriteslope; // The slope that the floorsprite is rotated by struct msecnode_s *touching_sectorlist; // a linked list of sectors where this object appears @@ -441,8 +441,8 @@ typedef struct precipmobj_s INT32 blendmode; // blend mode fixed_t spritexscale, spriteyscale; fixed_t spritexoffset, spriteyoffset; - fixed_t old_spritexscale, old_spriteyscale; - fixed_t old_spritexoffset, old_spriteyoffset; + fixed_t old_spritexscale, old_spriteyscale, old_spritexscale2, old_spriteyscale2; + fixed_t old_spritexoffset, old_spriteyoffset, old_spritexoffset2, old_spriteyoffset2; struct pslope_s *floorspriteslope; // The slope that the floorsprite is rotated by struct mprecipsecnode_s *touching_sectorlist; // a linked list of sectors where this object appears diff --git a/src/p_user.c b/src/p_user.c index 05d030216fa8f8598be45a72b8ada6e4d312588f..1acf011d9709ecd6f4cc27f56dd67dc9adb29c8b 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -2095,6 +2095,10 @@ mobj_t *P_SpawnGhostMobj(mobj_t *mobj) ghost->old_pitch = mobj->old_pitch2; ghost->old_roll = mobj->old_roll2; ghost->old_spriteroll = mobj->old_spriteroll2; + ghost->old_spritexscale = mobj->old_spritexscale2; + ghost->old_spriteyscale = mobj->old_spriteyscale2; + ghost->old_spritexoffset = mobj->old_spritexoffset2; + ghost->old_spriteyoffset = mobj->old_spriteyoffset2; ghost->old_scale = mobj->old_scale2; return ghost; diff --git a/src/r_fps.c b/src/r_fps.c index de450aaa7f465b8d47891baec585c757de361c60..6a3967cbc7774d51f48e90d62239fa9ac14784ca 100644 --- a/src/r_fps.c +++ b/src/r_fps.c @@ -799,6 +799,10 @@ void R_ResetMobjInterpolationState(mobj_t *mobj) mobj->old_roll2 = mobj->old_roll; mobj->old_spriteroll2 = mobj->old_spriteroll; mobj->old_scale2 = mobj->old_scale; + mobj->old_spritexscale2 = mobj->old_spritexscale; + mobj->old_spriteyscale2 = mobj->old_spriteyscale; + mobj->old_spritexoffset2 = mobj->old_spritexoffset; + mobj->old_spriteyoffset2 = mobj->old_spriteyoffset; mobj->old_x = mobj->x; mobj->old_y = mobj->y; mobj->old_z = mobj->z; @@ -835,6 +839,10 @@ void R_ResetPrecipitationMobjInterpolationState(precipmobj_t *mobj) mobj->old_pitch2 = mobj->old_pitch; mobj->old_roll2 = mobj->old_roll; mobj->old_spriteroll2 = mobj->old_spriteroll; + mobj->old_spritexscale2 = mobj->old_spritexscale; + mobj->old_spriteyscale2 = mobj->old_spriteyscale; + mobj->old_spritexoffset2 = mobj->old_spritexoffset; + mobj->old_spriteyoffset2 = mobj->old_spriteyoffset; mobj->old_x = mobj->x; mobj->old_y = mobj->y; mobj->old_z = mobj->z;