X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=protocol.h;h=951b6a81f365129f760d1c7f83a70ef079d62a87;hb=419da77f8ab1e6c5dff4479ca5b3fd183944dad3;hp=2ed2326a7efd0eaeda53500d8aa86e596b64dc26;hpb=c4ee1bbcc6b2f917465f07269ad09942bbf40849;p=xonotic%2Fdarkplaces.git diff --git a/protocol.h b/protocol.h index 2ed2326a..951b6a81 100644 --- a/protocol.h +++ b/protocol.h @@ -19,9 +19,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // protocol.h -- communications protocols +#ifndef PROTOCOL_H +#define PROTOCOL_H + #define PROTOCOL_VERSION 15 #define DPPROTOCOL_VERSION1 96 #define DPPROTOCOL_VERSION2 97 +// LordHavoc: I think the 96-99 range was going to run out too soon... so here I jump to 3500 +#define DPPROTOCOL_VERSION3 3500 // model effects #define EF_ROCKET 1 // leave a trail @@ -41,11 +46,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define EF_ADDITIVE 32 #define EF_BLUE 64 #define EF_RED 128 -#define EF_DELTA 8388608 // LordHavoc: entity is delta compressed to save network bandwidth +#define EF_DELTA 8388608 // LordHavoc: (obsolete) entity is delta compressed to save network bandwidth (no longer used) +#define EF_LOWPRECISION 4194304 // LordHavoc: entity is low precision (integer coordinates) to save network bandwidth // effects/model (can be used as model flags or entity effects) -#define EF_REFLECTIVE 256 // LordHavoc: shiny metal objects :) +#define EF_REFLECTIVE 256 // LordHavoc: shiny metal objects :) (not currently supported) #define EF_FULLBRIGHT 512 // LordHavoc: fullbright #define EF_FLAME 1024 // LordHavoc: on fire +#define EF_STARDUST 2048 // LordHavoc: showering sparks #define EF_STEP 0x80000000 // internal client use only - present on MOVETYPE_STEP entities, not QC accessible (too many bits) @@ -205,7 +212,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // LordHavoc: my svc_ range, 50-59 #define svc_cgame 50 // [short] length [bytes] data -#define svc_fog 51 // unfinished and obsolete +#define svc_unusedlh1 51 #define svc_effect 52 // [vector] org [byte] modelindex [byte] startframe [byte] framecount [byte] framerate #define svc_effect2 53 // [vector] org [short] modelindex [short] startframe [byte] framecount [byte] framerate #define svc_sound2 54 // short soundindex instead of byte @@ -255,7 +262,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // PGM 01/21/97 #define TE_BEAM 13 // [entity] entity [vector] start [vector] end -// PGM 01/21/97 +// PGM 01/21/97 // Nehahra effects used in the movie (TE_EXPLOSION3 also got written up in a QSG tutorial, hence it's not marked NEH) #define TE_EXPLOSION3 16 // [vector] origin [coord] red [coord] green [coord] blue @@ -279,12 +286,20 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define TE_CUSTOMFLASH 73 // [vector] origin [byte] radius / 8 - 1 [byte] lifetime / 256 - 1 [byte] red [byte] green [byte] blue #define TE_FLAMEJET 74 // [vector] origin [vector] velocity [byte] count #define TE_PLASMABURN 75 // [vector] origin +// LordHavoc: Tei grabbed these codes +#define TE_TEI_G3 76 // [vector] start [vector] end [vector] angles +#define TE_TEI_SMOKE 77 // [vector] origin [vector] dir [byte] count +#define TE_TEI_BIGEXPLOSION 78 // [vector] origin +#define TE_TEI_PLASMAHIT 79 // [vector} origin [vector] dir [byte] count + // these are bits for the 'flags' field of the entity_state_t #define RENDER_STEP 1 #define RENDER_GLOWTRAIL 2 #define RENDER_VIEWMODEL 4 #define RENDER_EXTERIORMODEL 8 +#define RENDER_LOWPRECISION 16 // send as low precision coordinates to save bandwidth +#define RENDER_COLORMAPPED 32 typedef struct { @@ -411,12 +426,8 @@ void EntityFrame_AddFrame(entity_database_t *d, entity_frame_t *f); void EntityFrame_Write(entity_database_t *d, entity_frame_t *f, sizebuf_t *msg); // (client) reads a frame from network stream void EntityFrame_Read(entity_database_t *d); -// (client) reads (and interpolates) the eye location from the database, -// given a current time -//int EntityFrame_FetchEye(entity_database_t *d, vec3_t eye, double time); -// (client) fetchs an entity from the frame by index into the entity list -//int EntityFrame_FetchEntityByIndex(entity_frame_t *f, entity_state_t *e, int index); -// (client) fetchs an entity from the frame by entity number -//int EntityFrame_FetchEntityByNumber(entity_frame_t *f, entity_state_t *e, int number); // (client) returns the frame number of the most recent frame recieved int EntityFrame_MostRecentlyRecievedFrameNum(entity_database_t *d); + +#endif +