X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fspeedmine.c;h=175e1a538c4d6a14c2d891395b3352386e0baf8f;hb=6cee540bdbb571485cd5e519f89f389faebd0495;hp=64f8578a5ae27e9119e3d6206ead53e56cd5dc85;hpb=3c58fb6311db49c46f1670922933b27c6ea0c065;p=xscreensaver diff --git a/hacks/speedmine.c b/hacks/speedmine.c index 64f8578a..175e1a53 100644 --- a/hacks/speedmine.c +++ b/hacks/speedmine.c @@ -116,6 +116,11 @@ static double step=0.0; #define BACKWARDS -1 static int direction = FORWARDS; +/* Apparently AIX's math.h bogusly defines `nearest' as a function, + in violation of the ANSI C spec. */ +#undef nearest +#define nearest n3arest + static int pindex=0, nearest=0; static int flipped_at=0; static int xoffset=0, yoffset=0; @@ -272,9 +277,14 @@ perspective (void) zfactor = (double)depth* (12.0 - TERRAIN_LENGTH/8.0) * zf; for (j=0; j < TERRAIN_BREADTH; j++) { jj = direction * j; MODULO(jj, TERRAIN_BREADTH); - xx = (worldx[i][jj]-(vertigo*xcc))/zfactor; - yy = (worldy[i][j]-(vertigo*ycc))/zfactor; - + /* jwz: not totally sure if this is right, but it avoids div0 */ + if (zfactor != 0) { + xx = (worldx[i][jj]-(vertigo*xcc))/zfactor; + yy = (worldy[i][j]-(vertigo*ycc))/zfactor; + } else { + xx = 0; + yy = 0; + } r = rotation_bias + (int)(vertigo*zcc); MODULO(r, ROTS); xvals[t][j] = xoffset + width/2 +