sw/src/draw.cpp:drawscreen: Removing the check that pp->sop_control

is non-null seems to resolve the newly introduced interpolation
issue for looking up/down while controlling a sector object.
We can also remove the PF_DEAD test, since
game.cpp:getinput should lock any kind of aiming.

src/src/game.cpp:getinput: We now, however, need to further
lock turning here while controlling a sector object.
This commit is contained in:
NY00123 2020-04-16 02:24:21 +03:00 committed by Christoph Oelckers
parent 4c73c11255
commit 8e9130c31a
2 changed files with 2 additions and 3 deletions

View File

@ -2013,8 +2013,7 @@ drawscreen(PLAYERp pp)
tx = camerapp->oposx + mulscale16(camerapp->posx - camerapp->oposx, smoothratio); tx = camerapp->oposx + mulscale16(camerapp->posx - camerapp->oposx, smoothratio);
ty = camerapp->oposy + mulscale16(camerapp->posy - camerapp->oposy, smoothratio); ty = camerapp->oposy + mulscale16(camerapp->posy - camerapp->oposy, smoothratio);
tz = camerapp->oposz + mulscale16(camerapp->posz - camerapp->oposz, smoothratio); tz = camerapp->oposz + mulscale16(camerapp->posz - camerapp->oposz, smoothratio);
if (PedanticMode || pp->sop_control || if (PedanticMode)
pp == Player+myconnectindex && TEST(pp->Flags, PF_DEAD))
{ {
tq16ang = camerapp->oq16ang + mulscale16(NORM_Q16ANGLE(camerapp->q16ang + fix16_from_int(1024) - camerapp->oq16ang) - fix16_from_int(1024), smoothratio); 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); tq16horiz = camerapp->oq16horiz + mulscale16(camerapp->q16horiz - camerapp->oq16horiz, smoothratio);

View File

@ -3288,7 +3288,7 @@ getinput(SW_PACKET *loc, SWBOOL tied)
} }
else if (!TEST(pp->Flags, PF_DEAD)) else if (!TEST(pp->Flags, PF_DEAD))
{ {
if (!TEST(pp->Flags, PF_CLIMBING)) if (!TEST(pp->Flags, PF_CLIMBING) && !pp->sop_control)
DoPlayerTurn(pp, &pp->camq16ang, q16angvel); DoPlayerTurn(pp, &pp->camq16ang, q16angvel);
DoPlayerHorizon(pp, &pp->camq16horiz, q16aimvel); DoPlayerHorizon(pp, &pp->camq16horiz, q16aimvel);
} }