Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv23423/src

Modified Files:
	local.c short.c 
Log Message:
Warpstreaks fixed to work with variable update rates.
Changes notes that FPS changes are now fully integrated into client
Typo fix on base orbit warn message.

Index: short.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/short.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- short.c	25 Feb 2007 00:19:00 -0000	1.14
+++ short.c	25 Feb 2007 08:01:34 -0000	1.15
@@ -162,7 +162,7 @@
 /* orbit.c */
 /* orbit() */
     "Helmsman: Captain, the maximum safe speed for docking or orbiting is warp 2!",     /* 79 */
-    "Central Command regulations prohibits you from orbiting foreign planets",  /* 80 */
+    "Central Command regulations prohibit you from orbiting foreign planets",  /* 80 */
     "Helmsman:  Sensors read no valid targets in range to dock or orbit sir!",  /* 81 */
 /* redraw.c */
     "No more room on board for armies", /* 82 */

Index: local.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/local.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- local.c	25 Feb 2007 00:19:00 -0000	1.58
+++ local.c	25 Feb 2007 08:01:33 -0000	1.59
@@ -36,6 +36,9 @@
 static int clearline[4][MAXPLAYER + 2 * MAXPLAYER];
 #endif
 static int planet_frame = 0;
+static int star_updates = 0;
+static int last_speed = 0;
+static int streaks_on = 0;
 #ifdef SOUND
 static int sound_torps = 0;
 static int sound_other_torps = 0;
@@ -120,7 +123,16 @@
     int sector_offx = me->p_x - sectorx * (fullview);
     int sector_offy = me->p_y - sectory * (fullview);
     int l = 0, r = 0, t = 0, b = 0;
-
+    
+    if (warpStreaks && streaks_on)
+    /* Streaks_on is toggled on by redrawStarSector with a change in warp state,
+       and toggled off after certain conditions are met.  Only need to track
+       count of DrawStars() calls and ship's previous speed during this time. */
+    {
+    	star_updates++;
+        last_speed = me->p_speed;
+    }
+        
     if (sector_offx < 0)
     {  /* goddamn rounding towards 0 */
         sectorx--;
@@ -197,7 +209,6 @@
     register int ybase = sectory * fullview;
     register struct _star *s;
     static unsigned int warpflag = 0;    /* assume starting out not in warp */
-    static int streaksOn = 0, lastspeed = 0, lastsubspeed = 0, updates = 0;
     static int streaklength = 1;
     static int mydir = -1;
     struct _star *star_sector = stars[sectorx][sectory];
@@ -206,57 +217,52 @@
     {
         if (warpflag != (me->p_flags & PFTWARP))
         {   /* change in warp state */
-            streaksOn = 1;
+            streaks_on = 1;
             warpflag = (me->p_flags & PFTWARP);
         }
 
         if (warpflag)
             mydir = me->p_dir;
 
-        if (streaksOn)
+        if (streaks_on)
         {
-            if (warpflag && (me->p_speed < lastspeed ||
-                (me->p_speed == lastspeed && me->p_subspeed <= lastsubspeed)))
+            if (warpflag && me->p_speed <= last_speed)
             {
-                /* finished accelerating */
-                updates++;
-                if (updates > 5)
+                /* finished accelerating, normalize # of frames to keep drawing streaks */
+                if ((star_updates * 10 / server_ups)> 5)
                 {
-                    lastspeed = me->p_speed;
-                    lastsubspeed = me->p_subspeed;
-                    updates = 0;
-                    streaksOn = 0;
+                    star_updates = 0;
+                    streaks_on = 0;
                     redrawStarSector (sectorx, sectory);
                     return;
                 }
             }
-            else if (streaklength == 1 || (!warpflag && ((me->p_speed > lastspeed) ||
-                    (me->p_speed == lastspeed && me->p_subspeed >= lastsubspeed))))
+            else if (streaklength == 1 || (!warpflag && (me->p_speed >= last_speed)))
             {
-                /* finished decelerating */
-                updates++;
-                if (updates > 5)
+                /* finished decelerating, normalize # of frames to keep drawing streaks */
+                if ((star_updates * 10 / server_ups) > 5)
                 {
-                    lastspeed = me->p_speed;
-                    lastsubspeed = me->p_subspeed;
-                    updates = 0;
-                    streaksOn = 0;
+                    star_updates = 0;
+                    streaks_on = 0;
                     streaklength = 1;
                     redrawStarSector (sectorx, sectory);
                     return;
                 }
             }
             else
-                updates = 0;
-            lastspeed = me->p_speed;
-            lastsubspeed = me->p_subspeed;
+                star_updates = 0;
+
             /* draw the streaks */
             if (warpflag)
-                streaklength += 3;
+                streaklength += 30 * 10 / server_ups;
             else
-                streaklength--;
-            dxx = (int) (Cos[mydir] * streaklength);
-            dyy = (int) (Sin[mydir] * streaklength);
+            {
+                streaklength -= 10 * 10 / server_ups;
+                if (streaklength < 1)
+                    streaklength = 1;
+            }
+            dxx = (int) (Cos[mydir] * streaklength / 10);
+            dyy = (int) (Sin[mydir] * streaklength / 10);
             for (i = 0, s = star_sector; i < 16; i++, s++)
             {
                 dx = (s->s_x + xbase) - (me->p_x - (me->p_x % SCALE));