From 338f1357a61786e42de31849d7f7fc8ce45e84cb Mon Sep 17 00:00:00 2001
From: MascaraSnake <jonassauer27@gmail.com>
Date: Wed, 29 Dec 2021 15:53:20 +0100
Subject: [PATCH] Particle generator: Use args[6] instead of angle for tagging

---
 extras/conf/udb/Includes/SRB222_things.cfg | 5 +++++
 src/p_mobj.c                               | 4 ++--
 src/p_setup.c                              | 1 +
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/extras/conf/udb/Includes/SRB222_things.cfg b/extras/conf/udb/Includes/SRB222_things.cfg
index 9d557060e..0cb0287c5 100644
--- a/extras/conf/udb/Includes/SRB222_things.cfg
+++ b/extras/conf/udb/Includes/SRB222_things.cfg
@@ -5465,6 +5465,11 @@ udmf
 			{
 				title = "Rising distance";
 			}
+			arg6
+			{
+				title = "Heights control linedef";
+				type = 15;
+			}
 		}
 		758
 		{
diff --git a/src/p_mobj.c b/src/p_mobj.c
index 7b6f14fa4..46510200e 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -12430,8 +12430,8 @@ static boolean P_SetupParticleGen(mapthing_t *mthing, mobj_t *mobj)
 	INT32 line;
 	const size_t mthingi = (size_t)(mthing - mapthings);
 
-	// Find the corresponding linedef special, using angle as tag
-	line = Tag_FindLineSpecial(15, mthing->angle);
+	// Find the corresponding linedef special, using args[6] as tag
+	line = mthing->args[6] ? Tag_FindLineSpecial(15, mthing->args[6]) : -1;
 
 	type = mthing->stringargs[0] ? get_number(mthing->stringargs[0]) : MT_PARTICLE;
 
diff --git a/src/p_setup.c b/src/p_setup.c
index e0c805a4b..77d009194 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -5206,6 +5206,7 @@ static void P_ConvertBinaryMap(void)
 			mapthings[i].args[2] = sides[lines[j].sidenum[0]].textureoffset >> FRACBITS;
 			mapthings[i].args[3] = sides[lines[j].sidenum[0]].rowoffset >> FRACBITS;
 			mapthings[i].args[4] = lines[j].backsector ? sides[lines[j].sidenum[1]].textureoffset >> FRACBITS : 0;
+			mapthings[i].args[6] = mapthings[i].angle;
 			if (sides[lines[j].sidenum[0]].toptexture)
 				P_WriteConstant(sides[lines[j].sidenum[0]].toptexture, &mapthings[i].stringargs[0]);
 			break;
-- 
GitLab