diff --git a/src/m_fixed.c b/src/m_fixed.c index 99628c1ab..2da72fe05 100644 --- a/src/m_fixed.c +++ b/src/m_fixed.c @@ -61,8 +61,6 @@ fixed_t FixedSqrt(fixed_t x) #endif } -#define MAXINT2 ((int)0x7fffffff) - fixed_t FixedHypot(fixed_t x, fixed_t y) { // Moved the code from R_PointToDist2 to here, @@ -71,35 +69,30 @@ fixed_t FixedHypot(fixed_t x, fixed_t y) angle_t angle; fixed_t dist; - fixed_t temp; x = abs(x); y = abs(y); if (y > x) { - fixed_t temp_var = x; + fixed_t temp; + + temp = x; x = y; - y = temp_var; + y = temp; } if (!y) return x; - //angle = (tantoangle[FixedDiv(y, x)>>DBITS] + ANGLE_90) >> ANGLETOFINESHIFT; - angle = (tantoangle[((y >> 14 >= x) ? ((y ^ x) >> 31) ^ MAXINT2 : FixedDiv2(y, x)) >> DBITS] + ANGLE_90) >> ANGLETOFINESHIFT; + angle = (tantoangle[FixedDiv(y, x)>>DBITS] + ANGLE_90) >> ANGLETOFINESHIFT; // use as cosine - //dist = FixedDiv(x, FINESINE(angle)); - - temp = finesine[angle]; - dist = ((x >> 14) >= abs(temp)) ? ((x ^ temp) >> 31) ^ MAXINT2 : FixedDiv2(x, temp); + dist = FixedDiv(x, FINESINE(angle)); return dist; } -#undef MAXINT2 - vector2_t *FV2_Load(vector2_t *vec, fixed_t x, fixed_t y) { vec->x = x;