Interpolate view, even when paused

Fixes slideshow movement with demo freecam while paused.
Does not appear to jitter like texture scrollers do.
This commit is contained in:
James R 2023-08-14 01:00:11 -07:00 committed by NepDisk
parent fcbb77f70d
commit f72aa63f36
3 changed files with 7 additions and 1 deletions

View file

@ -907,11 +907,14 @@ void D_SRB2Loop(void)
{
rendertimefrac = FRACUNIT;
}
rendertimefrac_unpaused = g_time.timefrac;
}
else
{
renderdeltatics = realtics * FRACUNIT;
rendertimefrac = FRACUNIT;
rendertimefrac_unpaused = FRACUNIT;
}
if ((interp || doDisplay) && !frameskip)

View file

@ -89,6 +89,7 @@ mobj_t *r_viewmobj;
int r_splitscreen;
fixed_t rendertimefrac;
fixed_t rendertimefrac_unpaused;
fixed_t renderdeltatics;
boolean renderisnewtic;
@ -1215,7 +1216,7 @@ R_SetupCommonFrame
else
newview->sector = R_PointInSubsector(newview->x, newview->y)->sector;
R_InterpolateView(rendertimefrac);
R_InterpolateView(rendertimefrac_unpaused);
}
static void R_SetupAimingFrame(int s)

View file

@ -39,6 +39,8 @@ extern size_t validcount, linecount, loopcount, framecount;
// The fraction of a tic being drawn (for interpolation between two tics)
extern fixed_t rendertimefrac;
// Same as rendertimefrac but not suspended when the game is paused
extern fixed_t rendertimefrac_unpaused;
// Evaluated delta tics for this frame (how many tics since the last frame)
extern fixed_t renderdeltatics;
// The current render is a new logical tic