From c3c85bb4d2a4e5a1e39b999aadf919c55973e8c4 Mon Sep 17 00:00:00 2001
From: Monster Iestyn <iestynjealous@ntlworld.com>
Date: Sat, 3 Jun 2017 17:47:46 +0100
Subject: [PATCH] Do not draw segs that belong to polyobjects, if you're
 drawing subsectors adjacent to them

Polyobject segs should ONLY be drawn if the polyobject itself is in the polylist of a subsector being rendered. That way you won't sometimes see polyobject walls through level boundaries, if you happen to be close enough to their pre-spawn locations outside the level (or in them, if you decided to go on a noclip journey).
---
 src/hardware/hw_main.c | 3 +++
 src/r_bsp.c            | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index 45b59f9b8e..e046107178 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -3722,6 +3722,9 @@ static void HWR_Subsector(size_t num)
 
 		while (count--)
 		{
+#ifdef POLYOBJECTS
+				if (!line->polyseg) // ignore segs that belong to polyobjects
+#endif
 				HWR_AddLine(line);
 				line++;
 		}
diff --git a/src/r_bsp.c b/src/r_bsp.c
index 44cb991a70..abb11204a6 100644
--- a/src/r_bsp.c
+++ b/src/r_bsp.c
@@ -1222,6 +1222,9 @@ static void R_Subsector(size_t num)
 	while (count--)
 	{
 //		CONS_Debug(DBG_GAMELOGIC, "Adding normal line %d...(%d)\n", line->linedef-lines, leveltime);
+#ifdef POLYOBJECTS
+		if (!line->polyseg) // ignore segs that belong to polyobjects
+#endif
 		R_AddLine(line);
 		line++;
 		curline = NULL; /* cph 2001/11/18 - must clear curline now we're done with it, so stuff doesn't try using it for other things */
-- 
GitLab