Remove hack in P_GetMobjGravity for spinfire, fix the underlying issue

This commit is contained in:
spherallic 2022-09-11 20:04:20 +02:00
parent 0ee81a1cc3
commit 42fc6c877b
2 changed files with 4 additions and 6 deletions

View file

@ -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.
{

View file

@ -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))
{