From 645dd7d66278372c8fd9ec3357286887683c8f0b Mon Sep 17 00:00:00 2001
From: Sally Coolatta <tehrealsalt@gmail.com>
Date: Mon, 31 Oct 2022 18:26:41 -0400
Subject: [PATCH] Stop endlessly chasing NIGHTSPULL emblems

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

diff --git a/src/p_inter.c b/src/p_inter.c
index bd3c15a456..907388a8c5 100644
--- a/src/p_inter.c
+++ b/src/p_inter.c
@@ -798,6 +798,17 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
 				boolean prevCollected;
 				const boolean isServer = ((player - players) == serverplayer);
 
+				if ((special->flags2 & MF2_NIGHTSPULL)
+					&& (toucher == special->tracer))
+				{
+					// Since collecting may not remove the object,
+					// we need to manually stop it from chasing.
+					P_SetTarget(&special->tracer, NULL);
+					special->flags2 &= ~MF2_NIGHTSPULL;
+					special->movefactor = 0;
+					special->momx = special->momy = special->momz = 0;
+				}
+
 				if (!P_CanPickupEmblem(player, special->health - 1))
 				{
 					return;
-- 
GitLab