BADCVAR("g_ctf_flag_glowtrails");
BADCVAR("g_ctf_dynamiclights");
BADCVAR("g_ctf_flag_pickup_verbosename");
+ BADPRESUFFIX("g_ctf_flag_", "_model");
+ BADPRESUFFIX("g_ctf_flag_", "_skin");
BADCVAR("g_domination_point_leadlimit");
BADCVAR("g_forced_respawn");
BADCVAR("g_freezetag_point_leadlimit");
BADCVAR("leadlimit_and_fraglimit");
BADCVAR("leadlimit_override");
BADCVAR("pausable");
+ BADCVAR("sv_announcer");
BADCVAR("sv_checkforpacketsduringsleep");
BADCVAR("sv_damagetext");
BADCVAR("sv_db_saveasdump");
BADCVAR("g_nexball_goallimit");
BADCVAR("g_norecoil");
BADCVAR("g_physics_clientselect");
- BADCVAR("g_physics_clientselect_options");
BADCVAR("g_pinata");
BADCVAR("g_powerups");
BADCVAR("g_player_brightness");
// handler for _init/_init map (only for dedicated server initialization)
world_initialized = -1; // don't complain
- cvar = cvar_normal;
- cvar_string = cvar_string_normal;
- cvar_set = cvar_set_normal;
delete_fn = remove_unsafely;
// localcmd("\nfs_rescan\n"); // FIXME: does more harm than good, has unintended side effects. What we really want is to unload temporary pk3s only
// restore csqc_progname too
string expect = "csprogs.dat";
- wantrestart = cvar_string_normal("csqc_progname") != expect;
- cvar_set_normal("csqc_progname", expect);
+ wantrestart = cvar_string("csqc_progname") != expect;
+ cvar_set("csqc_progname", expect);
}
else
{
// This always works; fall back to it if a versioned csprogs.dat is suddenly missing
string select = "csprogs.dat";
if (fexists(pk3csprogs)) select = pk3csprogs;
- if (cvar_string_normal("csqc_progname") != select)
+ if (cvar_string("csqc_progname") != select)
{
- cvar_set_normal("csqc_progname", select);
+ cvar_set("csqc_progname", select);
wantrestart = true;
}
// Check for updates on startup
string newprogs = sprintf("progs-%s.dat", switchversion);
if (fexists(newprogs))
{
- cvar_set_normal("sv_progs", newprogs);
+ cvar_set("sv_progs", newprogs);
wantrestart = true;
}
string newcsprogs = sprintf("csprogs-%s.dat", switchversion);
if (fexists(newcsprogs))
{
- cvar_set_normal("csqc_progname", newcsprogs);
+ cvar_set("csqc_progname", newcsprogs);
wantrestart = true;
}
}
}
}
- cvar = cvar_normal;
- cvar_string = cvar_string_normal;
- cvar_set = cvar_set_normal;
-
if(world_already_spawned)
error("world already spawned - you may have EXACTLY ONE worldspawn!");
world_already_spawned = true;
// character set: ASCII 33-126 without the following characters: : ; ' " \ $
if(autocvar_sv_eventlog)
{
- string s = sprintf("%d.%s.%06d", itos(autocvar_sv_eventlog_files_counter), strftime(false, "%s"), floor(random() * 1000000));
+ string s = sprintf("%s.%s.%06d", itos(autocvar_sv_eventlog_files_counter), strftime(false, "%s"), floor(random() * 1000000));
matchid = strzone(s);
GameLogEcho(strcat(":gamestart:", GetGametype(), "_", GetMapname(), ":", s));
// open map size restriction file
string opensize_msg = strcat("opensize ", map);
float fh = fopen(strcat("maps/", map, ".sizes"), FILE_READ);
- int pcount = player_count;
+ int player_limit = ((autocvar_g_maplist_sizes_count_maxplayers) ? GetPlayerLimit() : 0);
+ int pcount = ((player_limit > 0) ? min(player_count, player_limit) : player_count); // bind it to the player limit so that forced spectators don't influence the limits
if(!autocvar_g_maplist_sizes_count_bots)
pcount -= currentbots;
if(fh >= 0)
void Map_MarkAsRecent(string m)
{
- cvar_set("g_maplist_mostrecent", strwords(strcat(m, " ", autocvar_g_maplist_mostrecent), max(0, autocvar_g_maplist_mostrecent_count)));
+ cvar_set("g_maplist_mostrecent", strwords(cons(m, autocvar_g_maplist_mostrecent), max(0, autocvar_g_maplist_mostrecent_count)));
}
float Map_IsRecent(string m)
if(MUTATOR_CALLHOOK(Scores_CountFragsRemaining))
{
- float fragsleft = FLOAT_MAX, leadingfragsleft = FLOAT_MAX;
- if (limit)
- fragsleft = limit - WinningConditionHelper_topscore;
- if (leadlimit)
- leadingfragsleft = WinningConditionHelper_secondscore + leadlimit - WinningConditionHelper_topscore;
-
- if (limit && leadlimit && autocvar_leadlimit_and_fraglimit)
- fragsleft = max(fragsleft, leadingfragsleft);
+ float fragsleft;
+ if (checkrules_suddendeathend && time >= checkrules_suddendeathend)
+ {
+ fragsleft = 1;
+ }
else
- fragsleft = min(fragsleft, leadingfragsleft);
+ {
+ fragsleft = FLOAT_MAX;
+ float leadingfragsleft = FLOAT_MAX;
+ if (limit)
+ fragsleft = limit - WinningConditionHelper_topscore;
+ if (leadlimit)
+ leadingfragsleft = WinningConditionHelper_secondscore + leadlimit - WinningConditionHelper_topscore;
+
+ if (limit && leadlimit && autocvar_leadlimit_and_fraglimit)
+ fragsleft = max(fragsleft, leadingfragsleft);
+ else
+ fragsleft = min(fragsleft, leadingfragsleft);
+ }
if (fragsleft_last != fragsleft) // do not announce same remaining frags multiple times
{