Merge branch 'ballhog-blammo' into 'master'

K_BananaBallhogCollide: Handle use after deletes (resolves #488)

Closes #488

See merge request KartKrew/Kart!1075
This commit is contained in:
toaster 2023-03-23 22:29:50 +00:00
commit 449d330694

View file

@ -113,15 +113,26 @@ boolean K_BananaBallhogCollide(mobj_t *t1, mobj_t *t2)
damageitem = true; damageitem = true;
} }
if (damageitem) if (damageitem && P_MobjWasRemoved(t1) == false)
{ {
// This Item Damage angle_t bounceangle;
angle_t bounceangle = K_GetCollideAngle(t2, t1);
if (P_MobjWasRemoved(t2) == false)
{
bounceangle = K_GetCollideAngle(t2, t1);
}
else
{
bounceangle = K_MomentumAngle(t1) + ANGLE_90;
t2 = NULL; // handles the arguments to P_KillMobj
}
// This Item Damage
S_StartSound(t1, t1->info->deathsound); S_StartSound(t1, t1->info->deathsound);
P_KillMobj(t1, t2, t2, DMG_NORMAL); P_KillMobj(t1, t2, t2, DMG_NORMAL);
P_SetObjectMomZ(t1, 24*FRACUNIT, false); P_SetObjectMomZ(t1, 24*FRACUNIT, false);
P_InstaThrust(t1, bounceangle, 16*FRACUNIT); P_InstaThrust(t1, bounceangle, 16*FRACUNIT);
} }