From 054bbd7745a17e94f81500c42ab12a612f595b82 Mon Sep 17 00:00:00 2001
From: toaster <rollerorbital@gmail.com>
Date: Thu, 27 Oct 2022 13:36:14 +0100
Subject: [PATCH] Fix undesired interpolation for regular teleport

---
 src/p_telept.c | 25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

diff --git a/src/p_telept.c b/src/p_telept.c
index 418965625..7c9da2269 100644
--- a/src/p_telept.c
+++ b/src/p_telept.c
@@ -17,6 +17,7 @@
 #include "r_state.h"
 #include "s_sound.h"
 #include "r_main.h"
+#include "r_fps.h"
 
 /**	\brief	The P_MixUp function
 
@@ -149,25 +150,17 @@ boolean P_Teleport(mobj_t *thing, fixed_t x, fixed_t y, fixed_t z, angle_t angle
 			thing->reactiontime = TICRATE/2; // don't move for about half a second
 
 		// absolute angle position
-		if (thing == players[consoleplayer].mo)
-			localangle[0] = angle;
-		else if (splitscreen)
-		{
-			for (i = 1; i <= splitscreen; i++)
-			{
-				if (thing == players[displayplayers[i]].mo)
-				{
-					localangle[i] = angle;
-					break;
-				}
-			}
-		}
-
 		// move chasecam at new player location
 		for (i = 0; i <= splitscreen; i++)
 		{
-			if (thing->player == &players[displayplayers[i]] && camera[i].chase)
-				P_ResetCamera(thing->player, &camera[i]);
+			if (thing->player == &players[displayplayers[i]])
+			{
+				localangle[i] = angle;
+				if (camera[i].chase)
+					P_ResetCamera(thing->player, &camera[i]);
+				R_ResetViewInterpolation(i + 1);
+				break;
+			}
 		}
 
 		// don't run in place after a teleport
-- 
GitLab