- SW: When beginning to operate a sector object, just forcibly set the angle in the ticker.

* Angle transition is not meant to be smooth or scaled to a target, it's just meant to get the player to the necessary angle.
* Fixes https://forum.zdoom.org/viewtopic.php?f=340&t=70191.
This commit is contained in:
Mitchell Richters 2020-10-12 13:15:11 +11:00
parent 1109a90273
commit 894feb1c80

View file

@ -5369,7 +5369,7 @@ DoPlayerBeginOperate(PLAYERp pp)
pp->sop = pp->sop_control = sop; pp->sop = pp->sop_control = sop;
sop->controller = pp->SpriteP; sop->controller = pp->SpriteP;
pp->angle.settarget(sop->ang); pp->angle.oang = pp->angle.ang = buildang(sop->ang);
pp->posx = sop->xmid; pp->posx = sop->xmid;
pp->posy = sop->ymid; pp->posy = sop->ymid;
COVERupdatesector(pp->posx, pp->posy, &pp->cursectnum); COVERupdatesector(pp->posx, pp->posy, &pp->cursectnum);
@ -5456,7 +5456,7 @@ DoPlayerBeginRemoteOperate(PLAYERp pp, SECTOR_OBJECTp sop)
save_sectnum = pp->cursectnum; save_sectnum = pp->cursectnum;
pp->angle.settarget(sop->ang); pp->angle.oang = pp->angle.ang = buildang(sop->ang);
pp->posx = sop->xmid; pp->posx = sop->xmid;
pp->posy = sop->ymid; pp->posy = sop->ymid;
COVERupdatesector(pp->posx, pp->posy, &pp->cursectnum); COVERupdatesector(pp->posx, pp->posy, &pp->cursectnum);
@ -5592,9 +5592,6 @@ DoPlayerStopOperate(PLAYERp pp)
pp->angle.ang = pp->angle.oang = q16ang(gethiq16angle(pp->sop_remote->xmid - pp->posx, pp->sop_remote->ymid - pp->posy)); pp->angle.ang = pp->angle.oang = q16ang(gethiq16angle(pp->sop_remote->xmid - pp->posx, pp->sop_remote->ymid - pp->posy));
} }
if (!cl_syncinput)
pp->angle.target = 0;
if (pp->sop_control) if (pp->sop_control)
{ {
pp->sop_control->controller = NULL; pp->sop_control->controller = NULL;