From efcce48953b9c132d19540f7ac877e3e8d791b19 Mon Sep 17 00:00:00 2001
From: biwa <6475593+biwa@users.noreply.github.com>
Date: Sun, 17 Sep 2023 17:23:27 +0200
Subject: [PATCH] Visual Mode: fixed a problem where sloped 3D floors with an
 alpha value of less than 128 were not shown at all instead of fully opaque.
 Fixes #954

---
 .../BuilderModes/VisualModes/Effect3DFloor.cs    | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/Source/Plugins/BuilderModes/VisualModes/Effect3DFloor.cs b/Source/Plugins/BuilderModes/VisualModes/Effect3DFloor.cs
index 6c102e772..eb1534e96 100755
--- a/Source/Plugins/BuilderModes/VisualModes/Effect3DFloor.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/Effect3DFloor.cs
@@ -157,10 +157,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				if(sd.FloorGlow == null || !sd.FloorGlow.Fullbright) ceiling.color = 0;
 			}
 
-			// Apply alpha
-			floor.alpha = alpha;
-			ceiling.alpha = alpha;
-
 			//mxd
 			floor.extrafloor = true;
 			ceiling.extrafloor = true;
@@ -171,9 +167,17 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			sloped3dfloor = ((alpha < 255 || renderadditive) &&
 							 (Angle2D.RadToDeg(ceiling.plane.Normal.GetAngleZ()) != 270 ||
 							  Angle2D.RadToDeg(floor.plane.Normal.GetAngleZ()) != 90));
-			
+
+			// As GZDoom doesn't support translucent 3D floors make is fully opaque
+			if (sloped3dfloor)
+				alpha = 255;
+
+			// Apply alpha
+			floor.alpha = alpha;
+			ceiling.alpha = alpha;
+
 			// Do not adjust light? (works only for non-vavoom types)
-			if(!vavoomtype)
+			if (!vavoomtype)
 			{
 				bool disablelighting =  ((linedef.Args[2] & (int)Flags.DisableLighting)  == (int)Flags.DisableLighting); //mxd
 				bool restrictlighting = ((linedef.Args[2] & (int)Flags.RestrictLighting) == (int)Flags.RestrictLighting); //mxd
-- 
GitLab