From aafc0bcb0da4abd8aa0da2637f96189ba16c45fc Mon Sep 17 00:00:00 2001
From: ilag11111 <ilagdoesntcheckthisemail@gmail.com>
Date: Wed, 14 May 2014 16:27:37 -0700
Subject: [PATCH] Ensures that the force shield's sprite returns to the proper
 state after receiving an invincibility monitor. Fixes
 http://mb.srb2.org/showthread.php?p=752815

---
 src/p_user.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/p_user.c b/src/p_user.c
index 05c1595cba..630c79b025 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -1401,6 +1401,17 @@ void P_SpawnShieldOrb(player_t *player)
 		P_SetTarget(&ov->target, shieldobj);
 		P_SetMobjState(ov, shieldobj->info->missilestate);
 	}
+	if (player->powers[pw_shield] & SH_FORCE)
+	{
+		//Copy and pasted from P_ShieldLook in p_mobj.c
+		if (shieldobj->movecount < 1)
+		{
+			if (shieldobj->info->painstate)
+				P_SetMobjState(shieldobj,shieldobj->info->painstate);
+			else
+				shieldobj->flags2 |= MF2_SHADOW;
+		}
+	}
 }
 
 //
-- 
GitLab