From b9133530e2ed52ae5100f1e07091e5f4b2880049 Mon Sep 17 00:00:00 2001 From: toaster Date: Tue, 11 Apr 2023 17:39:53 +0100 Subject: [PATCH] Obj_OrbinautJawzCollide: Guard for removed objects --- src/objects/orbinaut.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/objects/orbinaut.c b/src/objects/orbinaut.c index caed22068..f7c2ac89a 100644 --- a/src/objects/orbinaut.c +++ b/src/objects/orbinaut.c @@ -260,14 +260,25 @@ boolean Obj_OrbinautJawzCollide(mobj_t *t1, mobj_t *t2) damageitem = false; } - if (damageitem) + if (damageitem && P_MobjWasRemoved(t1) == false) { + angle_t bounceangle; + 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 - angle_t bounceangle = K_GetCollideAngle(t2, t1); S_StartSound(t1, t1->info->deathsound); P_KillMobj(t1, t2, t2, DMG_NORMAL); P_SetObjectMomZ(t1, 24*FRACUNIT, false); + P_InstaThrust(t1, bounceangle, 16*FRACUNIT); }