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;