Ensure view interpolates between T-1 to T

This commit is contained in:
Eidolon 2022-10-25 19:32:28 -05:00
parent 89d08372ce
commit 806252320e

View file

@ -23,6 +23,7 @@
#include "lua_script.h" #include "lua_script.h"
#include "lua_hook.h" #include "lua_hook.h"
#include "k_kart.h" #include "k_kart.h"
#include "r_main.h"
#include "r_fps.h" #include "r_fps.h"
// Object place // Object place
@ -813,6 +814,20 @@ void P_Ticker(boolean run)
{ {
R_UpdateLevelInterpolators(); R_UpdateLevelInterpolators();
R_UpdateViewInterpolation(); R_UpdateViewInterpolation();
// Hack: ensure newview is assigned every tic.
// Ensures view interpolation is T-1 to T in poor network conditions
// We need a better way to assign view state decoupled from game logic
for (i = 0; i <= splitscreen; i++)
{
player_t *player = &players[displayplayers[i]];
BOOL skyVisible = skyVisiblePerPlayer[i];
if (skyVisible && skyboxmo[0] && cv_skybox.value)
{
R_SkyboxFrame(player);
}
R_SetupFrame(player, (skyboxmo[0] && cv_skybox.value));
}
} }
P_MapEnd(); P_MapEnd();