diff --git a/source/sw/src/draw.cpp b/source/sw/src/draw.cpp index 99b599c9a..413aae590 100644 --- a/source/sw/src/draw.cpp +++ b/source/sw/src/draw.cpp @@ -1651,7 +1651,7 @@ drawscreen(PLAYERp pp, double smoothratio) tz = camerapp->oposz + xs_CRoundToInt(fmulscale16(camerapp->posz - camerapp->oposz, smoothratio)); // 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 (cl_syncinput || (pp != Player+myconnectindex) || TEST(pp->Flags, PF_DEAD)) + if (cl_syncinput || pp != Player+myconnectindex) { tq16ang = camerapp->oq16ang + xs_CRoundToInt(fmulscale16(NORM_Q16ANGLE(camerapp->q16ang + IntToFixed(1024) - camerapp->oq16ang) - IntToFixed(1024), smoothratio)); tq16horiz = camerapp->oq16horiz + xs_CRoundToInt(fmulscale16(camerapp->q16horiz - camerapp->oq16horiz, smoothratio)); diff --git a/source/sw/src/player.cpp b/source/sw/src/player.cpp index 44464df5c..f7980ae16 100644 --- a/source/sw/src/player.cpp +++ b/source/sw/src/player.cpp @@ -6278,20 +6278,14 @@ DoPlayerBeginDie(PLAYERp pp) void DoPlayerDeathHoriz(PLAYERp pp, short target, short speed) { - if (pp->q16horiz > IntToFixed(target)) + if ((pp->q16horiz - IntToFixed(target)) > FRACUNIT) { playerAddHoriz(pp, -speed); - - if (pp->q16horiz <= IntToFixed(target)) - playerSetHoriz(pp, target); } - if (pp->q16horiz < IntToFixed(target)) + if ((IntToFixed(target) - pp->q16horiz) > FRACUNIT) { playerAddHoriz(pp, speed); - - if (pp->q16horiz >= IntToFixed(target)) - playerSetHoriz(pp, target); } }