+
+ // now check if the changes are actually gameplay relevant
+
+ // does nothing visible
+ BADCVAR("captureleadlimit_override");
+ BADCVAR("g_arena_point_leadlimit");
+ BADCVAR("g_ca_point_leadlimit");
+ BADCVAR("g_ctf_capture_leadlimit");
+ BADCVAR("g_domination_point_leadlimit");
+ BADCVAR("g_keyhunt_point_leadlimit");
+ BADCVAR("g_nexball_goalleadlimit");
+ BADCVAR("g_runematch_point_leadlimit");
+ BADCVAR("leadlimit_and_fraglimit");
+ BADCVAR("leadlimit_override");
+ BADCVAR("sv_checkforpacketsduringsleep");
+ BADPREFIX("crypto_");
+ BADPREFIX("g_chat_");
+ BADPREFIX("net_");
+ BADPREFIX("prvm_");
+ BADPREFIX("sv_fragmessage_");
+ BADPREFIX("sv_vote_");
+ BADPREFIX("timelimit_");
+
+ // allowed changes to server admins (please sync this to server.cfg)
+ // vi commands:
+ // :/"impure"/,$d
+ // :g!,^\/\/[^ /],d
+ // :%s,//\([^ ]*\).*,BADCVAR("\1");,
+ // :%!sort
+ // yes, this does contain some redundant stuff, don't really care
+ BADCVAR("bot_number");
+ BADCVAR("bot_prefix");
+ BADCVAR("bot_suffix");
+ BADCVAR("capturelimit_override");
+ BADCVAR("fraglimit_override");
+ BADCVAR("gametype");
+ BADCVAR("g_antilag");
+ BADCVAR("g_balance_teams");
+ BADCVAR("g_balance_teams_force");
+ BADCVAR("g_ban_sync_trusted_servers");
+ BADCVAR("g_ban_sync_uri");
+ BADCVAR("g_ctf_capture_limit");
+ BADCVAR("g_ctf_ignore_frags");
+ BADCVAR("g_ctf_win_mode");
+ BADCVAR("g_domination_point_limit");
+ BADCVAR("g_fullbrightitems");
+ BADCVAR("g_fullbrightplayers");
+ BADCVAR("g_keyhunt_point_limit");
+ BADCVAR("g_keyhunt_teams_override");
+ BADCVAR("g_lms_lives_override");
+ BADCVAR("g_maplist");
+ BADCVAR("g_maplist_check_waypoints");
+ BADCVAR("g_maplist_mostrecent_count");
+ BADCVAR("g_maplist_shuffle");
+ BADCVAR("g_maplist_votable");
+ BADCVAR("g_maplist_votable_abstain");
+ BADCVAR("g_maplist_votable_nodetail");
+ BADCVAR("g_maplist_votable_suggestions");
+ BADCVAR("g_minstagib");
+ BADCVAR("g_nexball_goallimit");
+ BADCVAR("g_runematch_point_limit");
+ BADCVAR("g_start_delay");
+ BADCVAR("hostname");
+ BADCVAR("log_file");
+ BADCVAR("maxplayers");
+ BADCVAR("minplayers");
+ BADCVAR("net_address");
+ BADCVAR("port");
+ BADCVAR("rcon_password");
+ BADCVAR("rcon_restricted_commands");
+ BADCVAR("rcon_restricted_password");
+ BADCVAR("skill");
+ BADCVAR("sv_adminnick");
+ BADCVAR("sv_autoscreenshot");
+ BADCVAR("sv_curl_defaulturl");
+ BADCVAR("sv_defaultcharacter");
+ BADCVAR("sv_defaultplayermodel");
+ BADCVAR("sv_defaultplayerskin");
+ BADCVAR("sv_maxidle");
+ BADCVAR("sv_maxrate");
+ BADCVAR("sv_motd");
+ BADCVAR("sv_public");
+ BADCVAR("sv_ready_restart");
+ BADCVAR("sv_status_privacy");
+ BADCVAR("sv_vote_call");
+ BADCVAR("sv_vote_commands");
+ BADCVAR("sv_vote_majority_factor");
+ BADCVAR("sv_vote_master");
+ BADCVAR("sv_vote_master_commands");
+ BADCVAR("sv_vote_master_password");
+ BADCVAR("sv_vote_simple_majority_factor");
+ BADCVAR("timelimit_override");
+
+ if(cvar("g_minstagib"))
+ {
+ BADCVAR("g_grappling_hook");
+ BADCVAR("g_jetpack");
+ }
+#undef BADPREFIX
+#undef BADCVAR
+
+ if(pureadding)
+ {
+ cvar_purechanges = strcat(cvar_purechanges, k, " \"", v, "\" // \"", d, "\"\n");
+ if(strlen(cvar_purechanges) > 16384)
+ {
+ cvar_purechanges = "// too many settings have been changed to show them here\n";
+ pureadding = 0;
+ }
+ }
+ ++cvar_purechanges_count;
+ // WARNING: this variable is used for the server list
+ // NEVER dare to skip this code!
+ // Hacks to intentionally appearing as "pure server" even though you DO have
+ // modified settings may be punished by removal from the server list.
+ // You can do to the variables cvar_changes and cvar_purechanges all you want,
+ // though.