From a105a08bd6035238790b99892856f61213db9a73 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 30 Dec 2016 20:00:24 +0100 Subject: [PATCH] - restored the original implementation of DONTOVERLAP, because Heretic depends on it being somewhat broken. A side effect of the incorrect implementation is that Gargoyles hitting other Gargoyles won't call P_DamageMobj. --- src/p_interaction.cpp | 2 +- src/p_map.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/p_interaction.cpp b/src/p_interaction.cpp index 102142d38..9aa178e64 100644 --- a/src/p_interaction.cpp +++ b/src/p_interaction.cpp @@ -1545,7 +1545,7 @@ dopain: target->SetState (target->SeeState); } } - else if ((damage > 0 || fakedPain) && source != target->target && target->OkayToSwitchTarget (source)) + else if (source != target->target && target->OkayToSwitchTarget (source)) { // Target actor is not intent on another actor, // so make him chase after source diff --git a/src/p_map.cpp b/src/p_map.cpp index 1f53181f1..434db69f1 100644 --- a/src/p_map.cpp +++ b/src/p_map.cpp @@ -1298,7 +1298,7 @@ bool PIT_CheckThing(FMultiBlockThingsIterator &it, FMultiBlockThingsIterator::Ch if ((tm.thing->Z() >= topz) || (tm.thing->Top() <= thing->Z())) return true; } - // If they are not allowed to overlap, the rest of this function still needs to be executed. + else return unblocking; // This may not really make sense, but Heretic depends on the broken implementation. } }