Mercurial > ~darius > hgwebdir.cgi > paradise_client
diff gppackets.h @ 3:5a977ccbc7a9 default tip
Empty changelog
author | darius |
---|---|
date | Sat, 06 Dec 1997 05:41:29 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gppackets.h Sat Dec 06 05:41:29 1997 +0000 @@ -0,0 +1,164 @@ +/* $Id: gppackets.h,v 1.1.1.1 1997/12/06 05:41:29 darius Exp $ */ + +#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. + */ + INT32 ext1; /* maybe more flags? */ + 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 */ + char letter; /* team letter 'F' */ + + char shortname[3]; /* non-null-terminated 3-letter abbrev 'FED' */ + CARD8 pad; + /* 8 bytes */ + char 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 */ + + char 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 */ + + char 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 */ + + char 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