diff --git a/source/sw/src/game.h b/source/sw/src/game.h index 2f7117d68..5a325d61e 100644 --- a/source/sw/src/game.h +++ b/source/sw/src/game.h @@ -1185,7 +1185,8 @@ struct PLAYERstruct int oldposx,oldposy,oldposz; int RevolveX, RevolveY; - short RevolveDeltaAng, RevolveAng; + short RevolveDeltaAng; + fix16_t RevolveQ16Ang; // under vars are for wading and swimming short PlayerSprite, PlayerUnderSprite; diff --git a/source/sw/src/track.cpp b/source/sw/src/track.cpp index 216c627a0..623adcfde 100644 --- a/source/sw/src/track.cpp +++ b/source/sw/src/track.cpp @@ -789,7 +789,7 @@ SectorObjectSetupBounds(SECTOR_OBJECTp sop) if (pp->posx > xlow && pp->posx < xhigh && pp->posy > ylow && pp->posy < yhigh) { - pp->RevolveAng = fix16_to_int(pp->q16ang); + pp->RevolveQ16Ang = pp->q16ang; pp->RevolveX = pp->posx; pp->RevolveY = pp->posy; pp->RevolveDeltaAng = 0; @@ -1652,7 +1652,7 @@ MovePlayer(PLAYERp pp, SECTOR_OBJECTp sop, int nx, int ny) { SET(pp->Flags, PF_PLAYER_RIDING); - pp->RevolveAng = fix16_to_int(pp->q16ang); + pp->RevolveQ16Ang = pp->q16ang; pp->RevolveX = pp->posx; pp->RevolveY = pp->posy; @@ -1681,7 +1681,7 @@ MovePlayer(PLAYERp pp, SECTOR_OBJECTp sop, int nx, int ny) // save the current information so when Player stops // moving then you // know where he was last - pp->RevolveAng = fix16_to_int(pp->q16ang); + pp->RevolveQ16Ang = pp->q16ang; pp->RevolveX = pp->posx; pp->RevolveY = pp->posy; @@ -1697,7 +1697,7 @@ MovePlayer(PLAYERp pp, SECTOR_OBJECTp sop, int nx, int ny) pp->RevolveY += BOUND_4PIX(ny); // Last known angle is now adjusted by the delta angle - pp->RevolveAng = NORM_ANGLE(fix16_to_int(pp->q16ang) - pp->RevolveDeltaAng); + pp->RevolveQ16Ang = NORM_Q16ANGLE(pp->q16ang - fix16_from_int(pp->RevolveDeltaAng)); } // increment Players delta angle @@ -1711,9 +1711,9 @@ MovePlayer(PLAYERp pp, SECTOR_OBJECTp sop, int nx, int ny) // New angle is formed by taking last known angle and // adjusting by the delta angle - pp->camq16ang += fix16_from_int(NORM_ANGLE(pp->RevolveAng + pp->RevolveDeltaAng)) - pp->q16ang; + pp->camq16ang += NORM_Q16ANGLE(pp->RevolveQ16Ang + fix16_from_int(pp->RevolveDeltaAng)) - pp->q16ang; pp->camq16ang = NORM_Q16ANGLE(pp->camq16ang); - pp->q16ang = fix16_from_int(NORM_ANGLE(pp->RevolveAng + pp->RevolveDeltaAng)); + pp->q16ang = NORM_Q16ANGLE(pp->RevolveQ16Ang + fix16_from_int(pp->RevolveDeltaAng)); if (!InterpolateSectObj) {