Fix number rounding, clarify comment and change var. names

This commit is contained in:
sfan5 2014-09-02 14:49:56 +02:00
parent b7f0a8a29a
commit 1c47825d70

@ -39,16 +39,16 @@ static inline int color2int(Color c)
return rgb2int(c.r, c.g, c.b, c.a); return rgb2int(c.r, c.g, c.b, c.a);
} }
// rounds n (upwards) to a multiple of f while preserving the sign-bit of n // rounds n (away from 0) to a multiple of f while preserving the sign of n
static inline int round_multiple_nosign(int n, int f) static inline int round_multiple_nosign(int n, int f)
{ {
int nn, ns; int abs_n, sign;
nn = (n >= 0) ? n : -n; abs_n = (n >= 0) ? n : -n;
ns = (n >= 0) ? 1 : -1; sign = (n >= 0) ? 1 : -1;
if (nn % f == 0) if (abs_n % f == 0)
return n; // n == nn * ns return n; // n == abs_n * sign
else else
return ns * (n + f - (n % f)); return sign * (abs_n + f - (abs_n % f));
} }
static inline int readBlockContent(const unsigned char *mapData, int version, int datapos) static inline int readBlockContent(const unsigned char *mapData, int version, int datapos)