projects
/
xscreensaver
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
http://www.archive.org/download/tucows_10294_XScreenSaver/xscreensaver-4.10.tar.gz
[xscreensaver]
/
hacks
/
speedmine.c
diff --git
a/hacks/speedmine.c
b/hacks/speedmine.c
index 64f8578a5ae27e9119e3d6206ead53e56cd5dc85..175e1a538c4d6a14c2d891395b3352386e0baf8f 100644
(file)
--- a/
hacks/speedmine.c
+++ b/
hacks/speedmine.c
@@
-116,6
+116,11
@@
static double step=0.0;
#define BACKWARDS -1
static int direction = FORWARDS;
#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;
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);
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 +
r = rotation_bias + (int)(vertigo*zcc); MODULO(r, ROTS);
xvals[t][j] = xoffset + width/2 +