From 4718c1993a6a0c23435ed54d4b2eacfb86e3af99 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Fri, 12 Feb 2021 20:11:09 -0500 Subject: [PATCH] Shortcut function for getting angle difference, so that I don't need (INT32) in front of all of the angle_t's :V --- src/k_hud.c | 6 +++--- src/tables.c | 6 ++++++ src/tables.h | 2 ++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/k_hud.c b/src/k_hud.c index a8b4df488..284567765 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -782,7 +782,7 @@ void K_ObjectTracking(trackingResult_t *result, vector3_t *point, UINT8 cameraNu player_t *player; fixed_t viewpointX, viewpointY, viewpointZ; - INT32 viewpointAngle, viewpointAiming; + angle_t viewpointAngle, viewpointAiming; INT32 screenWidth, screenHeight; fixed_t screenHalfW, screenHalfH; @@ -873,7 +873,7 @@ void K_ObjectTracking(trackingResult_t *result, vector3_t *point, UINT8 cameraNu // Determine viewpoint factors. h = R_PointToDist2(point->x, point->y, viewpointX, viewpointY); - da = viewpointAngle - (INT32)(R_PointToAngle2(point->x, point->y, viewpointX, viewpointY)); + da = AngleDifference(viewpointAngle, R_PointToAngle2(point->x, point->y, viewpointX, viewpointY)); // Set results! result->x = screenHalfW + FixedMul(NEWTAN(da), fg); @@ -881,7 +881,7 @@ void K_ObjectTracking(trackingResult_t *result, vector3_t *point, UINT8 cameraNu result->scale = FixedDiv(screenHalfW, h+1); - result->onScreen = ((abs(da) > ANG60) || (abs(viewpointAiming - R_PointToAngle2(0, 0, h, viewpointZ)) > ANGLE_45)); + result->onScreen = ((abs(da) > ANG60) || (abs(AngleDifference(viewpointAiming, R_PointToAngle2(0, 0, h, viewpointZ))) > ANGLE_45)); if (encoremode) { diff --git a/src/tables.c b/src/tables.c index 70a1ecd0a..9223bb7ca 100644 --- a/src/tables.c +++ b/src/tables.c @@ -167,6 +167,12 @@ angle_t FixedAngle(fixed_t fa) return AngleAdj(cfa, cwf, ra); } +INT32 AngleDifference(angle_t a1, angle_t a2) +{ + // Silly but easy way to do it through integer conversion. + return (INT32)(a1) - (INT32)(a2); +} + #include "t_ftan.c" diff --git a/src/tables.h b/src/tables.h index e760a1e65..a34b95ad2 100644 --- a/src/tables.h +++ b/src/tables.h @@ -99,6 +99,8 @@ FUNCMATH fixed_t AngleFixed(angle_t af); FUNCMATH angle_t FixedAngle(fixed_t fa); // and with a factor, with +factor for (fa/factor) and -factor for (fa*factor) FUNCMATH angle_t FixedAngleC(fixed_t fa, fixed_t factor); +// difference between two angle_t +FUNCMATH INT32 AngleDifference(angle_t a1, angle_t a2); /// The FixedAcos function FUNCMATH angle_t FixedAcos(fixed_t x);