- Duke: Fix camera interpolations following uplift in 9615308fb3.

This commit is contained in:
Mitchell Richters 2020-09-09 20:31:07 +10:00 committed by Christoph Oelckers
parent d6c6561309
commit 6570366a97
2 changed files with 8 additions and 15 deletions

View file

@ -581,26 +581,20 @@ void displayrooms(int snum, double smoothratio)
if (p->newowner >= 0) if (p->newowner >= 0)
{ {
fixed_t a = IntToFixed(sprite[p->newowner].ang); fixed_t& oang = hittype[p->newowner].oq16ang;
fixed_t& ang = p->q16ang;
if (p->newowner != p->oldowner) if (p->newowner != p->oldowner)
{ {
oang = ang = IntToFixed(sprite[p->newowner].ang);
cang = q16ang(ang);
p->oldowner = p->newowner; p->oldowner = p->newowner;
hittype[p->newowner].oq16ang = a;
cang = q16ang(a);
p->camchangecnt = 3;
}
else if (p->camchangecnt > 0)
{
hittype[p->newowner].oq16ang = a;
cang = q16ang(a);
p->camchangecnt--;
} }
else else
{ {
fixed_t oang = hittype[p->newowner].oq16ang; cang = q16ang(oang + xs_CRoundToInt(fmulscale16(((ang + dang - oang) & 0x7FFFFFF) - dang, smoothratio)));
cang = q16ang(oang + xs_CRoundToInt(fmulscale16(((a + dang - oang) & 0x7FFFFFF) - dang, smoothratio)));
} }
cang = q16ang(a);
choriz = q16horiz(p->q16horiz + p->q16horizoff); choriz = q16horiz(p->q16horiz + p->q16horizoff);
cposx = sprite[p->newowner].pos.x; cposx = sprite[p->newowner].pos.x;
cposy = sprite[p->newowner].pos.y; cposy = sprite[p->newowner].pos.y;
@ -610,7 +604,6 @@ void displayrooms(int snum, double smoothratio)
} }
else if (p->over_shoulder_on == 0) else if (p->over_shoulder_on == 0)
{ {
p->camchangecnt = 0;
p->oldowner = -1; p->oldowner = -1;
if (cl_viewbob) cposz += p->opyoff + xs_CRoundToInt(fmulscale16(p->pyoff - p->opyoff, smoothratio)); if (cl_viewbob) cposz += p->opyoff + xs_CRoundToInt(fmulscale16(p->pyoff - p->opyoff, smoothratio));
} }

View file

@ -137,7 +137,7 @@ struct player_struct
short ammo_amount[MAX_WEAPONS], wackedbyactor, frag, fraggedself; short ammo_amount[MAX_WEAPONS], wackedbyactor, frag, fraggedself;
short curr_weapon, last_weapon, tipincs, wantweaponfire; short curr_weapon, last_weapon, tipincs, wantweaponfire;
short holoduke_amount, newowner, oldowner, camchangecnt, hurt_delay, hbomb_hold_delay; short holoduke_amount, newowner, oldowner, hurt_delay, hbomb_hold_delay;
short jumping_counter, airleft, knee_incs, access_incs; short jumping_counter, airleft, knee_incs, access_incs;
short ftq, access_wallnum, access_spritenum; short ftq, access_wallnum, access_spritenum;
short got_access, weapon_ang, firstaid_amount; short got_access, weapon_ang, firstaid_amount;