diff --git a/source/games/duke/src/player_d.cpp b/source/games/duke/src/player_d.cpp index 90ad8f451..4ce049ed5 100644 --- a/source/games/duke/src/player_d.cpp +++ b/source/games/duke/src/player_d.cpp @@ -2710,7 +2710,7 @@ void processinput_d(int snum) if (p->newowner >= 0) { i = p->newowner; - hittype[i].tempang = p->getang(); + hittype[i].oq16ang = p->q16ang; p->posx = sprite[i].x; p->posy = sprite[i].y; p->posz = sprite[i].z; diff --git a/source/games/duke/src/render.cpp b/source/games/duke/src/render.cpp index a04ca4a53..e51890d72 100644 --- a/source/games/duke/src/render.cpp +++ b/source/games/duke/src/render.cpp @@ -587,7 +587,7 @@ void displayrooms(int snum, int smoothratio) if (p->newowner >= 0) { - fixed_t oang = hittype[p->newowner].tempang << FRACBITS; + fixed_t oang = hittype[p->newowner].oq16ang; cang = q16ang(oang + mulscale16(((p->q16ang + dang - oang) & 0x7FFFFFF) - dang, smoothratio)); choriz = q16horiz(p->q16horiz + p->q16horizoff); cposx = p->posx; diff --git a/source/games/duke/src/types.h b/source/games/duke/src/types.h index 07ae6eefa..d1a3ccd52 100644 --- a/source/games/duke/src/types.h +++ b/source/games/duke/src/types.h @@ -25,6 +25,7 @@ struct weaponhit short timetosleep; int floorz, ceilingz, lastvx, lastvy, bposx, bposy, bposz, aflags; int temp_data[6]; + fixed_t oq16ang; // for interpolating security cameras in displayrooms() when p->newowner >= 0. }; struct animwalltype