Update of /cvsroot/netrek/client/netrekxp/include
In directory sc8-pr-cvs16:/tmp/cvs-serv30344/include

Modified Files:
        data.h defs.h packets.h proto.h struct.h 
Log Message:
Add new #define PARADISE for trying to add support for paradise
servers.  There are some issues that make bronco and paradise not
compatable, namely overlapping definitions of packet types (see
CP_PLANET or GENERIC_32).  Also paradise uses a different set
of global constants (GWIDTH and MAXPLAYER come to mind as
the biggest changes).  So for now, for testing with paradise, I will
simply flip the PARADISE define in config.h.
Added in the paradise packet types and packet handlers.  The
actual functionality is commented out, it needs a lot more work.
Client is able to connect to paradise server with no broken packet
types, so that's a good start.
Don't save INL servers in UDP metacache.
Rename xtrekrc to netrekrc.txt in the help window.

Index: defs.h
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/include/defs.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- defs.h      28 Apr 2007 12:09:50 -0000      1.24
+++ defs.h      16 May 2007 00:05:11 -0000      1.25
@@ -8,6 +8,32 @@
 
 #include "copyright.h"
 
+#ifdef PARADISE
+/* defs for updatePlayer [BDyess] */
+#define NO_UPDATE      0
+#define SMALL_UPDATE   1       /* update non-blk_bozo players */
+#define LARGE_UPDATE   2       /* update blk_bozo players     */
+#define ALL_UPDATE     (SMALL_UPDATE|LARGE_UPDATE)     /* update both */
+
+/* defs for terrain */
+#define TERRAIN_STARTED 1
+#define TERRAIN_DONE    2
+
+/* defs for timer [BDyess] */
+#define T_NONE         0       /* no timer */
+#define T_DAY          1       /* time of day */
+#define T_SERVER       2       /* time on server */
+#define T_SHIP         3       /* time in ship */
+#define T_USER         4       /* user reset timer */
+#define T_TOTAL        5       /* number of T_ defs */
+#define TIMESTRLEN     10      /* used in db_timer(), timeString() */
+
+/* defs for mapmode */
+#define GMAP_NEVER     0
+#define GMAP_FREQUENT  1
+#define GMAP_INFREQUENT        2
+#endif /* PARADISE */
+
 /* Error handling */
 #define RETURNBASE 10
 
@@ -18,13 +44,19 @@
 #define MAX_MACRO       500
 #endif
 
-#ifndef MAXPLAYER
-#define MAXPLAYER 36            /* Defined in config.h as well */
+#ifdef PARADISE
+#define MAXPLAYER 257
+#else
+#define MAXPLAYER 36
 #endif
 
 #define TESTERS 4               /* Priveledged slots for
                                  * robots and game 'testers' */
+#ifdef PARADISE
+#define MAXPLANETS 60
+#else
 #define MAXPLANETS 40
+#endif
 #define MAXTORP 8
 #define MAXPLASMA 1
 #define PKEY 128
@@ -44,9 +76,12 @@
 #define DESIRED_TIC_LEN 10      /* for desired heading */
 
 /* These are configuration definitions */
-
+#ifdef PARADISE
+#define GWIDTH 200000
+#else
 #define GWIDTH 100000           /* galaxy is 100000 spaces
                                  * on a side */
+#endif
 #define SCALE 40                /* Window will be one pixel for
                                    these # spaces */
 #define WARP1 20                /* warp one will move 20

Index: data.h
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/include/data.h,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -d -r1.84 -r1.85
--- data.h      14 May 2007 02:56:38 -0000      1.84
+++ data.h      16 May 2007 00:05:11 -0000      1.85
@@ -37,6 +37,9 @@
 extern struct torp *torps;
 extern struct plasmatorp *plasmatorps;
 extern struct status *status;
+#ifdef PARADISE
+extern struct status2 *status2;
+#endif
 extern struct ship *myship;
 extern struct stats *mystats;
 extern struct planet *planets;
@@ -95,6 +98,10 @@
 extern int warncount;
 extern int warntimer;
 extern int infomapped;
+extern void *infothing;        /* infow contents [BDyess] */
+extern int infoupdate;         /* update flag for infow [BDyess] */
+extern int infotype;           /* type of info thing [BDyess] */
+extern int scanmapped;         /* ATM - scanner stuff */
 extern int mustexit;
 extern int messtime;
 extern int keepPeace;

Index: packets.h
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/include/packets.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- packets.h   25 Apr 2007 06:50:41 -0000      1.7
+++ packets.h   16 May 2007 00:05:12 -0000      1.8
@@ -68,9 +68,10 @@
 #define SP_RESERVED    25      /* for future use */
 #define SP_PLANET_LOC  26      /* planet name, x, y */
 
-/* NOTE: not implemented */
+#ifdef PARADISE
 #define SP_SCAN         27      /* ATM: results of player
                                  * scan */
+#endif
 
 #define SP_UDP_REPLY    28      /* notify client of UDP
                                  * status */
@@ -83,8 +84,19 @@
                                  * verification */
 #endif
 
+#ifdef PARADISE
+#define SP_MOTD_PIC     32     /* motd bitmap pictures */
+#define SP_STATS2      33      /* new stats packet */
+#define SP_STATUS2     34      /* new status packet */
+#define SP_PLANET2     35      /* new planet packet */
+#define SP_NEW_MOTD     36     /* New MOTD info notification uses */
+#define SP_THINGY      37      /* thingy location */
+#define SP_THINGY_INFO 38      /* thingy status */
+#else
 #define SP_GENERIC_32  32      /* 32 byte generic, see struct */
 #define SP_FLAGS_ALL   33      /* abbreviated flags for all players */
+#endif
+
 #define SP_SHIP_CAP    39      /* Handles server ship mods */
 
 #ifdef SHORT_PACKETS
@@ -110,6 +122,18 @@
 #define SP_S_8_TORP     49      /* optimized SP_S_TORP */
 #define SP_S_PLANET     50      /* see SP_PLANET */
 
+#ifdef PARADISE
+#define SP_GPARAM      51      /* game params packet */
+/* the following is a family of packets with the same type, but a
+   discriminating subtype */
+#define SP_PARADISE_EXT1       52
+#define SP_PE1_MISSING_BITMAP  0
+#define SP_PE1_NUM_MISSILES    1
+/* end of packet 52 subtypes */
+#define SP_TERRAIN2    53      /* Terrain packets */
+#define SP_TERRAIN_INFO2 54    /* Terrain info */
+#endif
+
 /* S_P2 */
 #define SP_S_SEQUENCE   56      /* SP_SEQUENCE for
                                  * compressed packets */
@@ -1095,3 +1119,180 @@
 };
 
 #endif
+
+#ifdef PARADISE
+/* Shapes of thingys.  It would be best to add to the end of this list and
+   try to coordinate your additions with other hackers. */
+enum thingy_types {
+    SHP_BLANK, SHP_MISSILE, SHP_BOOM, SHP_TORP, SHP_PLASMA, SHP_MINE,
+    SHP_PBOOM, SHP_FIGHTER, SHP_WARP_BEACON, SHP_FBOOM, SHP_DBOOM
+};
+
+struct thingy_info_spacket {
+    char    type;              /* SP_THINGY_INFO */
+    char    war;
+    unsigned short   shape;            /* a thingy_types */
+    unsigned short   tnum;
+    unsigned short   owner;
+};
+
+struct thingy_spacket {
+    char    type;              /* SP_THINGY */
+    char    dir;
+    unsigned short   tnum;
+    LONG    x, y;
+};
+
+/* terrain info for Paradise terrain */
+/* 5/16/95 rpg */
+
+struct terrain_info_packet2 {
+    char   type;               /* SP_TERRAIN_INFO2 */
+    char   pad;
+    unsigned short  pad2;
+    unsigned short  xdim;
+    unsigned short  ydim;
+};
+
+struct terrain_packet2 {
+    char   type;               /* SP_TERRAIN2 */
+    char   sequence;
+    char   total_pkts;
+    char   length;
+    char   terrain_type[128];  /* Ugh... this needs to be fixed 5/16/95 rpg */
+ /* unsigned short  terrain_alt1[128]; */
+ /* unsigned short  terrain_alt2[128]; */
+};
+
+struct scan_spacket {          /* ATM */
+    char    type;              /* SP_SCAN */
+    char    pnum;
+    char    success;
+    char    pad1;
+    LONG    p_fuel;
+    LONG    p_armies;
+    LONG    p_shield;
+    LONG    p_damage;
+    LONG    p_etemp;
+    LONG    p_wtemp;
+};
+
+struct motd_pic_spacket {
+    char    type;              /* SP_MOTD_PIC */
+    char    pad1;
+    unsigned short   x, y, page;
+    unsigned short   width, height;
+    char    bits[1016];
+};
+
+ /* This is used to send paradise style stats */
+struct stats_spacket2 {
+    char    type;              /* SP_STATS2 */
+    char    pnum;
+    char    pad1;
+    char    pad2;
+
+    LONG   genocides;          /* number of genocides participated in */
+    LONG   maxkills;           /* max kills ever * 100  */
+    LONG   di;                 /* destruction inflicted for all time * 100 */
+    LONG   kills;              /* Kills in tournament play */
+    LONG   losses;             /* Losses in tournament play */
+    LONG   armsbomb;           /* Tournament armies bombed */
+    LONG   resbomb;            /* resources bombed off */
+    LONG   dooshes;            /* armies killed while being carried */
+    LONG   planets;            /* Tournament planets conquered */
+    LONG   tticks;             /* Tournament ticks */
+    /* SB/WB/JS stats are entirely separate */
+    LONG   sbkills;            /* Kills as starbase */
+    LONG   sblosses;           /* Losses as starbase */
+    LONG   sbticks;            /* Time as starbase */
+    LONG   sbmaxkills;         /* Max kills as starbase * 100 */
+    LONG   wbkills;            /* Kills as warbase */
+    LONG   wblosses;           /* Losses as warbase */
+    LONG   wbticks;            /* Time as warbase */
+    LONG   wbmaxkills;         /* Max kills as warbase * 100 */
+    LONG   jsplanets;          /* planets assisted with in JS */
+    LONG   jsticks;            /* ticks played as a JS */
+    LONG   rank;               /* Ranking of the player */
+    LONG   royal;              /* royaly, specialty, rank */
+};
+
+ /* status info for paradise stats */
+struct status_spacket2 {
+    char    type;              /* SP_STATUS2 */
+    char    tourn;
+    char    pad1;
+    char    pad2;
+    unsigned int  dooshes;             /* total number of armies dooshed */
+    unsigned int  armsbomb;            /* all t-mode armies bombed */
+    unsigned int  resbomb;             /* resources bombed */
+    unsigned int  planets;             /* all t-mode planets taken */
+    unsigned int  kills;               /* all t-mode kills made */
+    unsigned int  losses;              /* all t-mode losses */
+    unsigned int  sbkills;             /* total kills in SB's */
+    unsigned int  sblosses;            /* total losses in Sb's */
+    unsigned int  sbtime;              /* total time in SB's */
+    unsigned int  wbkills;             /* kills in warbases */
+    unsigned int  wblosses;            /* losses in warbases */
+    unsigned int  wbtime;              /* total time played in wb's */
+    unsigned int  jsplanets;           /* total planets taken by jump ships */
+    unsigned int  jstime;              /* total time in a jump ship */
+    unsigned int  time;                /* t mode time in this game */
+    unsigned int  timeprod;            /* t-mode ship ticks--sort of like */
+};
+
+
+ /* planet info for a paradise planet */
+struct planet_spacket2 {
+    char    type;              /* SP_PLANET2 */
+    char    pnum;              /* planet number */
+    char    owner;             /* owner of the planet */
+    char    info;              /* who has touched planet */
+    LONG   flags;              /* planet's flags */
+    LONG   timestamp;          /* timestamp for info on planet */
+    LONG   armies;             /* armies on the planet */
+};
+
+struct obvious_packet {
+    char    type;              /* SP_NEW_MOTD */
+    char    pad1;              /* CP_ASK_MOTD */
+};
+
+struct paradiseext1_spacket {
+    char   type;
+    char   subtype;
+    short   pad;
+};
+
+struct pe1_missing_bitmap_spacket {
+    char    type;
+    char   subtype;
+
+    short   page;
+
+    short   x, y;
+    short   width, height;
+};
+
+struct pe1_num_missiles_spacket {
+    char    type;              /* SP_PARADISE_EXT1 */
+    char   subtype;            /* SP_PE1_NUM_MISSILES */
+
+    short   num;               /* number of missiles */
+};
+
+struct scan_cpacket {          /* ATM */
+    char    type;              /* CP_SCAN */
+    char    pnum;
+    char    pad1;
+    char    pad2;
+};
+
+struct gameparam_spacket {
+    char   type;
+    char   subtype;            /* this packet is not real */
+    /* generic game parameter packet */
+    int pad;
+};
+
+#endif

Index: struct.h
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/include/struct.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- struct.h    10 Apr 2007 00:44:02 -0000      1.18
+++ struct.h    16 May 2007 00:05:13 -0000      1.19
@@ -44,6 +44,35 @@
     unsigned LONG timeprod;
 };
 
+#ifdef PARADISE
+struct status2 {               /* paradise status struct */
+    int     active;            /* for interfacing with people who */
+    unsigned int wait, count;  /* want to get into the game */
+    unsigned int number, request, answer;
+    unsigned char tourn;       /* Tournament mode? */
+    unsigned long dooshes;     /* total number of armies dooshed */
+    unsigned long armsbomb;    /* all t-mode armies bombed */
+    unsigned long resbomb;     /* resources bombed */
+    unsigned long planets;     /* all t-mode planets taken */
+    unsigned long kills;       /* all t-mode kills made */
+    unsigned long losses;      /* all t-mode losses */
+    unsigned long genocides;   /* number of genocides */
+    unsigned long sbkills;     /* total kills in SB's */
+    unsigned long sblosses;    /* total losses in Sb's */
+    unsigned long sbtime;      /* total time in SB's */
+    unsigned long wbkills;     /* kills in warbases */
+    unsigned long wblosses;    /* losses in warbases */
+    unsigned long wbtime;      /* total time played in wb's */
+    unsigned long jsplanets;   /* total planets taken by jump ships */
+    unsigned long jstime;      /* total time in a jump ship */
+    unsigned long time;                /* t-mode time */
+    unsigned long timeprod;    /* t-mode ship ticks--sort of like */
+    /* manhours in t-mode */
+    int     gameup;            /* is game up */
+    unsigned long clock;       /* clock for planet info timestamp */
+};
+#endif
+
 enum dist_type
 {
     /* help me do series */
@@ -214,6 +243,37 @@
     int st_rank;                /* Ranking of the player */
 };
 
+#ifdef PARADISE
+struct stats2 {                        /* paradise stats */
+    int     st_genocides;      /* number of genocides participated in */
+    float   st_tmaxkills;      /* max kills ever */
+    float   st_di;             /* total destruction inflicted for all time */
+    int     st_tkills;         /* Kills in tournament play */
+    int     st_tlosses;                /* Losses in tournament play */
+    int     st_tarmsbomb;      /* Tournament armies bombed */
+    int     st_tresbomb;       /* resources bombed off */
+    int     st_tdooshes;       /* armies killed while being carried */
+    int     st_tplanets;       /* Tournament planets conquered */
+    int     st_tticks;         /* Tournament ticks */
+    /* SB/WB/JS stats are entirely separate */
+    int     st_sbkills;                /* Kills as starbase */
+    int     st_sblosses;       /* Losses as starbase */
+    int     st_sbticks;                /* Time as starbase */
+    float   st_sbmaxkills;     /* Max kills as starbase */
+    int     st_wbkills;                /* Kills as warbase */
+    int     st_wblosses;       /* Losses as warbase */
+    int     st_wbticks;                /* Time as warbase */
+    float   st_wbmaxkills;     /* Max kills as warbase */
+    int     st_jsplanets;      /* planets assisted with in JS */
+    int     st_jsticks;                /* ticks played as a JS */
+    long    st_lastlogin;      /* Last time this player was played */
+    int     st_flags;          /* Misc option flags */
+    unsigned char st_keymap[256];      /* keymap for this player */
+    int     st_rank;           /* Ranking of the player */
+    int     st_royal;          /* royaly, specialty, rank */
+};
+#endif
+
 #define ST_MAPMODE      1
 #define ST_NAMEMODE     2
 #define ST_SHOWSHIELDS  4
@@ -277,6 +337,9 @@
     short p_whydead;            /* Tells you why you died */
     short p_whodead;            /* Tells you who killed you */
     struct stats p_stats;       /* player statistics */
+#ifdef PARADISE
+    struct stats2 p_stats2;     /* Paradise stats */
+#endif
     short p_genoplanets;        /* planets taken since last
                                  * genocide */
     short p_genoarmsbomb;       /* armies bombed since last

Index: proto.h
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/include/proto.h,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -d -r1.54 -r1.55
--- proto.h     28 Apr 2007 12:09:50 -0000      1.54
+++ proto.h     16 May 2007 00:05:12 -0000      1.55
@@ -1142,10 +1142,19 @@
 void handleFlagsAll (struct flags_all_spacket *packet);
 struct rsa_key_spacket;
 void handleRSAKey (struct rsa_key_spacket *packet);
-#ifdef INCLUDE_SCAN
-void
-handleScan (packet)
-     struct scan_spacket *packet;
+#ifdef PARADISE
+void handleScan (struct scan_spacket *packet);
+void handleMotdPic (struct motd_pic_spacket * packet);
+void handleStats2 (struct stats_spacket2 * packet);
+void handleStatus2 (struct status_spacket2 * packet);
+void handlePlanet2 (struct planet_spacket2 * packet);
+void handleTerrain2 (struct terrain_packet2 * pkt);
+void handleTerrainInfo2 (struct terrain_info_packet2 *pkt);
+void handleTempPack (struct obvious_packet * packet);
+void handleThingy (struct thingy_spacket * packet);
+void handleThingyInfo (struct thingy_info_spacket * packet);
+void handleExtension1 (struct paradiseext1_spacket * packet);
+void handleGameparams (struct gameparam_spacket * packet);
 #endif
 void sendUdpReq (int req);
 struct udp_reply_spacket;


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

Reply via email to