From 35c7be3bb9d544140c0cf7ee1b6aeb8193e586c5 Mon Sep 17 00:00:00 2001 From: toaster Date: Thu, 11 Sep 2025 20:49:48 +0100 Subject: [PATCH] Monkey-patch likely cause of Eggshrine crash --- src/p_inter.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/p_inter.c b/src/p_inter.c index a9ba1f151..01edc21ec 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -1237,13 +1237,14 @@ static void P_AddBrokenPrison(mobj_t *target, mobj_t *inflictor, mobj_t *source) } // If you CAN recieve points, get them! - if ((gametyperules & GTR_POINTLIMIT) && (source && source->player)) + if ((gametyperules & GTR_POINTLIMIT) + && (source && !P_MobjWasRemoved(source) && source->player)) { K_GivePointsToPlayer(source->player, NULL, 1); } targetdamaging_t targetdamaging = UFOD_GENERIC; - if (P_MobjWasRemoved(inflictor) == true) + if (!inflictor || P_MobjWasRemoved(inflictor) == true) ; else switch (inflictor->type) { @@ -1342,6 +1343,10 @@ static void P_AddBrokenPrison(mobj_t *target, mobj_t *inflictor, mobj_t *source) secretextratime = TICRATE/2; } + // Everything below dependent on our coords + if (!target || P_MobjWasRemoved(target)) + return; + // Prison Egg challenge drops (CDs, etc) #ifdef DEVELOP extern consvar_t cv_debugprisoncd;