From 934b1923d0b28640138d5aed2eb3132d3ab2a559 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 27 Apr 2016 12:37:38 +0200 Subject: [PATCH] - fixed: CheckForPushSpecial did not check blocking 3D midtextures. --- src/p_map.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/p_map.cpp b/src/p_map.cpp index 14a147d6c4..0938fe3b08 100644 --- a/src/p_map.cpp +++ b/src/p_map.cpp @@ -45,6 +45,7 @@ #include "p_checkposition.h" #include "r_utility.h" #include "p_blockmap.h" +#include "p_3dmidtex.h" #include "s_sound.h" #include "decallib.h" @@ -1905,6 +1906,15 @@ static void CheckForPushSpecial(line_t *line, int side, AActor *mobj, DVector2 * if (fzt >= mobj->Top() && bzt >= mobj->Top() && fzb <= mobj->Z() && bzb <= mobj->Z()) { + if (line->flags & ML_3DMIDTEX) + { + double top, bot; + P_GetMidTexturePosition(line, side, &top, &bot); + if (bot < mobj->Top() && top > mobj->Z()) + { + goto isblocking; + } + } // we must also check if some 3D floor in the backsector may be blocking for (auto rover : line->backsector->e->XFloor.ffloors) {