diff --git a/src/p_map.cpp b/src/p_map.cpp index 5623af25a..e0ee1eaec 100644 --- a/src/p_map.cpp +++ b/src/p_map.cpp @@ -2533,13 +2533,13 @@ bool P_CheckMove(AActor *thing, const DVector2 &pos, int flags) return false; } } - else if (flags & PCM_DROPOFF) + else if ((flags & PCM_DROPOFF) && !(thing->flags & (MF_FLOAT|MF_DROPOFF))) { const DVector3 oldpos = thing->Pos(); thing->SetOrigin(pos.X, pos.Y, newz, true); - bool hcheck = (newz - thing->MaxDropOffHeight > thing->dropoffz); + bool hcheck = (newz - thing->dropoffz > thing->MaxDropOffHeight); thing->SetOrigin(oldpos, true); - if (hcheck && !(thing->flags & MF_FLOAT) && !(i_compatflags & COMPATF_DROPOFF)) + if (hcheck) { return false; }