From 4e4a3d3ba6663e8f92c86b0c7741cee70d724946 Mon Sep 17 00:00:00 2001
From: Lighto97 <lighto97@outlook.com>
Date: Wed, 12 Mar 2025 02:21:28 -0300
Subject: [PATCH] move missplaced code from DropDashWait to HandleDropDash

---
 src/k_respawn.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/k_respawn.c b/src/k_respawn.c
index 748b9aaae..127dc7a3c 100644
--- a/src/k_respawn.c
+++ b/src/k_respawn.c
@@ -724,14 +724,7 @@ static void K_DropDashWait(player_t *player)
 		player->respawn.timer--;
 
 	if (player->pflags & PF_FAULT)
-		return;
-
-	// if player got trapped inside a bubble but lost its bubble object in a unintended way, remove no gravity flag
-	if (((P_MobjWasRemoved(player->mo->tracer) || player->mo->tracer == NULL) && player->carry == CR_TRAPBUBBLE) && (player->mo->flags & MF_NOGRAVITY))
-	{
-		player->mo->flags &= ~MF_NOGRAVITY;
-		player->carry = CR_NONE;
-	}
+		return;	
 
 	if (leveltime % 8 == 0)
 	{
@@ -878,6 +871,12 @@ static void K_HandleDropDash(player_t *player)
 		{
 			player->mo->colorized = false;
 		}
+		// if player got trapped inside a bubble but lost its bubble object in a unintended way, remove no gravity flag
+		if (((P_MobjWasRemoved(player->mo->tracer) || player->mo->tracer == NULL || (!P_MobjWasRemoved(player->mo->tracer) && player->mo->tracer && player->mo->tracer->type != MT_BUBBLESHIELDTRAP)) && player->carry == CR_TRAPBUBBLE) && (player->mo->flags & MF_NOGRAVITY))
+		{
+			player->mo->flags &= ~MF_NOGRAVITY;
+			player->carry = CR_NONE;
+		}
 	}
 	else
 	{
-- 
GitLab