*/
// 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 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
+