Mercurial > ~darius > hgwebdir.cgi > paradise_server
diff src/gppackets.h @ 4:aa38447a4b21
First entry of Paradise Server 2.9 patch 10 Beta
author | darius |
---|---|
date | Sat, 06 Dec 1997 04:37:03 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/gppackets.h Sat Dec 06 04:37:03 1997 +0000 @@ -0,0 +1,191 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + +#ifndef gppackets_h_ +#define gppackets_h_ + +/* the definitions of {INT,CARD}{8,16,32} are in packets.h */ +#include "packets.h" + +struct gameparam_spacket +{ + INT8 type; + INT8 subtype; /* this packet is not real */ + /* generic game parameter packet */ + INT16 pad; +}; + +struct gp_sizes_spacket +{ + INT8 type; + INT8 subtype; /* =0 */ + + CARD8 nplayers; + CARD8 nteams; /* max of 8 */ + + CARD8 nshiptypes; + CARD8 nranks; /* number of ranks */ + CARD8 nroyal; /* number of royalties */ + CARD8 nphasers; + + CARD8 ntorps; + CARD8 nplasmas; + CARD8 nthingies; /* per-player */ + CARD8 gthingies; /* auxiliary thingies */ + + CARD32 gwidth; /* galaxy width */ + /* 16 bytes */ + CARD32 flags; /* some game parameter flags */ +#define GP_WRAPVERT (1<<0) +#define GP_WRAPHORIZ (1<<1) +#define GP_WRAPALL (GP_WRAPVERT|GP_WRAPHORIZ) + + /* + * The following bytes are room for growth. The size of this packet is + * unimportant because it only gets sent once. hopefully we've got plenty + * of room. + */ + CARD16 nplanets; + INT16 ext1; + + INT32 ext2; + INT32 ext3; + /* 32 bytes */ + + INT32 ext4; + INT32 ext5; + INT32 ext6; + INT32 ext7; + + INT32 ext8; + INT32 ext9; + INT32 ext10; + INT32 ext11; /* 16 ints, 64 bytes */ +}; + +struct gp_team_spacket +{ + INT8 type; + INT8 subtype; /* =1 */ + + CARD8 index; /* team index */ + CARD8 letter; /* team letter 'F' */ + + CARD8 shortname[3]; /* non-null-terminated 3-letter abbrev 'FED' */ + CARD8 pad; + /* 8 bytes */ + CARD8 teamname[56]; /* padding to 64 byte packet */ +}; + +struct gp_teamlogo_spacket +{ + /* + * This packet contains several adjacent rows of a team's logo bitmap Data + * is in raw XBM format (scanline-padded to 8 bits). Maximum bitmap size is + * 99x99, which takes 1287 (99x13) bytes. + */ + INT8 type; + INT8 subtype; /* =2 */ + + INT8 logowidth; /* <= 99 */ + INT8 logoheight; /* <= 99 */ + + INT8 y; /* y coord of the start of this packets info */ + INT8 thisheight; /* the height of this packet's info */ + INT8 teamindex; /* which team's logo this is */ + + CARD8 data[768 - 7]; /* pad packet to 768 bytes. */ +}; + +struct gp_shipshape_spacket +{ + INT8 type; + INT8 subtype; /* =3 */ + + CARD8 shipno; + INT8 race; /* -1 is independent */ + CARD8 nviews; /* typically 16 */ + + CARD8 width, height; + CARD8 pad1; +}; + +struct gp_shipbitmap_spacket +{ + INT8 type; + INT8 subtype; /* =4 */ + + CARD8 shipno; + INT8 race; /* -1 is independent */ + CARD8 thisview; /* 0..nviews-1 */ + + CARD8 bitmapdata[999]; +}; + +struct gp_rank_spacket +{ + INT8 type; + INT8 subtype; /* =5 */ + + INT8 rankn; /* rank number */ + + CARD8 name[-3 + 64 - 20]; /* name of the rank */ + + INT32 genocides; + INT32 milliDI; /* DI*1000 */ + INT32 millibattle; /* battle*1000 */ + INT32 millistrat; /* strategy*1000 */ + INT32 millispec; /* special ships*1000 */ +}; + +struct gp_royal_spacket +{ + INT8 type; + INT8 subtype; /* =6 */ + + CARD8 rankn; /* rank number */ + + CARD8 name[-3 + 64]; /* name of the rank */ +}; + +struct gp_teamplanet_spacket +{ + INT8 type; + INT8 subtype; /* =7 */ + + INT8 teamn; /* 0..7 */ + CARD8 pad1; + + INT32 ext1; /* extensions? */ + + /* + * Bitmaps of the team logo and masks. The bitmap of the planet will be + * constructed with (mask ? logo : planet), applied bitwise. This + * calculation is equivalent to (logo&mask)|(planet&~mask) + */ + + /* bitmap 30x30, X bitmap format (scanline padded to 8 bits) */ + CARD8 tactical[120]; + CARD8 tacticalM[120]; + + /* bitmap 16x16, X bitmap format (scanline padded to 8 bits) */ + CARD8 galactic[32]; + CARD8 galacticM[32]; +}; + +#endif