diff --git a/src/p_enemy.c b/src/p_enemy.c index f2ea9f867..1c044191e 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -5359,7 +5359,6 @@ static boolean PIT_MinusCarry(mobj_t *thing) return true; P_SetTarget(&minus->tracer, thing); - P_SetTarget(&thing->tracer, minus); if (thing->flags & MF_PUSHABLE) { minus->flags2 |= MF2_STRONGBOX; @@ -5428,6 +5427,9 @@ void A_MinusDigging(mobj_t *actor) A_Chase(actor); // Carry over shit, maybe + if (P_MobjWasRemoved(actor->tracer) || !actor->tracer->health) + P_SetTarget(&actor->tracer, NULL); + if (!actor->tracer) { fixed_t radius = 3*actor->radius; @@ -5456,7 +5458,6 @@ void A_MinusDigging(mobj_t *actor) actor->flags2 &= ~MF2_STRONGBOX; actor->tracer->flags |= MF_PUSHABLE; } - P_SetTarget(&actor->tracer->tracer, NULL); P_SetTarget(&actor->tracer, NULL); } } diff --git a/src/p_inter.c b/src/p_inter.c index 3ece610e7..7f65d2d7a 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -2689,7 +2689,6 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget target->flags2 &= ~MF2_STRONGBOX; target->tracer->flags |= MF_PUSHABLE; } - P_SetTarget(&target->tracer->tracer, NULL); P_SetTarget(&target->tracer, NULL); } break;