p_mobj.c: guard some cases where a mobj could be removed

This commit is contained in:
James R 2023-02-14 02:52:33 -08:00
parent 33145ab2ae
commit e8ab92fa64

View file

@ -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