*/
// protocol.h -- communications protocols
+#ifndef PROTOCOL_H
+#define PROTOCOL_H
+
#define PROTOCOL_VERSION 15
#define DPPROTOCOL_VERSION1 96
#define DPPROTOCOL_VERSION2 97
#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)
// 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
#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_VIEWMODEL 4
#define RENDER_EXTERIORMODEL 8
#define RENDER_LOWPRECISION 16 // send as low precision coordinates to save bandwidth
+#define RENDER_COLORMAPPED 32
typedef struct
{
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
+