From 5e6185abe244a32dca2cfbe35460b19c7aecdb7c Mon Sep 17 00:00:00 2001
From: spherallic <spherallic@gmail.com>
Date: Sun, 11 Sep 2022 18:28:17 +0200
Subject: [PATCH] Fix Elemental stomp's flames while Gravity Boots are active

---
 src/p_mobj.c | 2 +-
 src/p_user.c | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/p_mobj.c b/src/p_mobj.c
index 549d603272..b841bae541 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 ddbf48206e..0263fa1ab5 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);
-- 
GitLab