From 9eacdb4be4f7b107afca9976dd151cafe041a77a Mon Sep 17 00:00:00 2001 From: toaster Date: Thu, 20 Apr 2023 22:58:50 +0100 Subject: [PATCH] P_SetupSpawnedMapThing: Catch more P_MobjWasRemoved --- src/p_mobj.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index af2394298..78b6c592d 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -13420,6 +13420,9 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj, boolean break; } + if (P_MobjWasRemoved(mobj)) + return false; + if (mobj->flags & MF_BOSS) { if (mthing->args[1]) // No egg trap for this boss @@ -13441,7 +13444,12 @@ static mobj_t *P_SpawnMobjFromMapThing(mapthing_t *mthing, fixed_t x, fixed_t y, mobj->destscale = FixedMul(mobj->destscale, mthing->scale); if (!P_SetupSpawnedMapThing(mthing, mobj, &doangle)) + { + if (P_MobjWasRemoved(mobj)) + return NULL; + return mobj; + } if (doangle) { @@ -13669,7 +13677,8 @@ static void P_SpawnItemRow(mapthing_t *mthing, mobjtype_t *itemtypes, UINT8 numi y + FixedMul(length, FINESINE(fineangle)), z, MT_LOOPCENTERPOINT); - Obj_LinkLoopAnchor(loopanchor, loopcenter, mthing->args[0]); + if (!P_MobjWasRemoved(loopanchor)) + Obj_LinkLoopAnchor(loopanchor, loopcenter, mthing->args[0]); } for (r = 0; r < numitems; r++)