From 5ae8664b708d82b38fcd49e3643d771ac8c258b3 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Thu, 19 May 2022 16:51:26 -0400 Subject: [PATCH] Try putting lagless camera stuff back --- src/d_main.c | 12 ++++++++++++ src/p_tick.c | 22 ++++++++++++++++------ src/p_tick.h | 1 + 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index e97f259a2..d55ae35ff 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -814,6 +814,18 @@ void D_SRB2Loop(void) } else if (rendertimeout < entertic) // in case the server hang or netsplit { + // Lagless camera! Yay! + if (gamestate == GS_LEVEL && netgame) + { + // 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++) + { + P_RunChaseCameras(); + } + R_UpdateViewInterpolation(); + } + doDisplay = true; } diff --git a/src/p_tick.c b/src/p_tick.c index 8b777efbe..f8c834e3c 100644 --- a/src/p_tick.c +++ b/src/p_tick.c @@ -493,6 +493,19 @@ static inline void P_DoTeamStuff(void) } } +void P_RunChaseCameras(void) +{ + UINT8 i; + + for (i = 0; i <= r_splitscreen; i++) + { + if (camera[i].chase) + { + P_MoveChaseCamera(&players[displayplayers[i]], &camera[i], false); + } + } +} + // // P_Ticker // @@ -733,12 +746,9 @@ void P_Ticker(boolean run) K_UpdateDirector(); // Always move the camera. - for (i = 0; i <= r_splitscreen; i++) - { - if (camera[i].chase) - P_MoveChaseCamera(&players[displayplayers[i]], &camera[i], false); - LUAh_PostThinkFrame(); - } + P_RunChaseCameras(); + + LUAh_PostThinkFrame(); if (run) { diff --git a/src/p_tick.h b/src/p_tick.h index e90f1be31..7b10a5f28 100644 --- a/src/p_tick.h +++ b/src/p_tick.h @@ -24,6 +24,7 @@ extern tic_t leveltime; void Command_Numthinkers_f(void); void Command_CountMobjs_f(void); +void P_RunChaseCameras(void); void P_Ticker(boolean run); void P_PreTicker(INT32 frames); void P_DoTeamscrambling(void);