#include <common/weapons/_all.qh>
bool autocvar__sv_init;
+bool autocvar__endmatch;
bool autocvar_g_use_ammunition;
bool autocvar_g_jetpack;
bool autocvar_g_warmup_allguns;
float autocvar_timelimit_overtime;
int autocvar_timelimit_overtimes;
float autocvar_timelimit_suddendeath;
+bool autocvar_sv_gameplayfix_droptofloorstartsolid;
+bool autocvar_sv_gameplayfix_droptofloorstartsolid_nudgetocorrect;
+
+bool autocvar_sv_mapformat_is_quake3;
+bool autocvar_sv_mapformat_is_quake2;
float checkrules_equality;
float checkrules_suddendeathwarning;
float checkrules_suddendeathend;
-float checkrules_overtimesadded; //how many overtimes have been already added
+int checkrules_overtimesadded; //how many overtimes have been already added
// flag set on worldspawn so that the code knows if it is dedicated or not
bool server_is_dedicated;
+int world_initialized;
+
string cvar_changes;
string cvar_purechanges;
float cvar_purechanges_count;
string gamemode_name;
+string record_type;
+
+string autocvar_sv_termsofservice_url;
+// only escape the terms of service url on map change
+string sv_termsofservice_url_escaped;
+
string clientstuff;
string matchid;
float want_weapon(entity weaponinfo, float allguns); // WEAPONTODO: what still needs done?
float g_grappling_hook;
-float warmup_stage;
+int warmup_stage;
bool sv_ready_restart_after_countdown;
float WinningCondition_Scores(float limit, float leadlimit);
void SetWinners(.float field, float value);
-void ReadyRestart();
+void ReadyRestart(bool forceWarmupEnd);
void DumpStats(float final);
-bool MoveToRandomLocationWithinBounds(entity e, vector boundmin, vector boundmax, float goodcontents, float badcontents, float badsurfaceflags, int attempts, float maxaboveground, float minviewdistance);
+bool MoveToRandomLocationWithinBounds(entity e, vector boundmin, vector boundmax, float goodcontents, float badcontents, float badsurfaceflags, int attempts, float maxaboveground, float minviewdistance, bool frompos);
float MoveToRandomMapLocation(entity e, float goodcontents, float badcontents, float badsurfaceflags, float attempts, float maxaboveground, float minviewdistance);
void CheckRules_World();
float RedirectionThink();
+// quake 3 music compatibility
+.string music;
+.string noise;
+
void readplayerstartcvars();
void readlevelcvars();
IntrusiveList g_moveables;
STATIC_INIT(g_moveables) { g_moveables = IL_NEW(); }
+
+bool observe_blocked_if_eliminated = false; // forbids eliminated players from observing