From 87ede1e934186e6fd25f9a45afad90ef1ebc48da Mon Sep 17 00:00:00 2001
From: fickleheart <fickle@tinted.red>
Date: Fri, 11 Jan 2019 20:45:59 -0600
Subject: [PATCH] Fix rendering gaps on polys with upper/lower textures

---
 src/r_segs.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/r_segs.c b/src/r_segs.c
index 59abea3ad..62c0523d0 100644
--- a/src/r_segs.c
+++ b/src/r_segs.c
@@ -3093,8 +3093,9 @@ void R_StoreWallRange(INT32 start, INT32 stop)
 		else
 			markceiling = false;
 
-		// Don't render the ceiling again when rendering polyobjects
-		if (curline->polyseg)
+		// Don't mark ceiling flat lines for polys unless this line has an upper texture, otherwise we get flat leakage pulling downward
+		// (If it DOES have an upper texture and we do this, the ceiling won't render at all)
+		if (curline->polyseg && !curline->sidedef->toptexture)
 			markceiling = false;
 	}
 
@@ -3106,8 +3107,9 @@ void R_StoreWallRange(INT32 start, INT32 stop)
 		else
 			markfloor = false;
 
-		// Don't render the floor again when rendering polyobjects
-		if (curline->polyseg)
+		// Don't mark floor flat lines for polys unless this line has a lower texture, otherwise we get flat leakage pulling upward
+		// (If it DOES have a lower texture and we do this, the floor won't render at all)
+		if (curline->polyseg && !curline->sidedef->bottomtexture)
 			markfloor = false;
 	}
 
-- 
GitLab