From 039458d14d50ae9c670edc596ae85b241e5cd3b9 Mon Sep 17 00:00:00 2001 From: NY00123 Date: Wed, 27 May 2020 23:17:18 +0300 Subject: [PATCH] sw/src/draw.cpp:drawscreen: Removing the PF_DEAD test in 1a3c9e3a15ba788607dfd96ebcc75a2198be6d69 was a mistake. The interpolation should still apply, albeit not while the viewing angle is changed via the player's own input. We should also continue interpolating in coop view. --- source/sw/src/draw.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/sw/src/draw.cpp b/source/sw/src/draw.cpp index 09fb0dcb8..7d6fd5c66 100644 --- a/source/sw/src/draw.cpp +++ b/source/sw/src/draw.cpp @@ -2049,7 +2049,10 @@ drawscreen(PLAYERp pp) tx = camerapp->oposx + mulscale16(camerapp->posx - camerapp->oposx, smoothratio); ty = camerapp->oposy + mulscale16(camerapp->posy - camerapp->oposy, smoothratio); tz = camerapp->oposz + mulscale16(camerapp->posz - camerapp->oposz, smoothratio); - if (PedanticMode || (pp != Player+myconnectindex)) + // TODO: It'd be better to check pp->input.q16angvel instead, problem is that + // it's been repurposed for the q16ang diff while tying input to framerate + if (PedanticMode || (pp != Player+myconnectindex) || + (TEST(pp->Flags, PF_DEAD) && (loc.q16angvel == 0))) { tq16ang = camerapp->oq16ang + mulscale16(NORM_Q16ANGLE(camerapp->q16ang + fix16_from_int(1024) - camerapp->oq16ang) - fix16_from_int(1024), smoothratio); tq16horiz = camerapp->oq16horiz + mulscale16(camerapp->q16horiz - camerapp->oq16horiz, smoothratio);