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

Modified Files:
	data.c feature.c socket.c 
Log Message:
Next iteration on getting generic_32 version b working.
Known issue: not getting packets from server with code for version a or
earlier.

Index: feature.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/feature.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- feature.c	12 Jul 2008 12:09:37 -0000	1.23
+++ feature.c	13 Jul 2008 03:15:48 -0000	1.24
@@ -76,7 +76,7 @@
     {"SELF_8FLAGS2", &F_self_8flags2, 'S', 0, 0, 0},
     {"19FLAGS", &F_self_19flags, 'S', 1, 0, 0},
     {"SHIP_CAP", &F_ship_cap, 'S', 1, 0, 0},
-    {"SP_GENERIC_32", &F_sp_generic_32, 'S', 1, "\002", 0},
+    {"SP_GENERIC_32", &F_sp_generic_32, 'S', 1, &A_sp_generic_32, 0},
     {"FULL_DIRECTION_RESOLUTION", &F_full_direction_resolution, 'S', 1, 0, 0},
     {"FULL_WEAPON_RESOLUTION", &F_full_weapon_resolution, 'S', 1, 0, 0},
     {"CHECK_PLANETS", &F_check_planets, 'S', 1, 0, 0},
@@ -133,7 +133,10 @@
             else if (!strcmp(f->name, "FULL_WEAPON_RESOLUTION"))
                 value = useFullWeapInfo;
             else if (!strcmp(f->name, "SP_GENERIC_32"))
+            {
                 value = useGeneric32;
+                arg1 = GENERIC_32_VERSION;
+            }
             sendFeature (f->name, f->feature_type, value, arg1, arg2);
 #ifdef DEBUG
             LineToConsole ("(C->S) %s (%c): %d (%d/%d)\n", f->name,
@@ -214,7 +217,7 @@
     }
     if (strcmpi (packet->name, "SP_GENERIC_32") == 0)
     {
-        generic_32_version = packet->arg1;
+        A_sp_generic_32 = packet->arg1;
         return;
     }
     if (features[i].name == 0)

Index: socket.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/socket.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- socket.c	12 Jul 2008 12:09:37 -0000	1.49
+++ socket.c	13 Jul 2008 03:15:48 -0000	1.50
@@ -2810,28 +2810,12 @@
 void
 handleGeneric32 (struct generic_32_spacket *packet)
 {
-
-    if (sizeof(struct generic_32_spacket) != GENERIC_32_LENGTH)
-    {
-#ifdef DEBUG
-    	LineToConsole("Generic32 packet length of %d, ignoring packet.\n", sizeof(struct generic_32_spacket));
-#endif
-    	return;
-    }
     return;
 }
 
 void
 handleGeneric32_a (struct generic_32_spacket_a *packet)
 {
-
-    if (sizeof(struct generic_32_spacket) != GENERIC_32_LENGTH)
-    {
-#ifdef DEBUG
-    	LineToConsole("Generic32 packet length of %d, ignoring packet.\n", sizeof(struct generic_32_spacket));
-#endif
-    	return;
-    }
     me->p_repair_time = packet->repair_time;
     me->pl_orbit = packet->pl_orbit;
     return;
@@ -2840,14 +2824,6 @@
 void
 handleGeneric32_b (struct generic_32_spacket_b *packet)
 {
-
-    if (sizeof(struct generic_32_spacket) != GENERIC_32_LENGTH)
-    {
-#ifdef DEBUG
-    	LineToConsole("Generic32 packet length of %d, ignoring packet.\n", sizeof(struct generic_32_spacket));
-#endif
-    	return;
-    }
     me->p_repair_time = ntohs (packet->repair_time);
     me->pl_orbit = packet->pl_orbit;
     context->gameup = ntohs(packet->gameup);
@@ -3006,11 +2982,11 @@
         handleMotdPic ((struct motd_pic_spacket *) sbuf);
     else
     {
-    	if (generic_32_version == 'a')
-    	    handleGeneric32_a ((struct generic_32_spacket_a *) sbuf);
-    	else if (generic_32_version == 'b')
-    	    handleGeneric32_b ((struct generic_32_spacket_b *) sbuf);
-    	else
+    	if (sbuf[1] == 'a')
+            handleGeneric32_a ((struct generic_32_spacket_a *) sbuf);
+        else if (sbuf[1] == 'b')
+            handleGeneric32_b ((struct generic_32_spacket_b *) sbuf);
+        else
             handleGeneric32 ((struct generic_32_spacket *) sbuf);
     }
     return;
@@ -5113,12 +5089,12 @@
 	  LineToConsole("\nS->C SP_GENERIC_32\t");
 	  if (log_packets > 1)
 	  {
-	    if (generic_32_version == 'a')
+	    if (packet[1] == 'a')
 	      LineToConsole("  version=%d, repair_time=%d, pl_orbit=%d,",
 		     ((struct generic_32_spacket_a *) packet)->version,
 		     ((struct generic_32_spacket_a *) packet)->repair_time,
 		     ((struct generic_32_spacket_a *) packet)->pl_orbit);
-	    else if (generic_32_version == 'b')
+	    else if (packet[1] == 'b')
 	      LineToConsole("  version=%d, repair_time=%d, pl_orbit=%d, gameup=%d, tourn_teams=%d, tourn_age=%d, tourn_age_units=%d, tourn_remain=%d, tourn_remain_units=%d, starbase_remain=%d, team_remain=%d,",
 		     ((struct generic_32_spacket_b *) packet)->version,
 		     ntohs(((struct generic_32_spacket_b *) packet)->repair_time),

Index: data.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/data.c,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -d -r1.113 -r1.114
--- data.c	12 Jul 2008 12:09:37 -0000	1.113
+++ data.c	13 Jul 2008 03:15:48 -0000	1.114
@@ -762,6 +762,7 @@
 int F_ship_cap = 0;
 int F_show_all_tractors = 1;
 int F_sp_generic_32 = 0;
+char A_sp_generic_32 = 0;    /* last sp_generic_32 version sent by server */
 int F_full_direction_resolution = 0;
 int F_full_weapon_resolution = 0;
 int F_check_planets = 0;
@@ -928,5 +929,4 @@
 int fullBitmapRotation = 1;     /* draw old bitmap sets to all angles */
 int hideConsole = 0;            /* show console window or not */
 
-int generic_32_version = 0;     /* what version of generic_32 does server send us */
 struct context *context;