From 6dd27af26e6fa47f6e449db139f193c730b24910 Mon Sep 17 00:00:00 2001
From: Eidolon <furyhunter600@gmail.com>
Date: Mon, 11 Apr 2022 22:56:48 -0500
Subject: [PATCH] Run anti-lag chasecam at tic frequency

Fixes jittery and unstable chasecam in high latency netgames
---
 src/d_main.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/d_main.c b/src/d_main.c
index 00ede9aec6..2f564c6c8f 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -825,10 +825,17 @@ void D_SRB2Loop(void)
 			// Lagless camera! Yay!
 			if (gamestate == GS_LEVEL && netgame)
 			{
-				if (splitscreen && camera2.chase)
-					P_MoveChaseCamera(&players[secondarydisplayplayer], &camera2, false);
-				if (camera.chase)
-					P_MoveChaseCamera(&players[displayplayer], &camera, false);
+				// Evaluate the chase cam once for every local realtic
+				// This might actually be better suited inside G_Ticker or TryRunTics
+				for (tic_t chasecamtics = 0; chasecamtics < realtics; chasecamtics++)
+				{
+					if (splitscreen && camera2.chase)
+						P_MoveChaseCamera(&players[secondarydisplayplayer], &camera2, false);
+					if (camera.chase)
+						P_MoveChaseCamera(&players[displayplayer], &camera, false);
+				}
+				R_UpdateViewInterpolation();
+				
 			}
 			// (Only display if not already done for frame interp)
 			cv_frameinterpolation.value == 0 ? D_Display() : 0;
-- 
GitLab