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

Modified Files:
        dashboard.c local.c warning.c 
Log Message:
Fixed bug with lock icon and orbiting
Fixed short packet phaser stats for phaser hits > 1024 damage (only noticeable 
with ATTs,
server sends phaser hit packet as long packet instead)

Index: dashboard.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/dashboard.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- dashboard.c 2 Jun 2006 21:06:55 -0000       1.10
+++ dashboard.c 3 Jun 2006 21:52:11 -0000       1.11
@@ -860,6 +860,7 @@
     int hulltime = 0;
     int shieldneeded, hullneeded;
     float shieldrate = 0.0, hullrate = 0.0;
+    short planet;
     struct player *plr;
 
     if ((me->p_flags & (PFPLOCK | PFOBSERV)) == (PFPLOCK | PFOBSERV))
@@ -882,9 +883,9 @@
             /* And since observers don't get war flags, assume that if ship is 
orbiting a repair
               planet in repair mode, the planet is friendly - best we can do 
until server
               sends us more info */
-            me->p_planet = get_closest_planet(me->p_x, me->p_y);
-            if ((planets[me->p_planet].pl_flags & PLREPAIR)
-            &&(obs || !(planets[me->p_planet].pl_owner & (plr->p_swar | 
plr->p_hostile))))
+            planet = get_closest_planet(me->p_x, me->p_y);
+            if ((planets[planet].pl_flags & PLREPAIR)
+            &&(obs || !(planets[planet].pl_owner & (plr->p_swar | 
plr->p_hostile))))
                 me->p_subshield += me->p_ship.s_repair * 4;
        }
        if (me->p_flags & PFDOCK)
@@ -904,9 +905,9 @@
            /* And since observers don't get war flags, assume that if ship is 
orbiting a repair
               planet in repair mode, the planet is friendly - best we can do 
until server
               sends us more info */
-            me->p_planet = get_closest_planet(me->p_x, me->p_y);
-           if ((planets[me->p_planet].pl_flags & PLREPAIR)
-           && (obs || !(planets[me->p_planet].pl_owner & (plr->p_swar | 
plr->p_hostile))))
+            planet = get_closest_planet(me->p_x, me->p_y);
+           if ((planets[planet].pl_flags & PLREPAIR)
+           && (obs || !(planets[planet].pl_owner & (plr->p_swar | 
plr->p_hostile))))
                me->p_subdamage += me->p_ship.s_repair * 2;
        }
        if (me->p_flags & PFDOCK)

Index: local.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/local.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- local.c     3 Jun 2006 07:03:42 -0000       1.38
+++ local.c     3 Jun 2006 21:52:11 -0000       1.39
@@ -528,7 +528,7 @@
         }
         
         if (showArmy && (me->p_flags & PFORBIT)
-        && (me->p_planet = get_closest_planet(me->p_x, me->p_y)) == l->pl_no)
+        && (get_closest_planet(me->p_x, me->p_y) == l->pl_no))
         {
             char armbuf[4];
             int armbuflen;

Index: warning.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/warning.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- warning.c   20 May 2006 03:55:23 -0000      1.7
+++ warning.c   3 Jun 2006 21:52:11 -0000       1.8
@@ -27,7 +27,7 @@
 void
 warning (char *text)
 {
-    int doPhaser, doRefit, doDeclare;
+    int doPhaser, doRefit, doDeclare, damage = 0;
     time_t curtime;
     struct tm *tm;
     char newtext[128];
@@ -50,16 +50,30 @@
        delay = time (0) + DECLARETIME;
        
 #ifdef PHASER_STATS
-    if (!recv_short)   /* Gotta parse phaser info for long packets here */
+    if (doPhaser)   /* Parse out damage */
     {
-        if (strncmp(text, "You destroyed the plasma", 24) == 0)       /* 
Plasma hit */
+        char *d;
+        d = &text[warncount];
+        /* find the last number in the string, should be damage */
+        while (!isdigit(*d) && d > text) 
+            d--;
+        while (d > text && isdigit(*d))
+            d--;
+        if (d > text)
+            damage = atoi(d);
+    }
+    /* Gotta parse phaser info for long packets here, or for phaser hits with
+       damage > 1024, which are sent as a long packet by server */
+    if (!recv_short || damage > 1024)                   
+    {
+        if (!recv_short && strncmp(text, "You destroyed the plasma", 24) == 0) 
      /* Plasma hit */
         {
             phaserStatTry++;
             phaserStatHit++;
             /* Record as an average damage hit so as not to skew overall 
average */
             phaserStatDamage += phaserStatDamage / phaserStatTry;
         }
-        if (strncmp(text, "Phaser missed", 13) == 0)        /* Miss */
+        if (!recv_short && strncmp(text, "Phaser missed", 13) == 0)        /* 
Miss */
         {
             phaserStatTry++;
             if (phaserStats)
@@ -77,16 +91,6 @@
         }
         if (doPhaser)     /* Parse out damage and record to average */
         {
-            char *d;
-            register int damage;
-            d = &text[warncount];
-            /* find the last number in the string, should be damage */
-            while (!isdigit(*d) && d > text) 
-                d--;
-            while (d > text && isdigit(*d))
-               d--;
-            if (d > text)
-                damage = atoi(d);
             phaserStatTry++;
             phaserStatHit++;
             phaserStatDamage += damage;
@@ -97,7 +101,7 @@
         sprintf (newtext, "%s [%3d%%] [%2u]", text,
                  phaserStatTry ? (phaserStatHit * 100) / phaserStatTry : 0,
                  phaserStatTry ? phaserStatDamage / phaserStatTry : 0);
-        warncount += 13;
+        warncount += 14;
         W_WriteText (warnw, 5, 5, textColor, newtext, warncount,
                      W_RegularFont);
     }


_______________________________________________
netrek-cvs mailing list
[email protected]
http://mailman.us.netrek.org/mailman/listinfo/netrek-cvs

Reply via email to