From 35fbddffe44944ef92ff73c32d7e493adb5c4849 Mon Sep 17 00:00:00 2001
From: GoldenTails <milestailsprower101n2@gmail.com>
Date: Tue, 15 Dec 2020 12:52:39 -0600
Subject: [PATCH] renderfloors

---
 src/d_netcmd.c         | 1 +
 src/hardware/hw_main.c | 3 +++
 src/r_plane.c          | 3 +++
 src/screen.c           | 1 +
 src/screen.h           | 2 +-
 5 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index 374fbe9690..b2b6028f17 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -854,6 +854,7 @@ void D_RegisterClientCommands(void)
 	CV_RegisterVar(&cv_fullscreen);
 	CV_RegisterVar(&cv_renderview);
 	CV_RegisterVar(&cv_renderwalls);
+	CV_RegisterVar(&cv_renderfloors);
 	CV_RegisterVar(&cv_renderer);
 	CV_RegisterVar(&cv_scr_depth);
 	CV_RegisterVar(&cv_scr_width);
diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index 466c665386..e281b8a4cb 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -585,6 +585,9 @@ static void HWR_RenderPlane(subsector_t *subsector, extrasubsector_t *xsub, bool
 		PolyFlags |= PF_ColorMapped;
 	}
 
+	if (!cv_renderfloors.value)
+		return;
+
 	HWR_ProcessPolygon(&Surf, planeVerts, nrPlaneVerts, PolyFlags, shader, false);
 
 	if (subsector)
diff --git a/src/r_plane.c b/src/r_plane.c
index ea4dfa4e8a..135282b833 100644
--- a/src/r_plane.c
+++ b/src/r_plane.c
@@ -576,6 +576,9 @@ void R_ExpandPlane(visplane_t *pl, INT32 start, INT32 stop)
 //
 void R_MakeSpans(INT32 x, INT32 t1, INT32 b1, INT32 t2, INT32 b2)
 {
+	if (!cv_renderfloors.value)
+		return;
+
 	//    Alam: from r_splats's R_RasterizeFloorSplat
 	if (t1 >= vid.height) t1 = vid.height-1;
 	if (b1 >= vid.height) b1 = vid.height-1;
diff --git a/src/screen.c b/src/screen.c
index 5576cc5149..d653f52737 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -69,6 +69,7 @@ consvar_t cv_scr_height = CVAR_INIT ("scr_height", "800", CV_SAVE, CV_Unsigned,
 consvar_t cv_scr_depth = CVAR_INIT ("scr_depth", "16 bits", CV_SAVE, scr_depth_cons_t, NULL);
 consvar_t cv_renderview = CVAR_INIT ("renderview", "On", 0, CV_OnOff, NULL);
 consvar_t cv_renderwalls = CVAR_INIT ("renderwalls", "On", 0, CV_OnOff, NULL);
+consvar_t cv_renderfloors = CVAR_INIT ("renderfloors", "On", 0, CV_OnOff, NULL);
 
 CV_PossibleValue_t cv_renderer_t[] = {
 	{1, "Software"},
diff --git a/src/screen.h b/src/screen.h
index 003a1032d7..c41b32077d 100644
--- a/src/screen.h
+++ b/src/screen.h
@@ -189,7 +189,7 @@ extern CV_PossibleValue_t cv_renderer_t[];
 extern INT32 scr_bpp;
 extern UINT8 *scr_borderpatch; // patch used to fill the view borders
 
-extern consvar_t cv_scr_width, cv_scr_height, cv_scr_depth, cv_renderview, cv_renderwalls, cv_renderer, cv_fullscreen;
+extern consvar_t cv_scr_width, cv_scr_height, cv_scr_depth, cv_renderview, cv_renderwalls, cv_renderfloors, cv_renderer, cv_fullscreen;
 // wait for page flipping to end or not
 extern consvar_t cv_vidwait;
 
-- 
GitLab