qboolean changelevel_issued;
// server infostring
char serverinfo[MAX_SERVERINFO_STRING];
+ // performance data
+ float perf_cpuload;
+ float perf_lost;
+ float perf_offset_avg;
+ float perf_offset_max;
+ float perf_offset_sdev;
+ // temporary performance data accumulators
+ float perf_acc_realtime;
+ float perf_acc_sleeptime;
+ float perf_acc_lost;
+ float perf_acc_offset;
+ float perf_acc_offset_squared;
+ float perf_acc_offset_max;
+ int perf_acc_offset_samples;
} server_static_t;
//=============================================================================
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];
} server_t;
// if defined this does ping smoothing, otherwise it does not
qboolean clientconnectcalled;
// false = don't send datagrams
qboolean spawned;
- // false = don't send reliable messages until svc_signonnum 2 (before spawned is set)
- qboolean sendsignon;
+ // 1 = send svc_serverinfo and advance to 2, 2 doesn't send, then advances to 0 (allowing unlimited sending) when prespawn is received
+ int sendsignon;
// requested rate in bytes per second
int rate;
// fixangle data
qboolean fixangle_angles_set;
vec3_t fixangle_angles;
+
+ // demo recording
+ qfile_t *sv_demo_file;
} client_t;
extern cvar_t sv_freezenonclients;
extern cvar_t sv_friction;
extern cvar_t sv_gameplayfix_blowupfallenzombies;
+extern cvar_t sv_gameplayfix_delayprojectiles;
extern cvar_t sv_gameplayfix_droptofloorstartsolid;
extern cvar_t sv_gameplayfix_findradiusdistancetobox;
extern cvar_t sv_gameplayfix_grenadebouncedownslopes;
+extern cvar_t sv_gameplayfix_multiplethinksperframe;
extern cvar_t sv_gameplayfix_noairborncorpse;
extern cvar_t sv_gameplayfix_qwplayerphysics;
extern cvar_t sv_gameplayfix_setmodelrealbox;
void SV_StartParticle (vec3_t org, vec3_t dir, int color, int count);
void SV_StartEffect (vec3_t org, int modelindex, int startframe, int framecount, int framerate);
void SV_StartSound (prvm_edict_t *entity, int channel, const char *sample, int volume, float attenuation);
+void SV_StartPointSound (vec3_t origin, const char *sample, int volume, float attenuation);
void SV_ConnectClient (int clientnum, netconn_t *netconnection);
void SV_DropClient (qboolean crash);
void SV_VM_Begin(void);
void SV_VM_End(void);
+const char *Host_TimingReport(); // for output in Host_Status_f
+
#endif