From 4ad76f549e29a42b809879364b9a1af73bae5146 Mon Sep 17 00:00:00 2001 From: Nikolay Ambartsumov Date: Thu, 14 Sep 2023 20:36:47 +0300 Subject: [PATCH] When compat_floormove is enabled prevent sector floor from lowering if a thing is stuck in the ceiling (vanilla behavior) --- src/playsim/p_map.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/playsim/p_map.cpp b/src/playsim/p_map.cpp index 797feb8e7..edb865b16 100644 --- a/src/playsim/p_map.cpp +++ b/src/playsim/p_map.cpp @@ -6652,6 +6652,12 @@ int P_PushDown(AActor *thing, FChangePosition *cpos) void PIT_FloorDrop(AActor *thing, FChangePosition *cpos) { + if ((thing->Level->i_compatflags2 & COMPATF2_FLOORMOVE) && (thing->Top() > thing->ceilingz)) + { + cpos->nofit = true; + return; + } + double oldfloorz = thing->floorz; double oldz = thing->Z(); @@ -7027,7 +7033,6 @@ bool P_ChangeSector(sector_t *sector, int crunch, double amt, int floorOrCeil, b } } - return cpos.nofit; }