From 8b77af73780f72bfc128f4e960e4c6a8f07df5f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20Alh=C3=A4ll?= <gustaf@hanicef.me> Date: Mon, 10 Apr 2023 14:55:19 +0200 Subject: [PATCH] Fix segfault when killing wall spike while it moves --- src/p_mobj.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/p_mobj.c b/src/p_mobj.c index c8adb6f1d6..a290bd0749 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -10061,6 +10061,8 @@ static boolean P_FuseThink(mobj_t *mobj) case MT_SPIKE: case MT_WALLSPIKE: P_SetMobjState(mobj, mobj->state->nextstate); + if (P_MobjWasRemoved(mobj)) + return false; mobj->fuse = mobj->spawnpoint ? mobj->spawnpoint->args[0] : mobj->info->speed; break; case MT_NIGHTSCORE: @@ -10222,6 +10224,9 @@ void P_MobjThinker(mobj_t *mobj) if (mobj->flags2 & MF2_FIRING) P_FiringThink(mobj); + if (P_MobjWasRemoved(mobj)) + return; + if (mobj->type == MT_AMBIENT) { if (leveltime % mobj->health) -- GitLab