From c5a2d33d4e240f13be2dd7f2fe3d91f48d47ffe9 Mon Sep 17 00:00:00 2001
From: MascaraSnake <jonassauer27@gmail.com>
Date: Sun, 16 Jun 2019 16:49:18 +0200
Subject: [PATCH] Added minecart support to A_MixUp

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

diff --git a/src/p_enemy.c b/src/p_enemy.c
index 65581f65af..3267965e4a 100644
--- a/src/p_enemy.c
+++ b/src/p_enemy.c
@@ -6300,6 +6300,10 @@ void A_MixUp(mobj_t *actor)
 			}
 
 		//get this done first!
+		if (players[one].powers[pw_carry] == CR_MINECART && players[one].mo->tracer && !(P_MobjWasRemoved(players[one].mo->tracer)))
+			P_SetTarget(&players[one].mo->tracer->target, players[two].mo);
+		if (players[two].powers[pw_carry] == CR_MINECART && players[two].mo->tracer && !(P_MobjWasRemoved(players[two].mo->tracer)))
+			P_SetTarget(&players[two].mo->tracer->target, players[one].mo);
 		tempthing = players[one].mo->tracer;
 		P_SetTarget(&players[one].mo->tracer, players[two].mo->tracer);
 		P_SetTarget(&players[two].mo->tracer, tempthing);
@@ -6441,6 +6445,8 @@ void A_MixUp(mobj_t *actor)
 
 				//...carry after.  same reasoning.
 				players[i].powers[pw_carry] = transcarry[teleportfrom];
+				if (transcarry[teleportfrom] == CR_MINECART && transtracer[teleportfrom] && !(P_MobjWasRemoved(transtracer[teleportfrom])))
+					P_SetTarget(&transtracer[teleportfrom]->target, players[i].mo);
 
 				teleported[i] = true;
 				counter++;
-- 
GitLab