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

Modified Files:
	data.c defaults.c feature.c planetlist.c playback.c socket.c 
Log Message:
Added support for new server feature packet FULL_DIRECTION_RESOLUTION.
Added partial support for support for new server feature packet SP_GENERIC_32.
Added new netrekrc option useFullShipInfo, to determine whether user wants to
use the FULL_DIRECTION_RESOLUTION feature packet (all other feature packets
are hard coded in as to on/off).

Index: planetlist.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/planetlist.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- planetlist.c	10 Dec 2006 02:49:14 -0000	1.3
+++ planetlist.c	12 Dec 2006 04:47:08 -0000	1.4
@@ -18,9 +18,6 @@
 #include "data.h"
 #include "proto.h"
 
-/* Local functions */
-void updatePlanetw (void);
-
 static char priorplanets[MAXPLANETS][BUFSIZ];
 
 static char *teamname[9] = {

Index: playback.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/playback.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- playback.c	29 Nov 2006 12:40:22 -0000	1.14
+++ playback.c	12 Dec 2006 04:47:08 -0000	1.15
@@ -506,6 +506,7 @@
     case SP_S_YOU_SS:
     case SP_S_PLAYER:
     case SP_SHIP_CAP:
+    case SP_GENERIC_32:
     case SP_S_TORP:
     case SP_S_TORP_INFO:
     case SP_S_8_TORP:

Index: defaults.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/defaults.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- defaults.c	30 Nov 2006 11:28:56 -0000	1.34
+++ defaults.c	12 Dec 2006 04:47:06 -0000	1.35
@@ -749,6 +749,12 @@
             NULL
         }
     },
+    {"useFullShipInfo", &useFullShipInfo, RC_BOOL,
+        {
+            "Display other ships to 256 directions instead of 16",
+            NULL
+        }
+    },
 #ifdef BEEPLITE
     {"useLite", &useLite, RC_BOOL,
         {
@@ -1491,6 +1497,7 @@
     newQuit = booleanDefault ("newQuit", newQuit);
     newSound = booleanDefault ("newSound", newSound);
     newSoundAngles = booleanDefault ("newSoundAngles", newSoundAngles);
+    useFullShipInfo = booleanDefault ("useFullShipInfo", useFullShipInfo);
     tpDotDist = intDefault ("tpDotDist", tpDotDist);
     omitTeamLetter = booleanDefault ("omitTeamLetter", omitTeamLetter);
     beepOnPrivateMessage = booleanDefault ("beepOnPrivateMessage", beepOnPrivateMessage);

Index: data.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/data.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- data.c	2 Dec 2006 11:24:43 -0000	1.45
+++ data.c	12 Dec 2006 04:47:05 -0000	1.46
@@ -660,6 +660,8 @@
 int F_self_19flags = 1;
 int F_ship_cap = 0;
 int F_show_all_tractors = 1;
+int F_sp_generic_32 = 0;
+int F_full_direction_resolution = 0;
 
 #ifdef RECORDGAME
 int F_many_self = 0;
@@ -786,4 +788,6 @@
 int richText = 0;   /* temporary variable to select rich text message windows */
 int newQuit = 0;    /* new quit clock */
 int newSound = 1;   /* use new SDL sound */
-int newSoundAngles = 1; /* use new SDL sound with angular 3d component */
\ No newline at end of file
+int newSoundAngles = 1; /* use new SDL sound with angular 3d component */
+
+int useFullShipInfo = 1;  /* Prefer SP_PLAYER packets over SP_S_PLAYER packets */
\ No newline at end of file

Index: feature.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/feature.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- feature.c	21 Apr 2006 12:00:06 -0000	1.3
+++ feature.c	12 Dec 2006 04:47:08 -0000	1.4
@@ -76,6 +76,8 @@
     {"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, 0, 0},
+    {"FULL_DIRECTION_RESOLUTION", &F_full_direction_resolution, 'S', 1, 0, 0},
 
 #ifdef WARP_DEAD
     {"DEAD_WARP", &F_dead_warp, 'S', 1, 0, 0},
@@ -107,12 +109,13 @@
         if (strcmpi (f->name, "FEATURE_PACKETS") != 0)
             sendFeature (f->name,
                          f->feature_type,
-                         f->value,
+                         (!strcmp(f->name, "FULL_DIRECTION_RESOLUTION") ? useFullShipInfo : f->value),
                          (char) (f->arg1 ? *f->arg1 : 0),
                          (char) (f->arg2 ? *f->arg2 : 0));
 
 #ifdef DEBUG
-        LineToConsole ("(C->S) %s (%c): %d\n", f->name, f->feature_type, f->value);
+        LineToConsole ("(C->S) %s (%c): %d\n", f->name, f->feature_type,
+        !strcmp(f->name, "FULL_DIRECTION_RESOLUTION") ? useFullShipInfo : f->value);
 #endif
     }
 }

Index: socket.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/socket.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- socket.c	10 Dec 2006 02:49:14 -0000	1.10
+++ socket.c	12 Dec 2006 04:47:08 -0000	1.11
@@ -145,7 +145,7 @@
     {0, dummy},                 /* #31, and dummy won't */
 #endif
 
-    {0, dummy},                 /* 32 */
+    {sizeof (struct generic_32_spacket), handleGeneric32},  /* SP_GENERIC_32 */
     {0, dummy},                 /* 33 */
     {0, dummy},                 /* 34 */
     {0, dummy},                 /* 35 */
@@ -1680,6 +1680,8 @@
     strcpy (packet.login, login);
     packet.type = CP_LOGIN;
     packet.query = query;
+    //packet.pad2 = 0x69; /* Paradise support */
+    //packet.pad3 = 0x43; /* Paradise support */
     sendServerPacket ((struct player_spacket *) &packet);
 }
 
@@ -2360,6 +2362,29 @@
     redrawStats ();
 }
 
+void
+handleGeneric32 (struct generic_32_spacket *packet)
+{
+/*
+    unsigned short stype;
+
+    stype = ntohs (packet->s_type);
+    shipvals[stype].s_torpspeed = ntohs (packet->s_torpspeed);
+    shipvals[stype].s_maxshield = ntohl (packet->s_maxshield);
+    shipvals[stype].s_maxdamage = ntohl (packet->s_maxdamage);
+    shipvals[stype].s_maxegntemp = ntohl (packet->s_maxegntemp);
+    shipvals[stype].s_maxwpntemp = ntohl (packet->s_maxwpntemp);
+    shipvals[stype].s_maxarmies = ntohs (packet->s_maxarmies);
+    shipvals[stype].s_maxfuel = ntohl (packet->s_maxfuel);
+    shipvals[stype].s_maxspeed = ntohl (packet->s_maxspeed);
+    shipvals[stype].s_width = ntohs (packet->s_width);
+    shipvals[stype].s_height = ntohs (packet->s_height);
+    shipvals[stype].s_phaserdamage = ntohs (packet->s_phaserrange);
+    getship (myship, myship->s_type);
+*/
+
+}
+
 #ifdef RSA
 void
 handleRSAKey (struct rsa_key_spacket *packet)