bool autocvar__endmatch;
bool autocvar_g_use_ammunition;
bool autocvar_g_jetpack;
+int autocvar_g_warmup;
bool autocvar_g_warmup_allguns;
bool autocvar_g_warmup_allow_timeout;
#define autocvar_g_weaponarena cvar_string("g_weaponarena")
int autocvar_timelimit_overtimes;
float autocvar_timelimit_suddendeath;
+// z411
+bool autocvar_sv_jingle_end;
+string autocvar_sv_jingle_end_list;
+float autocvar_sv_jingle_end_volume;
+
+float fragsleft;
+int fragsleft_last;
+bool autocvar_sv_mapformat_is_quake3;
+bool autocvar_sv_mapformat_is_quake2;
+
float checkrules_equality;
float checkrules_suddendeathwarning;
float checkrules_suddendeathend;
string modname;
-string gamemode_name;
+string autocvar__sv_vote_gametype_custom;
+string gametype_custom_string;
string record_type;
void CheckRules_World();
float RedirectionThink();
+// quake 3 music compatibility
+.string music;
+.string noise;
+
void readplayerstartcvars();
void readlevelcvars();
.vector dropped_origin;
void droptofloor(entity this);
+/* z411 for RJZ */
+bool autocvar_rjz_count_shards = false;
+bool autocvar_rjz_ranks = false;
+int total_shards = 0;
+void send_TotalShards(entity to);
+void send_TotalShardsAll();
+
IntrusiveList g_moveables;
STATIC_INIT(g_moveables) { g_moveables = IL_NEW(); }
+
+bool observe_blocked_if_eliminated = false; // forbids eliminated players from observing