better animate rate (Marcelo Magallon)
diff --git a/progs/demos/tunnel2.c b/progs/demos/tunnel2.c
index 436f01b..14248c0 100644
--- a/progs/demos/tunnel2.c
+++ b/progs/demos/tunnel2.c
@@ -12,14 +12,14 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
-#include <time.h>
+#include <string.h>
 
 #ifdef WIN32
 #include <windows.h>
 #endif
 
 #include <GL/glut.h>
-#include "readtex.c"
+#include "readtex.h"
 #include "tunneldat.h"
 
 #ifdef FX
@@ -51,11 +51,11 @@
 
 static float obs[3] = { 1000.0, 0.0, 2.0 };
 static float dir[3];
-static float v = 0.5;
+static float v = 30.;
 static float alpha = 90.0;
 static float beta = 90.0;
 
-static int fog = 0;
+static int fog = 1;
 static int bfcull = 1;
 static int usetex = 1;
 static int cstrip = 0;
@@ -97,7 +97,7 @@
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
 
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
-		   GL_LINEAR_MIPMAP_NEAREST);
+		   GL_LINEAR_MIPMAP_LINEAR);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
 
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
@@ -158,6 +158,13 @@
 static void
 calcposobs(void)
 {
+   static double t0 = -1.;
+   double dt, t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
+   if (t0 < 0.0)
+      t0 = t;
+   dt = t - t0;
+   t0 = t;
+
    dir[0] = sin(alpha * M_PI / 180.0);
    dir[1] = cos(alpha * M_PI / 180.0) * sin(beta * M_PI / 180.0);
    dir[2] = cos(beta * M_PI / 180.0);
@@ -169,9 +176,9 @@
    if (dir[2] < 1.0e-5 && dir[2] > -1.0e-5)
       dir[2] = 0;
 
-   obs[0] += v * dir[0];
-   obs[1] += v * dir[1];
-   obs[2] += v * dir[2];
+   obs[0] += v * dir[0] * dt;
+   obs[1] += v * dir[1] * dt;
+   obs[2] += v * dir[2] * dt;
 }
 
 static void
@@ -202,10 +209,10 @@
       break;
 
    case 'a':
-      v += 0.01;
+      v += 5.;
       break;
    case 'z':
-      v -= 0.01;
+      v -= 5.;
       break;
 
 #ifdef XMESA