qboolean active;
/// false = don't do ClientDisconnect on drop
qboolean clientconnectcalled;
- /// false = don't send datagrams
+ /// false = don't allow spawn
+ qboolean prespawned;
+ /// false = don't allow begin
qboolean spawned;
+ /// false = don't send datagrams
+ qboolean begun;
/// 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;
+ /// temporarily exceed rate by this amount of bytes
+ int rate_burstsize;
+
/// realtime this client connected
double connecttime;
float clmovement_inputtimeout;
/// spawn parms are carried from level to level
- float spawn_parms[NUM_SPAWN_PARMS];
+ prvm_vec_t spawn_parms[NUM_SPAWN_PARMS];
// properties that are sent across the network only when changed
char name[MAX_SCOREBOARDNAME], old_name[MAX_SCOREBOARDNAME];
extern cvar_t sv_gameplayfix_setmodelrealbox;
extern cvar_t sv_gameplayfix_slidemoveprojectiles;
extern cvar_t sv_gameplayfix_stepdown;
-extern cvar_t sv_gameplayfix_stepwhilejumping;
extern cvar_t sv_gameplayfix_stepmultipletimes;
extern cvar_t sv_gameplayfix_nostepmoveonsteepslopes;
extern cvar_t sv_gameplayfix_swiminbmodels;
* returns true if it found a better place
*/
qboolean SV_UnstickEntity (prvm_edict_t *ent);
+/*! move an entity that is stuck out of the surface it is stuck in (can move large amounts)
+ * returns true if it found a better place
+ */
+qboolean SV_NudgeOutOfSolid(prvm_edict_t *ent);
/// calculates hitsupercontentsmask for a generic qc entity
int SV_GenericHitSuperContentsMask(const prvm_edict_t *edict);