From cadb03fd12f8be18386f318809f2092a85475cb6 Mon Sep 17 00:00:00 2001
From: MascaraSnake <jonassauer27@gmail.com>
Date: Fri, 12 Jun 2020 10:03:27 +0200
Subject: [PATCH] Revamp alpha setup for laser FOFs

---
 extras/conf/udb/Includes/SRB222_linedefs.cfg | 5 +++++
 src/p_setup.c                                | 6 +++++-
 src/p_spec.c                                 | 4 ++--
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/extras/conf/udb/Includes/SRB222_linedefs.cfg b/extras/conf/udb/Includes/SRB222_linedefs.cfg
index b0e7543aae..448e98dc77 100644
--- a/extras/conf/udb/Includes/SRB222_linedefs.cfg
+++ b/extras/conf/udb/Includes/SRB222_linedefs.cfg
@@ -2146,6 +2146,11 @@ udmf
 				type = 13;
 			}
 			arg1
+			{
+				title = "Alpha";
+				default = 128;
+			}
+			arg2
 			{
 				title = "Damage bosses?";
 				type = 11;
diff --git a/src/p_setup.c b/src/p_setup.c
index a75cf7cb3b..c72887c7a8 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -3373,8 +3373,12 @@ static void P_ConvertBinaryMap(void)
 			break;
 		case 258: //FOF: Laser
 			lines[i].args[0] = lines[i].tag;
+			if (sides[lines[i].sidenum[0]].toptexture > 0)
+				lines[i].args[1] = sides[lines[i].sidenum[0]].toptexture;
+			else
+				lines[i].args[1] = 128;
 			if (lines[i].flags & ML_EFFECT1)
-				lines[i].args[1] = 1;
+				lines[i].args[2] = 1;
 			break;
 		case 259: //Custom FOF
 			if (lines[i].sidenum[1] == 0xffff)
diff --git a/src/p_spec.c b/src/p_spec.c
index ce01cb669f..214e7e1c08 100644
--- a/src/p_spec.c
+++ b/src/p_spec.c
@@ -6927,8 +6927,8 @@ void P_SpawnSpecials(boolean fromnetsave)
 				break;
 
 			case 258: // Laser block
-				P_AddLaserThinker(lines[i].args[0], lines + i, !!(lines[i].args[1]));
-				P_AddFakeFloorsByLine(i, (lines[i].alpha * 0xff) >> FRACBITS, FF_EXISTS|FF_RENDERALL|FF_NOSHADE|FF_EXTRA|FF_CUTEXTRA|FF_TRANSLUCENT, secthinkers);
+				P_AddLaserThinker(lines[i].args[0], lines + i, !!(lines[i].args[2]));
+				P_AddFakeFloorsByLine(i, lines[i].args[1], FF_EXISTS|FF_RENDERALL|FF_NOSHADE|FF_EXTRA|FF_CUTEXTRA|FF_TRANSLUCENT, secthinkers);
 				break;
 
 			case 259: // Custom FOF
-- 
GitLab