diff --git a/src/p_mobj.c b/src/p_mobj.c index b841bae54..957190bd4 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1439,9 +1439,7 @@ fixed_t P_GetMobjGravity(mobj_t *mo) I_Assert(!P_MobjWasRemoved(mo)); wasflip = (mo->eflags & MFE_VERTICALFLIP) != 0; - - if (mo->type != MT_SPINFIRE) // Prevent fire trails from disappearing in reverse gravity - mo->eflags &= ~MFE_VERTICALFLIP; + mo->eflags &= ~MFE_VERTICALFLIP; if (mo->subsector->sector->ffloors) // Check for 3D floor gravity too. { diff --git a/src/p_user.c b/src/p_user.c index 0263fa1ab..112367dc7 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -7673,11 +7673,9 @@ void P_ElementalFire(player_t *player, boolean cropcircle) else ground = player->mo->floorz; - if (cropcircle) - ground += P_MobjFlip(player->mo); - if (cropcircle) { + ground += P_MobjFlip(player->mo); #define numangles 8 #define limitangle (180/numangles) travelangle = player->mo->angle + P_RandomRange(-limitangle, limitangle)*ANG1; @@ -7726,6 +7724,8 @@ void P_ElementalFire(player_t *player, boolean cropcircle) flame->fuse = TICRATE*6; flame->destscale = player->mo->scale; P_SetScale(flame, player->mo->scale); + if (!(player->mo->flags2 & MF2_OBJECTFLIP) != !(player->powers[pw_gravityboots])) // take gravity boots into account + flame->flags2 |= MF2_OBJECTFLIP; flame->eflags = (flame->eflags & ~MFE_VERTICALFLIP)|(player->mo->eflags & MFE_VERTICALFLIP); if (!(gametyperules & GTR_FRIENDLY)) {