Fix XNORM() and YNORM()

Broken in commit 5f764285 (v4.3.12) for negative multiples of WORLD_X
and WORLD_Y, respectively.

This could theoretically lead to buffer overruns and other
unpleasantness.  None have been reproduced, though.
This commit is contained in:
Markus Armbruster 2008-05-12 18:45:11 +02:00
parent 238b9afc3b
commit 7680acc39f

View file

@ -43,9 +43,9 @@
#define XYOFFSET(x, y) (((y) * WORLD_X + (x)) / 2)
#define XNORM(x) \
(((x) < 0) ? (WORLD_X - (-(x) % WORLD_X)) : ((x) % WORLD_X))
(((x) < 0) ? (WORLD_X - 1 - ((-(x) - 1) % WORLD_X)) : ((x) % WORLD_X))
#define YNORM(y) \
(((y) < 0) ? (WORLD_Y - (-(y) % WORLD_Y)) : ((y) % WORLD_Y))
(((y) < 0) ? (WORLD_Y - 1 - ((-(y) - 1) % WORLD_Y)) : ((y) % WORLD_Y))
struct range {
coord lx; /* low-range x,y */