Skip to content
Snippets Groups Projects
Unverified Commit ecf0c4b4 authored by Hanicef's avatar Hanicef
Browse files

Fix segfault when calling P_RemoveMobj from MobjCollide hook

parent d7a84b96
No related branches found
No related tags found
1 merge request!2041Fix segfault when calling P_RemoveMobj from MobjCollide hook
......@@ -4005,7 +4005,8 @@ void P_BounceMove(mobj_t *mo)
slidemo = mo;
hitcount = 0;
retry:
do
{
if (++hitcount == 3)
goto bounceback; // don't loop forever
......@@ -4082,8 +4083,12 @@ bounceback:
newy = FixedMul(mmomy, bestslidefrac);
if (!P_TryMove(mo, mo->x + newx, mo->y + newy, true))
{
if (P_MobjWasRemoved(mo))
return;
goto bounceback;
}
}
// Now continue along the wall.
// First calculate remainder.
......@@ -4127,9 +4132,8 @@ bounceback:
mo->player->cmomx = tmxmove;
mo->player->cmomy = tmymove;
}
if (!P_TryMove(mo, mo->x + tmxmove, mo->y + tmymove, true))
goto retry;
}
while (!P_TryMove(mo, mo->x + tmxmove, mo->y + tmymove, true) && !P_MobjWasRemoved(mo));
}
//
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment