diff --git a/src/p_mobj.c b/src/p_mobj.c index 549d603272bd73c23e0c7e43c82e5dcad353447d..b841bae541d5e649eee736674068e29e1dcaada0 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1440,7 +1440,7 @@ fixed_t P_GetMobjGravity(mobj_t *mo) wasflip = (mo->eflags & MFE_VERTICALFLIP) != 0; - if (mo->type != MT_SPINFIRE) + if (mo->type != MT_SPINFIRE) // Prevent fire trails from disappearing in reverse gravity 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 ddbf48206ea15de3ed8573e12d6dcfa3c36c67fe..0263fa1ab5c1806bbd25528c01bda2c597671827 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -7690,7 +7690,8 @@ void P_ElementalFire(player_t *player, boolean cropcircle) flame->fuse = TICRATE*7; // takes about an extra second to hit the ground flame->destscale = player->mo->scale; P_SetScale(flame, player->mo->scale); - flame->flags2 = (flame->flags2 & ~MF2_OBJECTFLIP)|(player->mo->flags2 & MF2_OBJECTFLIP); + 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); P_InstaThrust(flame, flame->angle, FixedMul(3*FRACUNIT, flame->scale)); P_SetObjectMomZ(flame, 3*FRACUNIT, false);