+typedef struct server_s
+{
+ // false if only a net client
+ qboolean active;
+
+ qboolean paused;
+ double pausedstart;
+ // handle connections specially
+ qboolean loadgame;
+
+ // one of the PROTOCOL_ values
+ protocolversion_t protocol;
+
+ double time;
+
+ double frametime;
+
+ // used by PF_checkclient
+ int lastcheck;
+ double lastchecktime;
+
+ // crc of clientside progs at time of level start
+ int csqc_progcrc; // -1 = no progs
+ int csqc_progsize; // -1 = no progs
+ char csqc_progname[MAX_QPATH]; // copied from csqc_progname at level start
+
+ // collision culling data
+ world_t world;
+
+ // map name
+ char name[64];
+ // maps/<name>.bsp, for model_precache[0]
+ char modelname[64];
+ struct model_s *worldmodel;
+ // NULL terminated
+ // LordHavoc: precaches are now MAX_QPATH rather than a pointer
+ // updated by SV_ModelIndex
+ char model_precache[MAX_MODELS][MAX_QPATH];
+ struct model_s *models[MAX_MODELS];
+ // NULL terminated
+ // LordHavoc: precaches are now MAX_QPATH rather than a pointer
+ // updated by SV_SoundIndex
+ char sound_precache[MAX_SOUNDS][MAX_QPATH];
+ char lightstyles[MAX_LIGHTSTYLES][64];
+ // some actions are only valid during load
+ server_state_t state;
+
+ sizebuf_t datagram;
+ unsigned char datagram_buf[NET_MAXMESSAGE];
+
+ // copied to all clients at end of frame
+ sizebuf_t reliable_datagram;
+ unsigned char reliable_datagram_buf[NET_MAXMESSAGE];
+
+ sizebuf_t signon;
+ // LordHavoc: increased signon message buffer from 8192
+ unsigned char signon_buf[NET_MAXMESSAGE];
+
+ // connection flood blocking
+ // note this is in server_t rather than server_static_t so that it is
+ // reset on each map command (such as New Game in singleplayer)
+ server_connectfloodaddress_t connectfloodaddresses[MAX_CONNECTFLOODADDRESSES];
+
+#define SV_MAX_PARTICLEEFFECTNAME 256
+ qboolean particleeffectnamesloaded;
+ char particleeffectname[SV_MAX_PARTICLEEFFECTNAME][MAX_QPATH];
+
+ int writeentitiestoclient_stats_culled_pvs;
+ int writeentitiestoclient_stats_culled_trace;
+ int writeentitiestoclient_stats_visibleentities;
+ int writeentitiestoclient_stats_totalentities;
+ int writeentitiestoclient_cliententitynumber;
+ int writeentitiestoclient_clientnumber;
+ sizebuf_t *writeentitiestoclient_msg;
+ vec3_t writeentitiestoclient_testeye;
+ int writeentitiestoclient_pvsbytes;
+ unsigned char writeentitiestoclient_pvs[MAX_MAP_LEAFS/8];
+ entity_state_t writeentitiestoclient_sendstates[MAX_EDICTS];
+
+ int numsendentities;
+ entity_state_t sendentities[MAX_EDICTS];
+ entity_state_t *sendentitiesindex[MAX_EDICTS];
+
+ int sententitiesmark;
+ int sententities[MAX_EDICTS];
+ int sententitiesconsideration[MAX_EDICTS];
+
+ // legacy support for self.Version based csqc entity networking
+ unsigned char csqcentityversion[MAX_EDICTS]; // legacy