From 5344f5e7b97f42c371b71591925bd6eae782d70b Mon Sep 17 00:00:00 2001
From: Lactozilla <jp6781615@gmail.com>
Date: Wed, 22 Nov 2023 17:00:26 -0300
Subject: [PATCH] Fix A_VileFire calls made from A_VileTarget A_VileTarget
 doesn't set var1 or var2 when calling A_VileFire, so the arguments are
 undefined. This change calls the action with {integer(0), integer(0)}, which
 makes it act like the original A_Fire from Doom

---
 src/p_enemy.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/p_enemy.c b/src/p_enemy.c
index 61effc1432..81f123d573 100644
--- a/src/p_enemy.c
+++ b/src/p_enemy.c
@@ -11150,6 +11150,8 @@ void A_VileTarget(mobj_t *actor, action_val_t *args, unsigned argcount)
 	else
 		fogtype = (mobjtype_t)locvar1;
 
+	action_val_t call_args[2] = { ACTION_INTEGER_VAL(0), ACTION_INTEGER_VAL(0) };
+
 	if (!locvar2)
 	{
 		fog = P_SpawnMobj(actor->target->x,
@@ -11167,7 +11169,7 @@ void A_VileTarget(mobj_t *actor, action_val_t *args, unsigned argcount)
 		P_SetTarget(&actor->tracer, fog);
 		P_SetTarget(&fog->target, actor);
 		P_SetTarget(&fog->tracer, actor->target);
-		A_VileFire(fog, args, 2);
+		A_VileFire(fog, call_args, 2);
 	}
 	else
 	{
@@ -11199,7 +11201,7 @@ void A_VileTarget(mobj_t *actor, action_val_t *args, unsigned argcount)
 				P_SetTarget(&actor->tracer, fog);
 			P_SetTarget(&fog->target, actor);
 			P_SetTarget(&fog->tracer, players[i].mo);
-			A_VileFire(fog, args, argcount);
+			A_VileFire(fog, call_args, 2);
 		}
 	}
 }
-- 
GitLab