diff --git a/source/sw/src/draw.cpp b/source/sw/src/draw.cpp index b33f06a2b..a46a49ac9 100644 --- a/source/sw/src/draw.cpp +++ b/source/sw/src/draw.cpp @@ -2048,7 +2048,7 @@ 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) + if (PedanticMode || (pp != Player+myconnectindex)) { 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); diff --git a/source/sw/src/player.cpp b/source/sw/src/player.cpp index 5b2e0a356..f91e1ef37 100644 --- a/source/sw/src/player.cpp +++ b/source/sw/src/player.cpp @@ -1565,7 +1565,9 @@ DoPlayerTurn(PLAYERp pp, fix16_t *pq16ang, fix16_t q16angvel) if (!PedanticMode && (pq16ang == &pp->q16ang)) { SET(pp->Flags2, PF2_INPUT_CAN_TURN); - pp->q16ang = pp->oq16ang = pp->input.q16ang; + pp->q16ang = pp->input.q16ang; + if ((pp == &Player[myconnectindex]) || (pp == ppp)) // No coop view? + pp->oq16ang = pp->q16ang; sprite[pp->PlayerSprite].ang = fix16_to_int(*pq16ang); if (!Prediction) { @@ -1933,7 +1935,9 @@ DoPlayerHorizon(PLAYERp pp, fix16_t *pq16horiz, fix16_t q16aimvel) if (!PedanticMode && (pq16horiz == &pp->q16horiz)) { SET(pp->Flags2, PF2_INPUT_CAN_AIM); - pp->q16horiz = pp->oq16horiz = pp->input.q16horiz; + pp->q16horiz = pp->input.q16horiz; + if ((pp == &Player[myconnectindex]) || (pp == ppp)) // No coop view? + pp->oq16horiz = pp->q16horiz; return; }