From e8ab92fa6451a8e3d26bc5a5a4989711a15a602f Mon Sep 17 00:00:00 2001 From: James R Date: Tue, 14 Feb 2023 02:52:33 -0800 Subject: [PATCH] p_mobj.c: guard some cases where a mobj could be removed --- src/p_mobj.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/p_mobj.c b/src/p_mobj.c index 07e6d10d6..f8c6ec400 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -6469,6 +6469,9 @@ static void P_MobjSceneryThink(mobj_t *mobj) break; case MT_ITEMCAPSULE_PART: P_ItemCapsulePartThinker(mobj); + + if (P_MobjWasRemoved(mobj)) + return; break; case MT_BATTLECAPSULE_PIECE: if (mobj->extravalue2) @@ -9850,9 +9853,16 @@ void P_MobjThinker(mobj_t *mobj) P_CheckMobjTrigger(mobj, false); } + I_Assert(!P_MobjWasRemoved(mobj)); + if (mobj->scale != mobj->destscale) + { P_MobjScaleThink(mobj); // Slowly scale up/down to reach your destscale. + if (P_MobjWasRemoved(mobj)) + return; + } + if (mobj->type == MT_GHOST && mobj->fuse > 0) // Not guaranteed to be MF_SCENERY or not MF_SCENERY! { if (mobj->extravalue1 > 0) // Sonic Advance 2 mode