mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'bounceremoved' into 'master'
Attempt to fix invalid mobj ref during bouncing See merge request KartKrew/Kart!526
This commit is contained in:
commit
b39853d7a1
2 changed files with 13 additions and 1 deletions
|
|
@ -3732,7 +3732,7 @@ stairstep:
|
||||||
tmymove = 0;
|
tmymove = 0;
|
||||||
}
|
}
|
||||||
if (!P_TryMove(mo, newx, newy, true)) {
|
if (!P_TryMove(mo, newx, newy, true)) {
|
||||||
if (success)
|
if (success || P_MobjWasRemoved(mo))
|
||||||
return; // Good enough!!
|
return; // Good enough!!
|
||||||
else
|
else
|
||||||
goto retry;
|
goto retry;
|
||||||
|
|
@ -3856,6 +3856,9 @@ void P_BounceMove(mobj_t *mo)
|
||||||
INT32 hitcount;
|
INT32 hitcount;
|
||||||
fixed_t mmomx = 0, mmomy = 0;
|
fixed_t mmomx = 0, mmomy = 0;
|
||||||
|
|
||||||
|
if (P_MobjWasRemoved(mo))
|
||||||
|
return;
|
||||||
|
|
||||||
if (mo->player)
|
if (mo->player)
|
||||||
{
|
{
|
||||||
P_BouncePlayerMove(mo);
|
P_BouncePlayerMove(mo);
|
||||||
|
|
@ -3979,7 +3982,11 @@ bounceback:
|
||||||
mo->momy = tmymove;
|
mo->momy = tmymove;
|
||||||
|
|
||||||
if (!P_TryMove(mo, mo->x + tmxmove, mo->y + tmymove, true))
|
if (!P_TryMove(mo, mo->x + tmxmove, mo->y + tmymove, true))
|
||||||
|
{
|
||||||
|
if (P_MobjWasRemoved(mo))
|
||||||
|
return;
|
||||||
goto retry;
|
goto retry;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
||||||
|
|
@ -1694,6 +1694,8 @@ void P_XYMovement(mobj_t *mo)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
P_BounceMove(mo);
|
P_BounceMove(mo);
|
||||||
|
if (P_MobjWasRemoved(mo))
|
||||||
|
return;
|
||||||
xmove = ymove = 0;
|
xmove = ymove = 0;
|
||||||
S_StartSound(mo, mo->info->activesound);
|
S_StartSound(mo, mo->info->activesound);
|
||||||
|
|
||||||
|
|
@ -1843,6 +1845,9 @@ void P_SceneryXYMovement(mobj_t *mo)
|
||||||
if (!P_SceneryTryMove(mo, mo->x + mo->momx, mo->y + mo->momy))
|
if (!P_SceneryTryMove(mo, mo->x + mo->momx, mo->y + mo->momy))
|
||||||
P_BounceMove(mo);
|
P_BounceMove(mo);
|
||||||
|
|
||||||
|
if (P_MobjWasRemoved(mo))
|
||||||
|
return;
|
||||||
|
|
||||||
if ((!(mo->eflags & MFE_VERTICALFLIP) && mo->z > mo->floorz) || (mo->eflags & MFE_VERTICALFLIP && mo->z+mo->height < mo->ceilingz))
|
if ((!(mo->eflags & MFE_VERTICALFLIP) && mo->z > mo->floorz) || (mo->eflags & MFE_VERTICALFLIP && mo->z+mo->height < mo->ceilingz))
|
||||||
return; // no friction when airborne
|
return; // no friction when airborne
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue