X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=protocol.h;h=e9d5874aa9cfcb8e5795530e6db5a454ddd4122b;hb=84b1b8f2ec20a6d08d3d51351c6b57dbce579995;hp=21c856611780791e008e3819e040cd88b999626a;hpb=28450d0ddd2790b82c48a07239fd3cddbef4d63c;p=xonotic%2Fdarkplaces.git diff --git a/protocol.h b/protocol.h index 21c85661..e9d5874a 100644 --- a/protocol.h +++ b/protocol.h @@ -61,7 +61,7 @@ void Protocol_Names(char *buffer, size_t buffersize); #define EF_UNUSED17 131072 #define EF_UNUSED18 262144 #define EF_UNUSED19 524288 -#define EF_UNUSED20 1048576 +#define EF_RESTARTANIM_BIT 1048576 // div0: restart animation bit (like teleport bit, but lerps between end and start of the anim, and doesn't stop player lerping) #define EF_TELEPORT_BIT 2097152 // div0: teleport bit (toggled when teleporting, prevents lerping when the bit has changed) #define EF_LOWPRECISION 4194304 // LordHavoc: entity is low precision (integer coordinates) to save network bandwidth (serverside only) #define EF_NOMODELFLAGS 8388608 // indicates the model's .effects should be ignored (allows overriding them) @@ -385,8 +385,6 @@ typedef struct entity_state_s unsigned char tagindex; unsigned char colormod[3]; unsigned char glowmod[3]; - // padding to a multiple of 8 bytes (to align the double time) - unsigned char unused[2]; } entity_state_t; @@ -403,7 +401,7 @@ void Protocol_UpdateClientStats(const int *stats); void Protocol_WriteStatsReliable(void); // writes a list of quake entities to the network stream // (or as many will fit) -qboolean EntityFrameQuake_WriteFrame(sizebuf_t *msg, int maxsize, int numstates, const entity_state_t *states); +qboolean EntityFrameQuake_WriteFrame(sizebuf_t *msg, int maxsize, int numstates, const entity_state_t **states); // cleans up dead entities each frame after ReadEntity (which doesn't clear unused entities) void EntityFrameQuake_ISeeDeadEntities(void); @@ -588,11 +586,12 @@ void EntityFrame_AckFrame(entityframe_database_t *d, int frame); void EntityFrame_Clear(entity_frame_t *f, vec3_t eye, int framenum); // (server and client) reads a frame from the database void EntityFrame_FetchFrame(entityframe_database_t *d, int framenum, entity_frame_t *f); -// (server and client) adds a entity_frame to the database, for future -// reference -void EntityFrame_AddFrame(entityframe_database_t *d, vec3_t eye, int framenum, int numentities, const entity_state_t *entitydata); +// (client) adds a entity_frame to the database, for future reference +void EntityFrame_AddFrame_Client(entityframe_database_t *d, vec3_t eye, int framenum, int numentities, const entity_state_t *entitydata); +// (server) adds a entity_frame to the database, for future reference +void EntityFrame_AddFrame_Server(entityframe_database_t *d, vec3_t eye, int framenum, int numentities, const entity_state_t **entitydata); // (server) writes a frame to network stream -qboolean EntityFrame_WriteFrame(sizebuf_t *msg, int maxsize, entityframe_database_t *d, int numstates, const entity_state_t *states, int viewentnum); +qboolean EntityFrame_WriteFrame(sizebuf_t *msg, int maxsize, entityframe_database_t *d, int numstates, const entity_state_t **states, int viewentnum); // (client) reads a frame from network stream void EntityFrame_CL_ReadFrame(void); // (client) returns the frame number of the most recent frame recieved @@ -646,7 +645,7 @@ void EntityFrame4_ResetDatabase(entityframe4_database_t *d); // updates database to account for a frame-received acknowledgment int EntityFrame4_AckFrame(entityframe4_database_t *d, int framenum, int servermode); // writes a frame to the network stream -qboolean EntityFrame4_WriteFrame(sizebuf_t *msg, int maxsize, entityframe4_database_t *d, int numstates, const entity_state_t *states); +qboolean EntityFrame4_WriteFrame(sizebuf_t *msg, int maxsize, entityframe4_database_t *d, int numstates, const entity_state_t **states); // reads a frame from the network stream void EntityFrame4_CL_ReadFrame(void); @@ -803,7 +802,7 @@ int EntityState5_DeltaBitsForState(entity_state_t *o, entity_state_t *n); void EntityFrame5_CL_ReadFrame(void); void EntityFrame5_LostFrame(entityframe5_database_t *d, int framenum); void EntityFrame5_AckFrame(entityframe5_database_t *d, int framenum); -qboolean EntityFrame5_WriteFrame(sizebuf_t *msg, int maxsize, entityframe5_database_t *d, int numstates, const entity_state_t *states, int viewentnum, int movesequence, qboolean need_empty); +qboolean EntityFrame5_WriteFrame(sizebuf_t *msg, int maxsize, entityframe5_database_t *d, int numstates, const entity_state_t **states, int viewentnum, int movesequence, qboolean need_empty); extern cvar_t developer_networkentities;