diff --git a/src/r_fps.c b/src/r_fps.c index 819df0325..863e9613a 100644 --- a/src/r_fps.c +++ b/src/r_fps.c @@ -177,6 +177,26 @@ void R_SetViewContext(enum viewcontext_e _viewcontext) } } +fixed_t R_InterpolateFixed(fixed_t from, fixed_t to) +{ + if (cv_frameinterpolation.value == 0) + { + return to; + } + + return (R_LerpFixed(from, to, rendertimefrac)); +} + +angle_t R_InterpolateAngle(angle_t from, angle_t to) +{ + if (cv_frameinterpolation.value == 0) + { + return to; + } + + return (R_LerpAngle(from, to, rendertimefrac)); +} + void R_InterpolateMobjState(mobj_t *mobj, fixed_t frac, interpmobjstate_t *out) { out->x = R_LerpFixed(mobj->old_x, mobj->x, frac); diff --git a/src/r_fps.h b/src/r_fps.h index 0e10cf5e6..aa6213ae3 100644 --- a/src/r_fps.h +++ b/src/r_fps.h @@ -99,6 +99,10 @@ void R_UpdateViewInterpolation(void); void R_ResetViewInterpolation(void); // Set the current view context (the viewvars pointed to by newview) void R_SetViewContext(enum viewcontext_e _viewcontext); + +fixed_t R_InterpolateFixed(fixed_t from, fixed_t to); +angle_t R_InterpolateAngle(angle_t from, angle_t to); + // Evaluate the interpolated mobj state for the given mobj void R_InterpolateMobjState(mobj_t *mobj, fixed_t frac, interpmobjstate_t *out); // Evaluate the interpolated mobj state for the given precipmobj