X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=server.h;h=d7cfd72751feaafd981d85f74b80824312d5119a;hb=6631251252a526c873d18d381d26a47bafe5ab51;hp=ed1c89f2b963c950695fb00945996c465b18a2b9;hpb=a0338ffd578afdaf693aee96bc6f948afb5b1844;p=xonotic%2Fdarkplaces.git diff --git a/server.h b/server.h index ed1c89f2..d7cfd727 100644 --- a/server.h +++ b/server.h @@ -24,8 +24,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. typedef struct { - // NULL pointers are non-existent clients - struct client_s *connectedclients[MAX_SCOREBOARD]; + // number of svs.clients slots (updated by maxplayers command) + int maxclients; + // client slots + struct client_s *clients; // episode completion information int serverflags; // cleared when at SV_SpawnServer @@ -82,15 +84,15 @@ typedef struct server_state_t state; sizebuf_t datagram; - qbyte datagram_buf[MAX_DATAGRAM]; + qbyte datagram_buf[NET_MAXMESSAGE]; // copied to all clients at end of frame sizebuf_t reliable_datagram; - qbyte reliable_datagram_buf[MAX_DATAGRAM]; + qbyte reliable_datagram_buf[NET_MAXMESSAGE]; sizebuf_t signon; - // LordHavoc: increased signon message buffer from 8192 to 32768 - qbyte signon_buf[32768]; + // LordHavoc: increased signon message buffer from 8192 + qbyte signon_buf[NET_MAXMESSAGE]; } server_t; @@ -99,6 +101,8 @@ typedef struct typedef struct client_s { + // false = empty client slot + qboolean active; // false = don't send datagrams qboolean spawned; // has been told to go to another level @@ -107,7 +111,7 @@ typedef struct client_s qboolean sendsignon; // remove this client immediately qboolean deadsocket; - // index of this client in the svs.connectedclients pointer array + // index of this client in the svs.clients array int number; // reliable messages must be sent periodically @@ -123,7 +127,7 @@ typedef struct client_s // can be added to at any time, copied and clear once per frame sizebuf_t message; - qbyte msgbuf[MAX_DATAGRAM]; + qbyte msgbuf[NET_MAXMESSAGE]; // EDICT_NUM(clientnum+1) edict_t *edict; @@ -145,6 +149,10 @@ typedef struct client_s // visibility state float visibletime[MAX_EDICTS]; + + // prevent animated names + float nametime; + #ifdef QUAKEENTITIES // delta compression state float nextfullupdate[MAX_EDICTS]; @@ -174,6 +182,7 @@ typedef struct client_s #define MOVETYPE_BOUNCE 10 #define MOVETYPE_BOUNCEMISSILE 11 // bounce w/o gravity #define MOVETYPE_FOLLOW 12 // track movement of aiment +#define MOVETYPE_FAKEPUSH 13 // tenebrae's push that doesn't push // edict->solid values #define SOLID_NOT 0 // no interaction with other objects @@ -248,6 +257,11 @@ extern cvar_t sv_aim; extern cvar_t sv_stepheight; extern cvar_t sv_jumpstep; +extern cvar_t sv_gameplayfix_grenadebouncedownslopes; +extern cvar_t sv_gameplayfix_noairborncorpse; +extern cvar_t sv_gameplayfix_stepwhilejumping; +extern cvar_t sv_gameplayfix_swiminbmodels; + extern mempool_t *sv_clients_mempool; extern mempool_t *sv_edicts_mempool; @@ -285,8 +299,10 @@ void SV_AddUpdates (void); void SV_ClientThink (void); -void SV_ClientPrintf (const char *fmt, ...); -void SV_BroadcastPrintf (const char *fmt, ...); +void SV_ClientPrint(const char *msg); +void SV_ClientPrintf(const char *fmt, ...); +void SV_BroadcastPrint(const char *msg); +void SV_BroadcastPrintf(const char *fmt, ...); void SV_Physics (void);