]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into Mario/physics
authorMario <zacjardine@y7mail.com>
Thu, 9 Jul 2015 07:19:29 +0000 (17:19 +1000)
committerMario <zacjardine@y7mail.com>
Thu, 9 Jul 2015 07:19:29 +0000 (17:19 +1000)
Conflicts:
qcsrc/server/autocvars.qh

1  2 
defaultXonotic.cfg
qcsrc/server/autocvars.qh
qcsrc/server/cl_physics.qc
qcsrc/server/command/cmd.qc
qcsrc/server/defs.qh
qcsrc/server/g_world.qc
qcsrc/server/miscfunctions.qc
qcsrc/server/mutators/mutator_buffs.qc

diff --combined defaultXonotic.cfg
index 5f7cf71d215715f613bfb4c13e7f3a7daecc833e,c37e19fb3ab614e549fedc3c3940f63869e4f08a..756ab235571eec7f27c2a40529a55591204e81c3
@@@ -10,7 -10,7 +10,7 @@@
  // e.g. Xonotic 1.5.1 RC1 will be 15101
  set g_xonoticversion git "Xonotic version (formatted for humans)"
  
- gameversion 800 // 0.8.0
+ gameversion 801 // 0.8.1
  gameversion_min 0 // git builds see all versions
  gameversion_max 65535 // git builds see all versions
  
@@@ -472,7 -472,7 +472,7 @@@ set g_botclip_collisions 1 "0 = disabl
  set g_grappling_hook 0 "let players spawn with the grappling hook which allows them to pull themselves up"
  
  set g_spawn_alloweffects 1 "allow clients to enable spawn point and event effects such as particles and sounds, see cl_spawn_ cvars for more info"
- set g_spawn_furthest 1.0 "this amount of the spawns shall be far away from any players"
+ set g_spawn_furthest 0.5 "this amount of the spawns shall be far away from any players"
  set g_spawn_useallspawns 0 "use all spawns, e.g. also team spawns in non-teamplay, and all spawns, even enemy spawns, in teamplay"
  // respawn delay
  set g_respawn_delay_small 2 "small game number of seconds you have to wait before you can respawn again"
@@@ -1399,7 -1399,6 +1399,7 @@@ exec gamemodes.cf
  exec mutators.cfg
  exec notifications.cfg
  exec monsters.cfg
 +exec physics.cfg
  
  // load console command aliases and settings
  exec commands.cfg
index 4696827b27769ae6213b84a1920e2fa06953cae9,f84eb008b2a7aef5f6ba26a84d6c9218fca563ed..e6bc6202e0981b75b127c4412b976d413c8b2cea
@@@ -128,12 -128,12 +128,12 @@@ float autocvar_g_balance_keyhunt_delay_
  float autocvar_g_balance_keyhunt_dropvelocity;
  float autocvar_g_balance_keyhunt_maxdist;
  float autocvar_g_balance_keyhunt_protecttime;
float autocvar_g_balance_keyhunt_score_capture;
float autocvar_g_balance_keyhunt_score_carrierfrag;
float autocvar_g_balance_keyhunt_score_collect;
float autocvar_g_balance_keyhunt_score_destroyed;
float autocvar_g_balance_keyhunt_score_destroyed_ownfactor;
float autocvar_g_balance_keyhunt_score_push;
int autocvar_g_balance_keyhunt_score_capture;
int autocvar_g_balance_keyhunt_score_carrierfrag;
int autocvar_g_balance_keyhunt_score_collect;
int autocvar_g_balance_keyhunt_score_destroyed;
int autocvar_g_balance_keyhunt_score_destroyed_ownfactor;
int autocvar_g_balance_keyhunt_score_push;
  float autocvar_g_balance_keyhunt_throwvelocity;
  float autocvar_g_balance_kill_delay;
  float autocvar_g_balance_kill_antispam;
@@@ -145,18 -145,18 +145,18 @@@ float autocvar_g_balance_nexball_second
  float autocvar_g_balance_nexball_secondary_lifetime;
  float autocvar_g_balance_nexball_secondary_refire;
  float autocvar_g_balance_nexball_secondary_speed;
float autocvar_g_balance_nix_ammo_cells;
float autocvar_g_balance_nix_ammo_plasma;
float autocvar_g_balance_nix_ammo_fuel;
float autocvar_g_balance_nix_ammo_nails;
float autocvar_g_balance_nix_ammo_rockets;
float autocvar_g_balance_nix_ammo_shells;
float autocvar_g_balance_nix_ammoincr_cells;
float autocvar_g_balance_nix_ammoincr_plasma;
float autocvar_g_balance_nix_ammoincr_fuel;
float autocvar_g_balance_nix_ammoincr_nails;
float autocvar_g_balance_nix_ammoincr_rockets;
float autocvar_g_balance_nix_ammoincr_shells;
int autocvar_g_balance_nix_ammo_cells;
int autocvar_g_balance_nix_ammo_plasma;
int autocvar_g_balance_nix_ammo_fuel;
int autocvar_g_balance_nix_ammo_nails;
int autocvar_g_balance_nix_ammo_rockets;
int autocvar_g_balance_nix_ammo_shells;
int autocvar_g_balance_nix_ammoincr_cells;
int autocvar_g_balance_nix_ammoincr_plasma;
int autocvar_g_balance_nix_ammoincr_fuel;
int autocvar_g_balance_nix_ammoincr_nails;
int autocvar_g_balance_nix_ammoincr_rockets;
int autocvar_g_balance_nix_ammoincr_shells;
  float autocvar_g_balance_nix_incrtime;
  float autocvar_g_balance_nix_roundtime;
  float autocvar_g_balance_pause_armor_rot;
@@@ -179,8 -179,8 +179,8 @@@ float autocvar_g_balance_powerup_streng
  float autocvar_g_balance_powerup_strength_time;
  float autocvar_g_balance_superweapons_time;
  float autocvar_g_balance_selfdamagepercent;
float autocvar_g_balance_teams;
float autocvar_g_balance_teams_prevent_imbalance;
bool autocvar_g_balance_teams;
bool autocvar_g_balance_teams_prevent_imbalance;
  float autocvar_g_balance_teams_scorefactor;
  float autocvar_g_ballistics_density_corpse;
  float autocvar_g_ballistics_density_player;
@@@ -190,47 -190,47 +190,47 @@@ float autocvar_g_ban_default_masksize
  float autocvar_g_ban_sync_interval;
  float autocvar_g_ban_sync_timeout;
  string autocvar_g_ban_sync_trusted_servers;
float autocvar_g_ban_sync_trusted_servers_verify;
bool autocvar_g_ban_sync_trusted_servers_verify;
  string autocvar_g_ban_sync_uri;
  string autocvar_g_banned_list;
float autocvar_g_banned_list_idmode;
float autocvar_g_bastet;
float autocvar_g_botclip_collisions;
float autocvar_g_bugrigs;
bool autocvar_g_banned_list_idmode;
bool autocvar_g_bastet;
bool autocvar_g_botclip_collisions;
bool autocvar_g_bugrigs;
  float autocvar_g_ca_damage2score_multiplier;
float autocvar_g_ca_point_leadlimit;
float autocvar_g_ca_point_limit;
int autocvar_g_ca_point_leadlimit;
int autocvar_g_ca_point_limit;
  float autocvar_g_ca_round_timelimit;
float autocvar_g_ca_spectate_enemies;
float autocvar_g_ca_teams;
float autocvar_g_ca_teams_override;
float autocvar_g_ca_team_spawns;
bool autocvar_g_ca_spectate_enemies;
int autocvar_g_ca_teams;
int autocvar_g_ca_teams_override;
bool autocvar_g_ca_team_spawns;
  float autocvar_g_ca_warmup;
float autocvar_g_campaign;
bool autocvar_g_campaign;
  #define autocvar_g_campaign_forceteam cvar("g_campaign_forceteam")
float autocvar_g_campaign_skill;
float autocvar_g_casings;
float autocvar_g_changeteam_banned;
int autocvar_g_campaign_skill;
int autocvar_g_casings;
bool autocvar_g_changeteam_banned;
  float autocvar_g_chat_flood_burst;
  float autocvar_g_chat_flood_burst_team;
  float autocvar_g_chat_flood_burst_tell;
  float autocvar_g_chat_flood_lmax;
  float autocvar_g_chat_flood_lmax_team;
  float autocvar_g_chat_flood_lmax_tell;
float autocvar_g_chat_flood_notify_flooder;
bool autocvar_g_chat_flood_notify_flooder;
  float autocvar_g_chat_flood_spl;
  float autocvar_g_chat_flood_spl_team;
  float autocvar_g_chat_flood_spl_tell;
float autocvar_g_chat_nospectators;
float autocvar_g_chat_teamcolors;
float autocvar_g_chat_tellprivacy;
float autocvar_g_ctf_allow_vehicle_carry;
float autocvar_g_ctf_allow_vehicle_touch;
float autocvar_g_ctf_allow_monster_touch;
float autocvar_g_ctf_throw;
int autocvar_g_chat_nospectators;
bool autocvar_g_chat_teamcolors;
bool autocvar_g_chat_tellprivacy;
bool autocvar_g_ctf_allow_vehicle_carry;
bool autocvar_g_ctf_allow_vehicle_touch;
bool autocvar_g_ctf_allow_monster_touch;
bool autocvar_g_ctf_throw;
  float autocvar_g_ctf_throw_angle_max;
  float autocvar_g_ctf_throw_angle_min;
float autocvar_g_ctf_throw_punish_count;
int autocvar_g_ctf_throw_punish_count;
  float autocvar_g_ctf_throw_punish_delay;
  float autocvar_g_ctf_throw_punish_time;
  float autocvar_g_ctf_throw_strengthmultiplier;
@@@ -238,31 -238,31 +238,31 @@@ float autocvar_g_ctf_throw_velocity_for
  float autocvar_g_ctf_throw_velocity_up;
  float autocvar_g_ctf_drop_velocity_up;
  float autocvar_g_ctf_drop_velocity_side;
float autocvar_g_ctf_portalteleport;
float autocvar_g_ctf_pass;
bool autocvar_g_ctf_portalteleport;
bool autocvar_g_ctf_pass;
  float autocvar_g_ctf_pass_arc;
  float autocvar_g_ctf_pass_arc_max;
  float autocvar_g_ctf_pass_directional_max;
  float autocvar_g_ctf_pass_directional_min;
  float autocvar_g_ctf_pass_radius;
  float autocvar_g_ctf_pass_wait;
float autocvar_g_ctf_pass_request;
bool autocvar_g_ctf_pass_request;
  float autocvar_g_ctf_pass_turnrate;
  float autocvar_g_ctf_pass_timelimit;
  float autocvar_g_ctf_pass_velocity;
float autocvar_g_ctf_dynamiclights;
bool autocvar_g_ctf_dynamiclights;
  string autocvar_g_ctf_flag_blue_model;
float autocvar_g_ctf_flag_blue_skin;
int autocvar_g_ctf_flag_blue_skin;
  float autocvar_g_ctf_flag_collect_delay;
  float autocvar_g_ctf_flag_damageforcescale;
float autocvar_g_ctf_flag_dropped_waypoint;
int autocvar_g_ctf_flag_dropped_waypoint;
  float autocvar_g_ctf_flag_dropped_floatinwater;
float autocvar_g_ctf_flag_glowtrails;
bool autocvar_g_ctf_flag_glowtrails;
  float autocvar_g_ctf_flag_health;
  string autocvar_g_ctf_flag_red_model;
float autocvar_g_ctf_flag_red_skin;
int autocvar_g_ctf_flag_red_skin;
  float autocvar_g_ctf_flag_return_time;
float autocvar_g_ctf_flag_return_when_unreachable;
bool autocvar_g_ctf_flag_return_when_unreachable;
  float autocvar_g_ctf_flag_return_damage;
  float autocvar_g_ctf_flag_return_dropped;
  float autocvar_g_ctf_flagcarrier_auto_helpme_damage;
@@@ -272,82 -272,82 +272,82 @@@ float autocvar_g_ctf_flagcarrier_selffo
  float autocvar_g_ctf_flagcarrier_damagefactor;
  float autocvar_g_ctf_flagcarrier_forcefactor;
  //float autocvar_g_ctf_flagcarrier_waypointforenemy_spotting;
float autocvar_g_ctf_fullbrightflags;
float autocvar_g_ctf_ignore_frags;
float autocvar_g_ctf_score_capture;
float autocvar_g_ctf_score_capture_assist;
float autocvar_g_ctf_score_kill;
float autocvar_g_ctf_score_penalty_drop;
- //float autocvar_g_ctf_score_penalty_suicidedrop;
float autocvar_g_ctf_score_penalty_returned;
float autocvar_g_ctf_score_pickup_base;
float autocvar_g_ctf_score_pickup_dropped_early;
float autocvar_g_ctf_score_pickup_dropped_late;
float autocvar_g_ctf_score_return;
bool autocvar_g_ctf_fullbrightflags;
bool autocvar_g_ctf_ignore_frags;
int autocvar_g_ctf_score_capture;
int autocvar_g_ctf_score_capture_assist;
int autocvar_g_ctf_score_kill;
int autocvar_g_ctf_score_penalty_drop;
+ //int autocvar_g_ctf_score_penalty_suicidedrop;
int autocvar_g_ctf_score_penalty_returned;
int autocvar_g_ctf_score_pickup_base;
int autocvar_g_ctf_score_pickup_dropped_early;
int autocvar_g_ctf_score_pickup_dropped_late;
int autocvar_g_ctf_score_return;
  float autocvar_g_ctf_shield_force;
  float autocvar_g_ctf_shield_max_ratio;
float autocvar_g_ctf_shield_min_negscore;
float autocvar_g_ctf_stalemate;
float autocvar_g_ctf_stalemate_endcondition;
int autocvar_g_ctf_shield_min_negscore;
bool autocvar_g_ctf_stalemate;
int autocvar_g_ctf_stalemate_endcondition;
  float autocvar_g_ctf_stalemate_time;
float autocvar_g_ctf_reverse;
bool autocvar_g_ctf_reverse;
  float autocvar_g_ctf_dropped_capture_delay;
  float autocvar_g_ctf_dropped_capture_radius;
  float autocvar_g_cts_finish_kill_delay;
float autocvar_g_cts_selfdamage;
float autocvar_g_debug_bot_commands;
float autocvar_g_domination_default_teams;
float autocvar_g_domination_disable_frags;
float autocvar_g_domination_point_amt;
float autocvar_g_domination_point_fullbright;
float autocvar_g_domination_point_leadlimit;
float autocvar_g_domination_roundbased;
float autocvar_g_domination_roundbased_point_limit;
bool autocvar_g_cts_selfdamage;
bool autocvar_g_debug_bot_commands;
int autocvar_g_domination_default_teams;
bool autocvar_g_domination_disable_frags;
int autocvar_g_domination_point_amt;
bool autocvar_g_domination_point_fullbright;
int autocvar_g_domination_point_leadlimit;
bool autocvar_g_domination_roundbased;
int autocvar_g_domination_roundbased_point_limit;
  float autocvar_g_domination_round_timelimit;
  float autocvar_g_domination_warmup;
  #define autocvar_g_domination_point_limit cvar("g_domination_point_limit")
  float autocvar_g_domination_point_rate;
float autocvar_g_domination_teams_override;
float autocvar_g_forced_respawn;
int autocvar_g_domination_teams_override;
bool autocvar_g_forced_respawn;
  string autocvar_g_forced_team_blue;
  string autocvar_g_forced_team_otherwise;
  string autocvar_g_forced_team_pink;
  string autocvar_g_forced_team_red;
  string autocvar_g_forced_team_yellow;
float autocvar_g_freezetag_frozen_damage_trigger;
bool autocvar_g_freezetag_frozen_damage_trigger;
  float autocvar_g_freezetag_frozen_force;
  float autocvar_g_freezetag_frozen_maxtime;
  float autocvar_g_freezetag_revive_falldamage;
  float autocvar_g_freezetag_revive_falldamage_health;
float autocvar_g_freezetag_revive_nade;
bool autocvar_g_freezetag_revive_nade;
  float autocvar_g_freezetag_revive_nade_health;
float autocvar_g_freezetag_point_leadlimit;
float autocvar_g_freezetag_point_limit;
int autocvar_g_freezetag_point_leadlimit;
int autocvar_g_freezetag_point_limit;
  float autocvar_g_freezetag_revive_extra_size;
  float autocvar_g_freezetag_revive_speed;
  float autocvar_g_freezetag_revive_clearspeed;
  float autocvar_g_freezetag_round_timelimit;
float autocvar_g_freezetag_teams;
float autocvar_g_freezetag_teams_override;
float autocvar_g_freezetag_team_spawns;
int autocvar_g_freezetag_teams;
int autocvar_g_freezetag_teams_override;
bool autocvar_g_freezetag_team_spawns;
  float autocvar_g_freezetag_warmup;
  #define autocvar_g_friendlyfire cvar("g_friendlyfire")
  #define autocvar_g_friendlyfire_virtual cvar("g_friendlyfire_virtual")
  #define autocvar_g_friendlyfire_virtual_force cvar("g_friendlyfire_virtual_force")
float autocvar_g_full_getstatus_responses;
float autocvar_g_fullbrightitems;
float autocvar_g_fullbrightplayers;
bool autocvar_g_full_getstatus_responses;
bool autocvar_g_fullbrightitems;
bool autocvar_g_fullbrightplayers;
  #define autocvar_g_grappling_hook cvar("g_grappling_hook")
float autocvar_g_grappling_hook_tarzan;
float autocvar_g_hitplots;
int autocvar_g_grappling_hook_tarzan;
bool autocvar_g_hitplots;
  string autocvar_g_hitplots_individuals;
  float autocvar_g_jetpack_acceleration_side;
  float autocvar_g_jetpack_acceleration_up;
  float autocvar_g_jetpack_antigravity;
float autocvar_g_jetpack_fuel;
int autocvar_g_jetpack_fuel;
  float autocvar_g_jetpack_maxspeed_side;
  float autocvar_g_jetpack_maxspeed_up;
float autocvar_g_keepaway_ballcarrier_effects;
int autocvar_g_keepaway_ballcarrier_effects;
  float autocvar_g_keepaway_ballcarrier_damage;
  float autocvar_g_keepaway_ballcarrier_force;
  float autocvar_g_keepaway_ballcarrier_highspeed;
@@@ -357,61 -357,61 +357,61 @@@ float autocvar_g_keepaway_noncarrier_da
  float autocvar_g_keepaway_noncarrier_force;
  float autocvar_g_keepaway_noncarrier_selfdamage;
  float autocvar_g_keepaway_noncarrier_selfforce;
float autocvar_g_keepaway_noncarrier_warn;
float autocvar_g_keepaway_score_bckill;
float autocvar_g_keepaway_score_killac;
float autocvar_g_keepaway_score_timepoints;
bool autocvar_g_keepaway_noncarrier_warn;
int autocvar_g_keepaway_score_bckill;
int autocvar_g_keepaway_score_killac;
int autocvar_g_keepaway_score_timepoints;
  float autocvar_g_keepaway_score_timeinterval;
  float autocvar_g_keepawayball_damageforcescale;
float autocvar_g_keepawayball_effects;
int autocvar_g_keepawayball_effects;
  float autocvar_g_keepawayball_respawntime;
float autocvar_g_keepawayball_trail_color;
float autocvar_g_keyhunt_point_leadlimit;
int autocvar_g_keepawayball_trail_color;
int autocvar_g_keyhunt_point_leadlimit;
  #define autocvar_g_keyhunt_point_limit cvar("g_keyhunt_point_limit")
float autocvar_g_keyhunt_teams;
float autocvar_g_keyhunt_teams_override;
float autocvar_g_lms_extra_lives;
float autocvar_g_lms_join_anytime;
float autocvar_g_lms_last_join;
int autocvar_g_keyhunt_teams;
int autocvar_g_keyhunt_teams_override;
int autocvar_g_lms_extra_lives;
bool autocvar_g_lms_join_anytime;
int autocvar_g_lms_last_join;
  #define autocvar_g_lms_lives_override cvar("g_lms_lives_override")
float autocvar_g_lms_regenerate;
bool autocvar_g_lms_regenerate;
  #define autocvar_g_maplist cvar_string("g_maplist")
float autocvar_g_maplist_check_waypoints;
float autocvar_g_maplist_index;
bool autocvar_g_maplist_check_waypoints;
int autocvar_g_maplist_index;
  string autocvar_g_maplist_mostrecent;
float autocvar_g_maplist_mostrecent_count;
float autocvar_g_maplist_selectrandom;
int autocvar_g_maplist_mostrecent_count;
bool autocvar_g_maplist_selectrandom;
  float autocvar_g_maplist_shuffle;
  #define autocvar_g_maplist_votable cvar("g_maplist_votable")
float autocvar_g_maplist_votable_abstain;
bool autocvar_g_maplist_votable_abstain;
  float autocvar_g_maplist_votable_keeptwotime;
float autocvar_g_maplist_votable_nodetail;
bool autocvar_g_maplist_votable_nodetail;
  string autocvar_g_maplist_votable_screenshot_dir;
float autocvar_g_maplist_votable_suggestions;
float autocvar_g_maplist_votable_suggestions_override_mostrecent;
bool autocvar_g_maplist_votable_suggestions;
bool autocvar_g_maplist_votable_suggestions_override_mostrecent;
  float autocvar_g_maplist_votable_timeout;
float autocvar_g_maxplayers;
int autocvar_g_maxplayers;
  float autocvar_g_maxplayers_spectator_blocktime;
  float autocvar_g_maxpushtime;
  float autocvar_g_maxspeed;
  float autocvar_g_midair_shieldtime;
  #define autocvar_g_instagib cvar("g_instagib")
float autocvar_g_instagib_ammo_drop;
float autocvar_g_instagib_extralives;
int autocvar_g_instagib_ammo_drop;
int autocvar_g_instagib_extralives;
  float autocvar_g_instagib_speed_highspeed;
  float autocvar_g_instagib_invis_alpha;
  #define autocvar_g_mirrordamage cvar("g_mirrordamage")
  #define autocvar_g_mirrordamage_virtual cvar("g_mirrordamage_virtual")
  
  float autocvar_g_movement_highspeed = 1;
float autocvar_g_multijump;
int autocvar_g_multijump;
  float autocvar_g_multijump_add;
  float autocvar_g_multijump_speed;
  string autocvar_g_mutatormsg;
  float autocvar_g_nexball_basketball_bouncefactor;
  float autocvar_g_nexball_basketball_bouncestop;
  float autocvar_g_nexball_basketball_carrier_highspeed;
float autocvar_g_nexball_basketball_meter;
bool autocvar_g_nexball_basketball_meter;
  float autocvar_g_nexball_basketball_meter_maxpower;
  float autocvar_g_nexball_basketball_meter_minpower;
  float autocvar_g_nexball_delay_collect;
@@@ -419,79 -419,79 +419,79 @@@ float autocvar_g_nexball_delay_goal
  float autocvar_g_nexball_delay_start;
  float autocvar_g_nexball_football_bouncefactor;
  float autocvar_g_nexball_football_bouncestop;
float autocvar_g_nexball_goalleadlimit;
int autocvar_g_nexball_goalleadlimit;
  #define autocvar_g_nexball_goallimit cvar("g_nexball_goallimit")
float autocvar_g_nexball_radar_showallplayers;
float autocvar_g_nexball_sound_bounce;
float autocvar_g_nexball_trail_color;
bool autocvar_g_nexball_radar_showallplayers;
bool autocvar_g_nexball_sound_bounce;
int autocvar_g_nexball_trail_color;
  //float autocvar_g_nick_flood_penalty;
float autocvar_g_nick_flood_penalty_red;
float autocvar_g_nick_flood_penalty_yellow;
int autocvar_g_nick_flood_penalty_red;
int autocvar_g_nick_flood_penalty_yellow;
  //float autocvar_g_nick_flood_timeout;
float autocvar_g_nix_with_healtharmor;
float autocvar_g_nix_with_blaster;
float autocvar_g_nix_with_powerups;
float autocvar_g_nodepthtestitems;
float autocvar_g_nodepthtestplayers;
float autocvar_g_norecoil;
bool autocvar_g_nix_with_healtharmor;
bool autocvar_g_nix_with_blaster;
bool autocvar_g_nix_with_powerups;
bool autocvar_g_nodepthtestitems;
bool autocvar_g_nodepthtestplayers;
bool autocvar_g_norecoil;
  float autocvar_g_onslaught_cp_buildhealth;
  float autocvar_g_onslaught_cp_buildtime;
  float autocvar_g_onslaught_cp_health;
  float autocvar_g_onslaught_cp_regen;
  float autocvar_g_onslaught_gen_health;
float autocvar_g_pickup_cells_max;
float autocvar_g_pickup_plasma_max;
float autocvar_g_pickup_fuel_max;
float autocvar_g_pickup_items;
float autocvar_g_pickup_nails_max;
float autocvar_g_pickup_rockets_max;
float autocvar_g_pickup_shells_max;
int autocvar_g_pickup_cells_max;
int autocvar_g_pickup_plasma_max;
int autocvar_g_pickup_fuel_max;
int autocvar_g_pickup_items;
int autocvar_g_pickup_nails_max;
int autocvar_g_pickup_rockets_max;
int autocvar_g_pickup_shells_max;
  float autocvar_g_player_alpha;
  float autocvar_g_player_brightness;
float autocvar_g_playerclip_collisions;
float autocvar_g_powerups;
float autocvar_g_projectiles_damage;
float autocvar_g_projectiles_keep_owner;
float autocvar_g_projectiles_newton_style;
bool autocvar_g_playerclip_collisions;
int autocvar_g_powerups;
int autocvar_g_projectiles_damage;
bool autocvar_g_projectiles_keep_owner;
int autocvar_g_projectiles_newton_style;
  float autocvar_g_projectiles_newton_style_2_maxfactor;
  float autocvar_g_projectiles_newton_style_2_minfactor;
float autocvar_g_projectiles_spread_style;
int autocvar_g_projectiles_spread_style;
  #define autocvar_g_race_laps_limit cvar("g_race_laps_limit")
  float autocvar_g_race_qualifying_timelimit;
  float autocvar_g_race_qualifying_timelimit_override;
float autocvar_g_race_teams;
int autocvar_g_race_teams;
  float autocvar_g_respawn_delay_small;
float autocvar_g_respawn_delay_small_count;
int autocvar_g_respawn_delay_small_count;
  float autocvar_g_respawn_delay_large;
float autocvar_g_respawn_delay_large_count;
int autocvar_g_respawn_delay_large_count;
  float autocvar_g_respawn_delay_max;
float autocvar_g_respawn_ghosts;
bool autocvar_g_respawn_ghosts;
  float autocvar_g_respawn_ghosts_maxtime;
  float autocvar_g_respawn_ghosts_speed;
float autocvar_g_respawn_waves;
float autocvar_g_running_guns;
float autocvar_g_shootfromcenter;
float autocvar_g_shootfromclient;
float autocvar_g_shootfromeye;
int autocvar_g_respawn_waves;
bool autocvar_g_running_guns;
bool autocvar_g_shootfromcenter;
int autocvar_g_shootfromclient;
bool autocvar_g_shootfromeye;
  string autocvar_g_shootfromfixedorigin;
float autocvar_g_showweaponspawns;
float autocvar_g_spawn_alloweffects;
int autocvar_g_showweaponspawns;
bool autocvar_g_spawn_alloweffects;
  float autocvar_g_spawn_furthest;
float autocvar_g_spawn_useallspawns;
float autocvar_g_spawnpoints_auto_move_out_of_solid;
bool autocvar_g_spawn_useallspawns;
bool autocvar_g_spawnpoints_auto_move_out_of_solid;
  #define autocvar_g_spawnshieldtime cvar("g_spawnshieldtime")
float autocvar_g_tdm_team_spawns;
float autocvar_g_tdm_point_limit;
float autocvar_g_tdm_point_leadlimit;
float autocvar_g_tdm_teams;
float autocvar_g_tdm_teams_override;
bool autocvar_g_tdm_team_spawns;
int autocvar_g_tdm_point_limit;
int autocvar_g_tdm_point_leadlimit;
int autocvar_g_tdm_teams;
int autocvar_g_tdm_teams_override;
  float autocvar_g_teamdamage_resetspeed;
  float autocvar_g_teamdamage_threshold;
float autocvar_g_telefrags;
float autocvar_g_telefrags_avoid;
float autocvar_g_telefrags_teamplay;
bool autocvar_g_telefrags;
bool autocvar_g_telefrags_avoid;
bool autocvar_g_telefrags_teamplay;
  float autocvar_g_teleport_maxspeed;
float autocvar_g_throughfloor_debug;
bool autocvar_g_throughfloor_debug;
  float autocvar_g_throughfloor_damage;
  float autocvar_g_throughfloor_force;
  float autocvar_g_throughfloor_damage_max_stddev;
@@@ -504,10 -504,10 +504,10 @@@ float autocvar_g_triggerimpulse_accel_m
  float autocvar_g_triggerimpulse_accel_power;
  float autocvar_g_triggerimpulse_directional_multiplier;
  float autocvar_g_triggerimpulse_radial_multiplier;
float autocvar_g_turrets;
bool autocvar_g_turrets;
  float autocvar_g_turrets_aimidle_delay;
float autocvar_g_turrets_nofire;
float autocvar_g_turrets_reloadcvars;
bool autocvar_g_turrets_nofire;
bool autocvar_g_turrets_reloadcvars;
  float autocvar_g_turrets_targetscan_maxdelay;
  float autocvar_g_turrets_targetscan_mindelay;
  float autocvar_g_turrets_unit_ewheel_speed_fast;
@@@ -545,10 -545,10 +545,10 @@@ float autocvar_g_turrets_unit_walker_tu
  float autocvar_g_turrets_unit_walker_turn_run;
  float autocvar_g_turrets_unit_walker_turn_strafe;
  float autocvar_g_turrets_unit_walker_turn_swim;
float autocvar_g_use_ammunition;
float autocvar_g_waypointeditor;
float autocvar_g_waypointeditor_auto;
float autocvar_g_waypoints_for_items;
bool autocvar_g_use_ammunition;
bool autocvar_g_waypointeditor;
int autocvar_g_waypointeditor_auto;
int autocvar_g_waypoints_for_items;
  float autocvar_g_weapon_charge_colormod_blue_full;
  float autocvar_g_weapon_charge_colormod_blue_half;
  float autocvar_g_weapon_charge_colormod_green_full;
@@@ -557,138 -557,158 +557,138 @@@ float autocvar_g_weapon_charge_colormod
  float autocvar_g_weapon_charge_colormod_red_full;
  float autocvar_g_weapon_charge_colormod_red_half;
  #define autocvar_g_weapon_stay cvar("g_weapon_stay")
float autocvar_g_weapon_throwable;
bool autocvar_g_weapon_throwable;
  #define autocvar_g_weaponarena cvar_string("g_weaponarena")
  string autocvar_g_xonoticversion;
  float autocvar_gameversion;
  float autocvar_gameversion_min;
  float autocvar_gameversion_max;
  string autocvar_hostname;
float autocvar_lastlevel;
float autocvar_leadlimit;
float autocvar_leadlimit_and_fraglimit;
float autocvar_leadlimit_override;
float autocvar_loddebug;
float autocvar_minplayers;
bool autocvar_lastlevel;
int autocvar_leadlimit;
int autocvar_leadlimit_and_fraglimit;
int autocvar_leadlimit_override;
int autocvar_loddebug;
int autocvar_minplayers;
  string autocvar_nextmap;
float autocvar_prvm_backtraceforwarnings;
bool autocvar_prvm_backtraceforwarnings;
  string autocvar_quit_and_redirect;
  float autocvar_quit_and_redirect_timer;
float autocvar_quit_when_empty;
bool autocvar_quit_when_empty;
  float autocvar_r_showbboxes;
float autocvar_rescan_pending;
float autocvar_samelevel;
int autocvar_rescan_pending;
bool autocvar_samelevel;
  string autocvar_sessionid;
  #define autocvar_skill cvar("skill")
  float autocvar_skill_auto;
  #define autocvar_slowmo cvar("slowmo")
  float autocvar_snd_soundradius;
float autocvar_spawn_debug;
float autocvar_speedmeter;
int autocvar_spawn_debug;
bool autocvar_speedmeter;
 -float autocvar_sv_accelerate;
  float autocvar_sv_accuracy_data_share = 1;
  string autocvar_sv_adminnick;
- float autocvar_sv_autoscreenshot;
- float autocvar_sv_cheats;
 -float autocvar_sv_airaccel_qw;
 -float autocvar_sv_airaccel_qw_stretchfactor;
 -float autocvar_sv_airaccel_sideways_friction;
 -float autocvar_sv_airaccelerate;
 -float autocvar_sv_aircontrol;
 -float autocvar_sv_aircontrol_penalty;
 -float autocvar_sv_aircontrol_power;
 -float autocvar_sv_airspeedlimit_nonqw;
 -float autocvar_sv_airstopaccelerate;
 -float autocvar_sv_airstrafeaccel_qw;
 -float autocvar_sv_airstrafeaccelerate;
+ bool autocvar_sv_autoscreenshot;
+ int autocvar_sv_cheats;
  float autocvar_sv_clientcommand_antispam_time;
float autocvar_sv_clientcommand_antispam_count;
float autocvar_sv_curl_serverpackages_auto;
float autocvar_sv_db_saveasdump;
float autocvar_sv_defaultcharacter;
int autocvar_sv_clientcommand_antispam_count;
bool autocvar_sv_curl_serverpackages_auto;
bool autocvar_sv_db_saveasdump;
bool autocvar_sv_defaultcharacter;
  string autocvar_sv_defaultplayercolors;
  string autocvar_sv_defaultplayermodel;
  string autocvar_sv_defaultplayermodel_blue;
  string autocvar_sv_defaultplayermodel_pink;
  string autocvar_sv_defaultplayermodel_red;
  string autocvar_sv_defaultplayermodel_yellow;
float autocvar_sv_defaultplayerskin;
int autocvar_sv_defaultplayerskin;
  float autocvar_sv_dodging_delay;
  float autocvar_sv_dodging_height_threshold;
  float autocvar_sv_dodging_horiz_speed;
  float autocvar_sv_dodging_horiz_speed_frozen;
  float autocvar_sv_dodging_ramp_time;
float autocvar_sv_dodging_sound;
bool autocvar_sv_dodging_sound;
  float autocvar_sv_dodging_up_speed;
  float autocvar_sv_dodging_wall_distance_threshold;
float autocvar_sv_dodging_wall_dodging;
float autocvar_sv_dodging_frozen;
float autocvar_sv_dodging_frozen_doubletap;
float autocvar_sv_doublejump;
float autocvar_sv_eventlog;
float autocvar_sv_eventlog_console;
float autocvar_sv_eventlog_files;
float autocvar_sv_eventlog_files_counter;
bool autocvar_sv_dodging_wall_dodging;
bool autocvar_sv_dodging_frozen;
bool autocvar_sv_dodging_frozen_doubletap;
bool autocvar_sv_doublejump;
bool autocvar_sv_eventlog;
bool autocvar_sv_eventlog_console;
bool autocvar_sv_eventlog_files;
int autocvar_sv_eventlog_files_counter;
  string autocvar_sv_eventlog_files_nameprefix;
  string autocvar_sv_eventlog_files_namesuffix;
float autocvar_sv_eventlog_files_timestamps;
bool autocvar_sv_eventlog_files_timestamps;
 -float autocvar_sv_friction;
  float autocvar_sv_friction_on_land;
  float autocvar_sv_gameplayfix_q2airaccelerate;
float autocvar_sv_gentle;
int autocvar_sv_gentle;
  #define autocvar_sv_gravity cvar("sv_gravity")
  string autocvar_sv_intermission_cdtrack;
  string autocvar_sv_jumpspeedcap_max;
  float autocvar_sv_jumpspeedcap_max_disable_on_ramps;
  string autocvar_sv_jumpspeedcap_min;
  float autocvar_sv_jumpvelocity;
float autocvar_sv_logscores_bots;
float autocvar_sv_logscores_console;
float autocvar_sv_logscores_file;
bool autocvar_sv_logscores_bots;
bool autocvar_sv_logscores_console;
bool autocvar_sv_logscores_file;
  string autocvar_sv_logscores_filename;
  float autocvar_sv_mapchange_delay;
  float autocvar_sv_maxairspeed;
 -float autocvar_sv_maxairstrafespeed;
  float autocvar_sv_maxspeed;
  string autocvar_sv_motd;
float autocvar_sv_precacheplayermodels;
bool autocvar_sv_precacheplayermodels;
  //float autocvar_sv_precacheweapons; // WEAPONTODO?
float autocvar_sv_q3acompat_machineshotgunswap;
float autocvar_sv_ready_restart;
float autocvar_sv_ready_restart_after_countdown;
float autocvar_sv_ready_restart_repeatable;
float autocvar_sv_servermodelsonly;
float autocvar_sv_spectate;
bool autocvar_sv_q3acompat_machineshotgunswap;
bool autocvar_sv_ready_restart;
bool autocvar_sv_ready_restart_after_countdown;
bool autocvar_sv_ready_restart_repeatable;
bool autocvar_sv_servermodelsonly;
int autocvar_sv_spectate;
  float autocvar_sv_spectator_speed_multiplier;
float autocvar_sv_status_privacy;
bool autocvar_sv_status_privacy;
  float autocvar_sv_stepheight;
 -float autocvar_sv_stopspeed;
  float autocvar_sv_strengthsound_antispam_refire_threshold;
  float autocvar_sv_strengthsound_antispam_time;
float autocvar_sv_teamnagger;
float autocvar_sv_timeout;
bool autocvar_sv_teamnagger;
bool autocvar_sv_timeout;
  float autocvar_sv_timeout_leadtime;
  float autocvar_sv_timeout_length;
float autocvar_sv_timeout_number;
int autocvar_sv_timeout_number;
  float autocvar_sv_timeout_resumetime;
float autocvar_sv_vote_call;
float autocvar_sv_vote_change;
bool autocvar_sv_vote_call;
bool autocvar_sv_vote_change;
  string autocvar_sv_vote_commands;
float autocvar_sv_vote_gametype;
bool autocvar_sv_vote_gametype;
  float autocvar_sv_vote_gametype_timeout;
  string autocvar_sv_vote_gametype_options;
  float autocvar_sv_vote_gametype_keeptwotime;
float autocvar_sv_vote_gametype_default_current;
float autocvar_sv_vote_limit;
bool autocvar_sv_vote_gametype_default_current;
int autocvar_sv_vote_limit;
  float autocvar_sv_vote_majority_factor;
  float autocvar_sv_vote_majority_factor_of_voted;
float autocvar_sv_vote_master;
float autocvar_sv_vote_master_callable;
bool autocvar_sv_vote_master;
bool autocvar_sv_vote_master_callable;
  string autocvar_sv_vote_master_commands;
  string autocvar_sv_vote_master_password;
float autocvar_sv_vote_master_playerlimit;
float autocvar_sv_vote_no_stops_vote;
float autocvar_sv_vote_nospectators;
int autocvar_sv_vote_master_playerlimit;
bool autocvar_sv_vote_no_stops_vote;
int autocvar_sv_vote_nospectators;
  //string autocvar_sv_vote_only_commands;
float autocvar_sv_vote_override_mostrecent;
float autocvar_sv_vote_singlecount;
bool autocvar_sv_vote_override_mostrecent;
bool autocvar_sv_vote_singlecount;
  float autocvar_sv_vote_stop;
  float autocvar_sv_vote_timeout;
  float autocvar_sv_vote_wait;
float autocvar_sv_vote_gamestart;
bool autocvar_sv_vote_gamestart;
 -float autocvar_sv_warsowbunny_accel;
 -float autocvar_sv_warsowbunny_airforwardaccel;
 -float autocvar_sv_warsowbunny_backtosideratio;
 -float autocvar_sv_warsowbunny_topspeed;
 -float autocvar_sv_warsowbunny_turnaccel;
  float autocvar_sv_waypointsprite_deadlifetime;
  float autocvar_sv_waypointsprite_deployed_lifetime;
  float autocvar_sv_waypointsprite_limitedrange;
  string autocvar_sv_weaponstats_file;
  float autocvar_sv_gibhealth;
  float autocvar_sys_ticrate;
float autocvar_teamplay_lockonrestart;
float autocvar_teamplay_mode;
bool autocvar_teamplay_lockonrestart;
int autocvar_teamplay_mode;
  #define autocvar_timelimit cvar("timelimit")
  #define autocvar_timelimit_override cvar("timelimit_override")
  float autocvar_timelimit_increment;
@@@ -696,66 -716,66 +696,66 @@@ float autocvar_timelimit_decrement
  float autocvar_timelimit_min;
  float autocvar_timelimit_max;
  float autocvar_timelimit_overtime;
float autocvar_timelimit_overtimes;
int autocvar_timelimit_overtimes;
  float autocvar_timelimit_suddendeath;
  #define autocvar_utf8_enable cvar("utf8_enable")
float autocvar_waypoint_benchmark;
float autocvar_sv_gameplayfix_gravityunaffectedbyticrate;
bool autocvar_waypoint_benchmark;
bool autocvar_sv_gameplayfix_gravityunaffectedbyticrate;
  float autocvar_g_trueaim_minrange;
float autocvar_g_debug_defaultsounds;
bool autocvar_g_debug_defaultsounds;
  float autocvar_g_grab_range;
float autocvar_g_sandbox_info;
float autocvar_g_sandbox_readonly;
int autocvar_g_sandbox_info;
bool autocvar_g_sandbox_readonly;
  string autocvar_g_sandbox_storage_name;
  float autocvar_g_sandbox_storage_autosave;
float autocvar_g_sandbox_storage_autoload;
bool autocvar_g_sandbox_storage_autoload;
  float autocvar_g_sandbox_editor_flood;
float autocvar_g_sandbox_editor_maxobjects;
float autocvar_g_sandbox_editor_free;
int autocvar_g_sandbox_editor_maxobjects;
int autocvar_g_sandbox_editor_free;
  float autocvar_g_sandbox_editor_distance_spawn;
  float autocvar_g_sandbox_editor_distance_edit;
  float autocvar_g_sandbox_object_scale_min;
  float autocvar_g_sandbox_object_scale_max;
  float autocvar_g_sandbox_object_material_velocity_min;
  float autocvar_g_sandbox_object_material_velocity_factor;
float autocvar_g_max_info_autoscreenshot;
float autocvar_physics_ode;
float autocvar_g_physical_items;
int autocvar_g_max_info_autoscreenshot;
bool autocvar_physics_ode;
int autocvar_g_physical_items;
  float autocvar_g_physical_items_damageforcescale;
  float autocvar_g_physical_items_reset;
  float autocvar_g_monsters;
float autocvar_g_monsters_edit;
float autocvar_g_monsters_sounds;
bool autocvar_g_monsters_edit;
bool autocvar_g_monsters_sounds;
  float autocvar_g_monsters_think_delay;
float autocvar_g_monsters_max;
float autocvar_g_monsters_max_perplayer;
int autocvar_g_monsters_max;
int autocvar_g_monsters_max_perplayer;
  float autocvar_g_monsters_target_range;
float autocvar_g_monsters_target_infront;
bool autocvar_g_monsters_target_infront;
  float autocvar_g_monsters_attack_range;
float autocvar_g_monsters_score_kill;
float autocvar_g_monsters_score_spawned;
float autocvar_g_monsters_typefrag;
float autocvar_g_monsters_owners;
int autocvar_g_monsters_score_kill;
int autocvar_g_monsters_score_spawned;
bool autocvar_g_monsters_typefrag;
bool autocvar_g_monsters_owners;
  float autocvar_g_monsters_miniboss_chance;
  float autocvar_g_monsters_miniboss_healthboost;
  float autocvar_g_monsters_drop_time;
  float autocvar_g_monsters_spawnshieldtime;
float autocvar_g_monsters_teams;
bool autocvar_g_monsters_teams;
  float autocvar_g_monsters_respawn_delay;
float autocvar_g_monsters_respawn;
bool autocvar_g_monsters_respawn;
  float autocvar_g_monsters_armor_blockpercent;
  float autocvar_g_touchexplode_radius;
  float autocvar_g_touchexplode_damage;
  float autocvar_g_touchexplode_edgedamage;
  float autocvar_g_touchexplode_force;
  float autocvar_g_invasion_round_timelimit;
float autocvar_g_invasion_teams;
float autocvar_g_invasion_team_spawns;
int autocvar_g_invasion_teams;
bool autocvar_g_invasion_team_spawns;
  float autocvar_g_invasion_spawnpoint_spawn_delay;
  #define autocvar_g_invasion_point_limit cvar("g_invasion_point_limit")
  float autocvar_g_invasion_warmup;
float autocvar_g_invasion_monster_count;
float autocvar_g_invasion_zombies_only;
int autocvar_g_invasion_monster_count;
bool autocvar_g_invasion_zombies_only;
  float autocvar_g_invasion_spawn_delay;
  #define autocvar_g_bloodloss cvar("g_bloodloss")
  float autocvar_g_random_gravity_negative_chance;
@@@ -764,11 -784,11 +764,11 @@@ float autocvar_g_random_gravity_max
  float autocvar_g_random_gravity_positive;
  float autocvar_g_random_gravity_negative;
  float autocvar_g_random_gravity_delay;
float autocvar_g_nades;
bool autocvar_g_nades;
  vector autocvar_g_nades_throw_offset;
float autocvar_g_nades_spawn;
float autocvar_g_nades_spawn_count;
float autocvar_g_nades_client_select;
bool autocvar_g_nades_spawn;
int autocvar_g_nades_spawn_count;
bool autocvar_g_nades_client_select;
  float autocvar_g_nades_nade_lifetime;
  float autocvar_g_nades_nade_minforce;
  float autocvar_g_nades_nade_maxforce;
@@@ -778,39 -798,39 +778,39 @@@ float autocvar_g_nades_nade_damage
  float autocvar_g_nades_nade_edgedamage;
  float autocvar_g_nades_nade_radius;
  float autocvar_g_nades_nade_force;
float autocvar_g_nades_nade_newton_style;
int autocvar_g_nades_nade_newton_style;
  int autocvar_g_nades_napalm_ball_count;
  float autocvar_g_nades_napalm_ball_spread;
  float autocvar_g_nades_napalm_ball_damage;
  float autocvar_g_nades_napalm_ball_damageforcescale;
  float autocvar_g_nades_napalm_ball_lifetime;
  float autocvar_g_nades_napalm_ball_radius;
float autocvar_g_nades_napalm_blast;
bool autocvar_g_nades_napalm_blast;
  float autocvar_g_nades_napalm_fountain_lifetime;
  float autocvar_g_nades_napalm_fountain_delay;
  float autocvar_g_nades_napalm_fountain_radius;
  float autocvar_g_nades_napalm_fountain_damage;
  float autocvar_g_nades_napalm_fountain_edgedamage;
  float autocvar_g_nades_napalm_burntime;
float autocvar_g_nades_napalm_selfdamage;
float autocvar_g_nades_nade_type;
float autocvar_g_nades_bonus_type;
float autocvar_g_nades_bonus;
float autocvar_g_nades_bonus_onstrength;
float autocvar_g_nades_bonus_client_select;
float autocvar_g_nades_bonus_max;
float autocvar_g_nades_bonus_score_max;
float autocvar_g_nades_bonus_score_time;
float autocvar_g_nades_bonus_score_time_flagcarrier;
float autocvar_g_nades_bonus_score_minor;
float autocvar_g_nades_bonus_score_low;
float autocvar_g_nades_bonus_score_high;
float autocvar_g_nades_bonus_score_medium;
float autocvar_g_nades_bonus_score_spree;
bool autocvar_g_nades_napalm_selfdamage;
int autocvar_g_nades_nade_type;
int autocvar_g_nades_bonus_type;
bool autocvar_g_nades_bonus;
bool autocvar_g_nades_bonus_onstrength;
bool autocvar_g_nades_bonus_client_select;
int autocvar_g_nades_bonus_max;
int autocvar_g_nades_bonus_score_max;
int autocvar_g_nades_bonus_score_time;
int autocvar_g_nades_bonus_score_time_flagcarrier;
int autocvar_g_nades_bonus_score_minor;
int autocvar_g_nades_bonus_score_low;
int autocvar_g_nades_bonus_score_high;
int autocvar_g_nades_bonus_score_medium;
int autocvar_g_nades_bonus_score_spree;
  float autocvar_g_nades_ice_freeze_time;
  float autocvar_g_nades_ice_health;
float autocvar_g_nades_ice_explode;
float autocvar_g_nades_ice_teamcheck;
bool autocvar_g_nades_ice_explode;
bool autocvar_g_nades_ice_teamcheck;
  float autocvar_g_nades_heal_time;
  float autocvar_g_nades_heal_rate;
  float autocvar_g_nades_heal_friend;
@@@ -820,30 -840,27 +820,30 @@@ float autocvar_g_nades_pokenade_monster
  float autocvar_g_campcheck_damage;
  float autocvar_g_campcheck_distance;
  float autocvar_g_campcheck_interval;
float autocvar_g_jump_grunt;
float autocvar_g_overkill_powerups_replace;
bool autocvar_g_jump_grunt;
bool autocvar_g_overkill_powerups_replace;
  float autocvar_g_overkill_superguns_respawn_time;
float autocvar_g_overkill_100h_anyway;
float autocvar_g_overkill_100a_anyway;
float autocvar_g_overkill_ammo_charge;
bool autocvar_g_overkill_100h_anyway;
bool autocvar_g_overkill_100a_anyway;
bool autocvar_g_overkill_ammo_charge;
  float autocvar_g_overkill_ammo_charge_notice;
  float autocvar_g_overkill_ammo_charge_limit;
  float autocvar_g_spawn_near_teammate_distance;
float autocvar_g_spawn_near_teammate_ignore_spawnpoint;
bool autocvar_g_spawn_near_teammate_ignore_spawnpoint;
  float autocvar_g_spawn_near_teammate_ignore_spawnpoint_delay;
  float autocvar_g_spawn_near_teammate_ignore_spawnpoint_delay_death;
- float autocvar_g_spawn_near_teammate_ignore_spawnpoint_check_health;
- float autocvar_g_spawn_near_teammate_ignore_spawnpoint_closetodeath;
- float autocvar_g_physics_clientselect;
+ int autocvar_g_spawn_near_teammate_ignore_spawnpoint_check_health;
+ bool autocvar_g_spawn_near_teammate_ignore_spawnpoint_closetodeath;
++bool autocvar_g_physics_clientselect;
 +string autocvar_g_physics_clientselect_options;
 +string autocvar_g_physics_clientselect_default;
  float autocvar_g_buffs_waypoint_distance;
float autocvar_g_buffs_randomize;
bool autocvar_g_buffs_randomize;
  float autocvar_g_buffs_random_lifetime;
float autocvar_g_buffs_random_location;
float autocvar_g_buffs_random_location_attempts;
float autocvar_g_buffs_spawn_count;
float autocvar_g_buffs_replace_powerups;
bool autocvar_g_buffs_random_location;
int autocvar_g_buffs_random_location_attempts;
int autocvar_g_buffs_spawn_count;
bool autocvar_g_buffs_replace_powerups;
  float autocvar_g_buffs_cooldown_activate;
  float autocvar_g_buffs_cooldown_respawn;
  float autocvar_g_buffs_resistance_blockpercent;
@@@ -866,5 -883,4 +866,5 @@@ float autocvar_g_buffs_vampire_damage_s
  float autocvar_g_buffs_invisible_alpha;
  float autocvar_g_buffs_flight_gravity;
  float autocvar_g_buffs_jump_height;
 +
  #endif
index 574d7f54b53fa0c9a38a64853bd5b8fb1735a4ac,67c57ae16dfb1d51e2a213d0d02611b8200e534c..37242874e8c5c5f7ce926584424e31e5b89e2de8
@@@ -1,3 -1,7 +1,7 @@@
+ #include "_all.qh"
+ #include "bot/bot.qh"
+ #include "g_damage.qh"
  #if defined(CSQC)
  #elif defined(MENUQC)
  #elif defined(SVQC)
@@@ -9,7 -13,7 +13,7 @@@
      #include "../common/util.qh"
      #include "../common/animdecide.qh"
      #include "../common/monsters/sv_monsters.qh"
-     #include "../common/weapons/weapons.qh"
+     #include "../common/weapons/all.qh"
      #include "t_items.qh"
      #include "autocvars.qh"
      #include "defs.qh"
  .float wasFlying;
  .float spectatorspeed;
  
 +// client side physics
 +float Physics_Valid(string thecvar)
 +{
 +      if(!autocvar_g_physics_clientselect) { return false; }
 +
 +      string l = strcat(" ", autocvar_g_physics_clientselect_options, " ");
 +
 +      if(strstrofs(l, strcat(" ", thecvar, " "), 0) >= 0)
 +              return true;
 +
 +      return false;
 +}
 +
 +float Physics_ClientOption(entity pl, string option)
 +{
 +      if(Physics_Valid(pl.cvar_cl_physics))
 +      {
 +              string var = sprintf("g_physics_%s_%s", pl.cvar_cl_physics, option);
 +              if(cvar_type(var) & 1)
 +                      return cvar(var);
 +      }
 +      if(autocvar_g_physics_clientselect && autocvar_g_physics_clientselect_default)
 +      {
 +              string var = sprintf("g_physics_%s_%s", autocvar_g_physics_clientselect_default, option);
 +              if(cvar_type(var) & 1)
 +                      return cvar(var);
 +      }
 +      return cvar(strcat("sv_", option));
 +}
 +
  /*
  =============
  PlayerJump
@@@ -82,8 -56,8 +86,8 @@@ float PlayerJump (void
        if(self.player_blocked)
                return true; // no jumping while blocked
  
 -      float doublejump = false;
 -      float mjumpheight = autocvar_sv_jumpvelocity;
 +      bool doublejump = false;
 +      float mjumpheight = self.stat_sv_jumpvelocity;
  
        player_multijump = doublejump;
        player_jumpheight = mjumpheight;
@@@ -523,7 -497,7 +527,7 @@@ void CPM_PM_Aircontrol(vector wishdir, 
                return;
  #endif
  
 -      k *= bound(0, wishspeed / autocvar_sv_maxairspeed, 1);
 +      k *= bound(0, wishspeed / self.stat_sv_maxairspeed, 1);
  
        zspeed = self.velocity.z;
        self.velocity_z = 0;
  
        if(dot > 0) // we can't change direction while slowing down
        {
 -              k *= pow(dot, autocvar_sv_aircontrol_power)*frametime;
 -              xyspeed = max(0, xyspeed - autocvar_sv_aircontrol_penalty * sqrt(max(0, 1 - dot*dot)) * k/32);
 -              k *= autocvar_sv_aircontrol;
 +              k *= pow(dot, self.stat_sv_aircontrol_power)*frametime;
 +              xyspeed = max(0, xyspeed - self.stat_sv_aircontrol_penalty * sqrt(max(0, 1 - dot*dot)) * k/32);
 +              k *= self.stat_sv_aircontrol;
                self.velocity = normalize(self.velocity * xyspeed + wishdir * k);
        }
  
@@@ -645,26 -619,26 +649,26 @@@ void PM_AirAccelerate(vector wishdir, f
  
        if(wishspeed > curspeed * 1.01)
        {
 -              wishspeed = min(wishspeed, curspeed + autocvar_sv_warsowbunny_airforwardaccel * self.stat_sv_maxspeed * frametime);
 +              wishspeed = min(wishspeed, curspeed + self.stat_sv_warsowbunny_airforwardaccel * self.stat_sv_maxspeed * frametime);
        }
        else
        {
 -              f = max(0, (autocvar_sv_warsowbunny_topspeed - curspeed) / (autocvar_sv_warsowbunny_topspeed - self.stat_sv_maxspeed));
 -              wishspeed = max(curspeed, self.stat_sv_maxspeed) + autocvar_sv_warsowbunny_accel * f * self.stat_sv_maxspeed * frametime;
 +              f = max(0, (self.stat_sv_warsowbunny_topspeed - curspeed) / (self.stat_sv_warsowbunny_topspeed - self.stat_sv_maxspeed));
 +              wishspeed = max(curspeed, self.stat_sv_maxspeed) + self.stat_sv_warsowbunny_accel * f * self.stat_sv_maxspeed * frametime;
        }
        wishvel = wishdir * wishspeed;
        acceldir = wishvel - curvel;
        addspeed = vlen(acceldir);
        acceldir = normalize(acceldir);
  
 -      accelspeed = min(addspeed, autocvar_sv_warsowbunny_turnaccel * self.stat_sv_maxspeed * frametime);
 +      accelspeed = min(addspeed, self.stat_sv_warsowbunny_turnaccel * self.stat_sv_maxspeed * frametime);
  
 -      if(autocvar_sv_warsowbunny_backtosideratio < 1)
 +      if(self.stat_sv_warsowbunny_backtosideratio < 1)
        {
                curdir = normalize(curvel);
                dot = acceldir * curdir;
                if(dot < 0)
 -                      acceldir = acceldir - (1 - autocvar_sv_warsowbunny_backtosideratio) * dot * curdir;
 +                      acceldir = acceldir - (1 - self.stat_sv_warsowbunny_backtosideratio) * dot * curdir;
        }
  
        self.velocity += accelspeed * acceldir;
@@@ -689,32 -663,6 +693,6 @@@ void SpecialCommand(
  #endif
  }
  
- float speedaward_speed;
- string speedaward_holder;
- string speedaward_uid;
- void race_send_speedaward(float msg)
- {
-       // send the best speed of the round
-       WriteByte(msg, SVC_TEMPENTITY);
-       WriteByte(msg, TE_CSQC_RACE);
-       WriteByte(msg, RACE_NET_SPEED_AWARD);
-       WriteInt24_t(msg, floor(speedaward_speed+0.5));
-       WriteString(msg, speedaward_holder);
- }
- float speedaward_alltimebest;
- string speedaward_alltimebest_holder;
- string speedaward_alltimebest_uid;
- void race_send_speedaward_alltimebest(float msg)
- {
-       // send the best speed
-       WriteByte(msg, SVC_TEMPENTITY);
-       WriteByte(msg, TE_CSQC_RACE);
-       WriteByte(msg, RACE_NET_SPEED_AWARD_BEST);
-       WriteInt24_t(msg, floor(speedaward_alltimebest+0.5));
-       WriteString(msg, speedaward_alltimebest_holder);
- }
  string GetMapname(void);
  float speedaward_lastupdate;
  float speedaward_lastsent;
@@@ -738,34 -686,13 +716,34 @@@ void SV_PlayerPhysics(
  
        // fix physics stats for g_movement_highspeed
        // TODO maybe rather use maxairspeed? needs testing
 -      self.stat_sv_airaccel_qw = AdjustAirAccelQW(autocvar_sv_airaccel_qw, maxspd_mod);
 -      if(autocvar_sv_airstrafeaccel_qw)
 -              self.stat_sv_airstrafeaccel_qw = AdjustAirAccelQW(autocvar_sv_airstrafeaccel_qw, maxspd_mod);
 +      self.stat_sv_airaccel_qw = AdjustAirAccelQW(Physics_ClientOption(self, "airaccel_qw"), maxspd_mod);
 +      if(Physics_ClientOption(self, "airstrafeaccel_qw"))
 +              self.stat_sv_airstrafeaccel_qw = AdjustAirAccelQW(Physics_ClientOption(self, "airstrafeaccel_qw"), maxspd_mod);
        else
                self.stat_sv_airstrafeaccel_qw = 0;
 -      self.stat_sv_airspeedlimit_nonqw = autocvar_sv_airspeedlimit_nonqw * maxspd_mod;
 -      self.stat_sv_maxspeed = autocvar_sv_maxspeed * maxspd_mod; // also slow walking
 +      self.stat_sv_airspeedlimit_nonqw = Physics_ClientOption(self, "airspeedlimit_nonqw") * maxspd_mod;
 +      self.stat_sv_maxspeed = Physics_ClientOption(self, "maxspeed") * maxspd_mod; // also slow walking
 +      
 +      // fix some new settings
 +      self.stat_sv_airaccel_qw_stretchfactor = Physics_ClientOption(self, "airaccel_qw_stretchfactor");
 +      self.stat_sv_maxairstrafespeed = Physics_ClientOption(self, "maxairstrafespeed");
 +      self.stat_sv_maxairspeed = Physics_ClientOption(self, "maxairspeed");
 +      self.stat_sv_airstrafeaccelerate = Physics_ClientOption(self, "airstrafeaccelerate");
 +      self.stat_sv_warsowbunny_turnaccel = Physics_ClientOption(self, "warsowbunny_turnaccel");
 +      self.stat_sv_airaccel_sideways_friction = Physics_ClientOption(self, "airaccel_sideways_friction");
 +      self.stat_sv_aircontrol = Physics_ClientOption(self, "aircontrol");
 +      self.stat_sv_aircontrol_power = Physics_ClientOption(self, "aircontrol_power");
 +      self.stat_sv_aircontrol_penalty = Physics_ClientOption(self, "aircontrol_penalty");
 +      self.stat_sv_warsowbunny_airforwardaccel = Physics_ClientOption(self, "warsowbunny_airforwardaccel");
 +      self.stat_sv_warsowbunny_topspeed = Physics_ClientOption(self, "warsowbunny_topspeed");
 +      self.stat_sv_warsowbunny_accel = Physics_ClientOption(self, "warsowbunny_accel");
 +      self.stat_sv_warsowbunny_backtosideratio = Physics_ClientOption(self, "warsowbunny_backtosideratio");
 +      self.stat_sv_friction = Physics_ClientOption(self, "friction");
 +      self.stat_sv_accelerate = Physics_ClientOption(self, "accelerate");
 +      self.stat_sv_stopspeed = Physics_ClientOption(self, "stopspeed");
 +      self.stat_sv_airaccelerate = Physics_ClientOption(self, "airaccelerate");
 +      self.stat_sv_airstopaccelerate = Physics_ClientOption(self, "airstopaccelerate");
 +      self.stat_sv_jumpvelocity = Physics_ClientOption(self, "jumpvelocity");
  
      if(self.PlayerPhysplug)
          if(self.PlayerPhysplug())
                maxspd_mod = self.spectatorspeed;
        }
  
 -      spd = max(self.stat_sv_maxspeed, autocvar_sv_maxairspeed) * maxspd_mod * swampspd_mod;
 +      spd = max(self.stat_sv_maxspeed, self.stat_sv_maxairspeed) * maxspd_mod * swampspd_mod;
        if(self.speed != spd)
        {
                self.speed = spd;
                // noclipping or flying
                self.flags &= ~FL_ONGROUND;
  
 -              self.velocity = self.velocity * (1 - frametime * autocvar_sv_friction);
 +              self.velocity = self.velocity * (1 - frametime * self.stat_sv_friction);
                makevectors(self.v_angle);
                //wishvel = v_forward * self.movement_x + v_right * self.movement_y + v_up * self.movement_z;
                wishvel = v_forward * self.movement.x + v_right * self.movement.y + '0 0 1' * self.movement.z;
                if (wishspeed > self.stat_sv_maxspeed*maxspd_mod)
                        wishspeed = self.stat_sv_maxspeed*maxspd_mod;
                if (time >= self.teleport_time)
 -                      PM_Accelerate(wishdir, wishspeed, wishspeed, autocvar_sv_accelerate*maxspd_mod, 1, 0, 0, 0);
 +                      PM_Accelerate(wishdir, wishspeed, wishspeed, self.stat_sv_accelerate*maxspd_mod, 1, 0, 0, 0);
        }
        else if (self.waterlevel >= WATERLEVEL_SWIMMING)
        {
                wishspeed = wishspeed * 0.7;
  
                // water friction
 -              self.velocity = self.velocity * (1 - frametime * autocvar_sv_friction);
 +              self.velocity = self.velocity * (1 - frametime * self.stat_sv_friction);
  
                // water acceleration
 -              PM_Accelerate(wishdir, wishspeed, wishspeed, autocvar_sv_accelerate*maxspd_mod, 1, 0, 0, 0);
 +              PM_Accelerate(wishdir, wishspeed, wishspeed, self.stat_sv_accelerate*maxspd_mod, 1, 0, 0, 0);
        }
        else if (time < self.ladder_time)
        {
                        self.velocity_z += g;
                }
  
 -              self.velocity = self.velocity * (1 - frametime * autocvar_sv_friction);
 +              self.velocity = self.velocity * (1 - frametime * self.stat_sv_friction);
                makevectors(self.v_angle);
                //wishvel = v_forward * self.movement_x + v_right * self.movement_y + v_up * self.movement_z;
                wishvel = v_forward * self.movement.x + v_right * self.movement.y + '0 0 1' * self.movement.z;
                if (time >= self.teleport_time)
                {
                        // water acceleration
 -                      PM_Accelerate(wishdir, wishspeed, wishspeed, autocvar_sv_accelerate*maxspd_mod, 1, 0, 0, 0);
 +                      PM_Accelerate(wishdir, wishspeed, wishspeed, self.stat_sv_accelerate*maxspd_mod, 1, 0, 0, 0);
                }
        }
        else if (self.items & IT_USING_JETPACK)
                makevectors(self.v_angle);
                wishvel = v_forward * self.movement.x + v_right * self.movement.y;
                // add remaining speed as Z component
 -              maxairspd = autocvar_sv_maxairspeed*max(1, maxspd_mod);
 +              maxairspd = self.stat_sv_maxairspeed*max(1, maxspd_mod);
                // fix speedhacks :P
                wishvel = normalize(wishvel) * min(vlen(wishvel) / maxairspd, 1);
                // add the unused velocity as up component
                f = vlen(v);
                if(f > 0)
                {
 -                      if (f < autocvar_sv_stopspeed)
 -                              f = 1 - frametime * (autocvar_sv_stopspeed / f) * autocvar_sv_friction;
 +                      if (f < self.stat_sv_stopspeed)
 +                              f = 1 - frametime * (self.stat_sv_stopspeed / f) * self.stat_sv_friction;
                        else
 -                              f = 1 - frametime * autocvar_sv_friction;
 +                              f = 1 - frametime * self.stat_sv_friction;
                        if (f > 0)
                                self.velocity = self.velocity * f;
                        else
                if (self.crouch)
                        wishspeed = wishspeed * 0.5;
                if (time >= self.teleport_time)
 -                      PM_Accelerate(wishdir, wishspeed, wishspeed, autocvar_sv_accelerate*maxspd_mod, 1, 0, 0, 0);
 +                      PM_Accelerate(wishdir, wishspeed, wishspeed, self.stat_sv_accelerate*maxspd_mod, 1, 0, 0, 0);
        }
        else
        {
  
                if(maxspd_mod < 1)
                {
 -                      maxairspd = autocvar_sv_maxairspeed*maxspd_mod;
 -                      airaccel = autocvar_sv_airaccelerate*maxspd_mod;
 +                      maxairspd = self.stat_sv_maxairspeed*maxspd_mod;
 +                      airaccel = self.stat_sv_airaccelerate*maxspd_mod;
                }
                else
                {
 -                      maxairspd = autocvar_sv_maxairspeed;
 -                      airaccel = autocvar_sv_airaccelerate;
 +                      maxairspd = self.stat_sv_maxairspeed;
 +                      airaccel = self.stat_sv_airaccelerate;
                }
                // airborn
                makevectors(self.v_angle.y * '0 1 0');
                        wishspeed2 = wishspeed;
  
                        // CPM
 -                      if(autocvar_sv_airstopaccelerate)
 +                      if(self.stat_sv_airstopaccelerate)
                        {
                                vector curdir;
                                curdir = self.velocity;
                                curdir.z = 0;
                                curdir = normalize(curdir);
 -                              airaccel = airaccel + (autocvar_sv_airstopaccelerate*maxspd_mod - airaccel) * max(0, -(curdir * wishdir));
 +                              airaccel = airaccel + (self.stat_sv_airstopaccelerate*maxspd_mod - airaccel) * max(0, -(curdir * wishdir));
                        }
                        // note that for straight forward jumping:
                        // step = accel * frametime * wishspeed0;
                        // log dv/dt = logaccel + logmaxspeed (when slow)
                        // log dv/dt = logaccel + logmaxspeed + log(1 - accelqw) (when fast)
                        strafity = IsMoveInDirection(self.movement, -90) + IsMoveInDirection(self.movement, +90); // if one is nonzero, other is always zero
 -                      if(autocvar_sv_maxairstrafespeed)
 -                              wishspeed = min(wishspeed, GeomLerp(autocvar_sv_maxairspeed*maxspd_mod, strafity, autocvar_sv_maxairstrafespeed*maxspd_mod));
 -                      if(autocvar_sv_airstrafeaccelerate)
 -                              airaccel = GeomLerp(airaccel, strafity, autocvar_sv_airstrafeaccelerate*maxspd_mod);
 +                      if(self.stat_sv_maxairstrafespeed)
 +                              wishspeed = min(wishspeed, GeomLerp(self.stat_sv_maxairspeed*maxspd_mod, strafity, self.stat_sv_maxairstrafespeed*maxspd_mod));
 +                      if(self.stat_sv_airstrafeaccelerate)
 +                              airaccel = GeomLerp(airaccel, strafity, self.stat_sv_airstrafeaccelerate*maxspd_mod);
                        if(self.stat_sv_airstrafeaccel_qw)
                                airaccelqw = copysign(1-GeomLerp(1-fabs(self.stat_sv_airaccel_qw), strafity, 1-fabs(self.stat_sv_airstrafeaccel_qw)), ((strafity > 0.5) ? self.stat_sv_airstrafeaccel_qw : self.stat_sv_airaccel_qw));
                        // !CPM
  
 -                      if(autocvar_sv_warsowbunny_turnaccel && accelerating && self.movement_y == 0 && self.movement.x != 0)
 +                      if(self.stat_sv_warsowbunny_turnaccel && accelerating && self.movement_y == 0 && self.movement.x != 0)
                                PM_AirAccelerate(wishdir, wishspeed);
                        else
 -                              PM_Accelerate(wishdir, wishspeed, wishspeed0, airaccel, airaccelqw, autocvar_sv_airaccel_qw_stretchfactor, autocvar_sv_airaccel_sideways_friction / maxairspd, self.stat_sv_airspeedlimit_nonqw);
 +                              PM_Accelerate(wishdir, wishspeed, wishspeed0, airaccel, airaccelqw, self.stat_sv_airaccel_qw_stretchfactor, self.stat_sv_airaccel_sideways_friction / maxairspd, self.stat_sv_airspeedlimit_nonqw);
  
 -                      if(autocvar_sv_aircontrol)
 +                      if(self.stat_sv_aircontrol)
                                CPM_PM_Aircontrol(wishdir, wishspeed2);
                }
        }
index 6e25613c0f327ab5a6d027f36d005a901139f340,4548bbf9bb87a8b902f32f8ad2775ede7d18230a..beb04103628d7e52e3a0b5890e7d5fb9772fb6cb
@@@ -1,32 -1,40 +1,40 @@@
- #if defined(CSQC)
- #elif defined(MENUQC)
- #elif defined(SVQC)
-       #include "../../dpdefs/progsdefs.qh"
-     #include "../../dpdefs/dpextensions.qh"
-     #include "../../warpzonelib/common.qh"
-     #include "../../common/constants.qh"
-     #include "../../common/teams.qh"
-     #include "../../common/util.qh"
-     #include "../../common/command/shared_defs.qh"
-     #include "../../common/monsters/monsters.qh"
-     #include "../../common/monsters/sv_monsters.qh"
-     #include "../../common/monsters/spawn.qh"
-     #include "../autocvars.qh"
-     #include "../defs.qh"
-     #include "../../common/notifications.qh"
-     #include "../../common/deathtypes.qh"
-     #include "../mutators/mutators_include.qh"
-     #include "../vehicles/vehicles_def.qh"
-     #include "../campaign.qh"
-     #include "../../common/mapinfo.qh"
-     #include "common.qh"
-     #include "vote.qh"
-     #include "cmd.qh"
-     #include "../cheats.qh"
-     #include "../scores.qh"
-     #include "../ipban.qh"
+ #include "../../common/command/command.qh"
+ #include "cmd.qh"
+ #include "../_all.qh"
+ #include "common.qh"
+ #include "vote.qh"
+ #include "../campaign.qh"
+ #include "../cheats.qh"
+ #include "../cl_player.qh"
+ #include "../g_triggers.qh"
+ #include "../ipban.qh"
+ #include "../mapvoting.qh"
+ #include "../scores.qh"
+ #include "../teamplay.qh"
+ #include "../mutators/mutators_include.qh"
+ #ifdef SVQC
+       #include "../vehicles/vehicle.qh"
  #endif
  
+ #include "../../common/constants.qh"
+ #include "../../common/deathtypes.qh"
+ #include "../../common/mapinfo.qh"
+ #include "../../common/notifications.qh"
+ #include "../../common/teams.qh"
+ #include "../../common/util.qh"
+ #include "../../common/monsters/all.qh"
+ #include "../../common/monsters/spawn.qh"
+ #include "../../common/monsters/sv_monsters.qh"
+ #include "../../warpzonelib/common.qh"
+ void ClientKill_TeamChange (float targetteam); // 0 = don't change, -1 = auto, -2 = spec
  // =========================================================
  //  Server side networked commands code, reworked by Samual
  //  Last updated: December 28th, 2011
@@@ -370,46 -378,6 +378,46 @@@ void ClientCommand_mobspawn(float reque
        }
  }
  
 +void ClientCommand_physics(float request, float argc)
 +{
 +      switch(request)
 +      {
 +              case CMD_REQUEST_COMMAND:
 +              {
 +                      string command = strtolower(argv(1));
 +                      
 +                      if(!autocvar_g_physics_clientselect)
 +                      {
 +                              sprint(self, "Client physics selection is currently disabled.\n");
 +                              return;
 +                      }
 +
 +                      if(command == "list" || command == "help")
 +                      {
 +                              sprint(self, strcat("Available physics sets: \n\n", autocvar_g_physics_clientselect_options, " default\n"));
 +                              return;
 +                      }
 +                      
 +                      if(Physics_Valid(command) || command == "default")
 +                      {
 +                              stuffcmd(self, strcat("\nseta cl_physics ", command, "\nsendcvar cl_physics\n"));
 +                              sprint(self, strcat("^2Physics set successfully changed to ^3", command, "\n"));
 +                              return;
 +                      }
 +              }
 +      
 +              default:
 +                      sprint(self, strcat("Current physics set: ^3", self.cvar_cl_physics, "\n"));
 +              case CMD_REQUEST_USAGE:
 +              {
 +                      sprint(self, "\nUsage:^3 cmd physics <physics>\n");
 +                      sprint(self, "  See 'cmd physics list' for available physics sets.\n");
 +                      sprint(self, "  Argument 'default' resets to standard physics.\n");
 +                      return;
 +              }
 +      }
 +}
 +
  void ClientCommand_ready(float request) // todo: anti-spam for toggling readyness
  {
        switch(request)
@@@ -802,7 -770,6 +810,7 @@@ void ClientCommand_(float request
        CLIENT_COMMAND("mobedit", ClientCommand_mobedit(request, arguments), "Edit your monster's properties") \
        CLIENT_COMMAND("mobkill", ClientCommand_mobkill(request), "Kills your monster") \
        CLIENT_COMMAND("mobspawn", ClientCommand_mobspawn(request, arguments), "Spawn monsters infront of yourself") \
 +      CLIENT_COMMAND("physics", ClientCommand_physics(request, arguments), "Change physics set") \
        CLIENT_COMMAND("ready", ClientCommand_ready(request), "Qualify as ready to end warmup stage (or restart server if allowed)") \
        CLIENT_COMMAND("say", ClientCommand_say(request, arguments, command), "Print a message to chat to all players") \
        CLIENT_COMMAND("say_team", ClientCommand_say_team(request, arguments, command), "Print a message to chat to all team mates") \
diff --combined qcsrc/server/defs.qh
index 3e08303e832eea1aaa905a4dd130f0774b73c28f,2ac72548ee31a4ba9944aeea46dadc038c8c547b..9e907e86638ca4c769fcc648958be62b29e84525
@@@ -1,7 -1,7 +1,7 @@@
  #ifndef SERVER_DEFS_H
  #define SERVER_DEFS_H
  
- #include "../common/weapons/weapons.qh"
+ #include "../common/weapons/all.qh"
  
  #define INDEPENDENT_ATTACK_FINISHED
  
@@@ -64,7 -64,7 +64,7 @@@ float server_is_dedicated
  
  // Fields
  
- .void(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force) event_damage;
+ .void(entity inflictor, entity attacker, float damage, int deathtype, vector hitloc, vector force) event_damage;
  
  //.string     wad;
  //.string     map;
@@@ -250,7 -250,7 +250,7 @@@ float nJoinAllowed(entity ignore)
  
  .entity flagcarried;
  
- .float playerid;
+ .int playerid;
  float playerid_last;
  .float noalign;               // if set to 1, the item or spawnpoint won't be dropped to the floor
  
@@@ -285,7 -285,7 +285,7 @@@ float default_weapon_alpha
  .float version_nagtime;
  
  const int NUM_JUMPPADSUSED = 3;
- .float jumppadcount;
+ .int jumppadcount;
  .entity jumppadsused[NUM_JUMPPADSUSED];
  
  string gamemode_name;
@@@ -333,7 -333,7 +333,7 @@@ float have_team_spawns_forteam[17]; // 
  .entity killindicator;
  .float killindicator_teamchange;
  
- void Damage (entity targ, entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force);
+ void Damage (entity targ, entity inflictor, entity attacker, float damage, int deathtype, vector hitloc, vector force);
  
  float lockteams;
  
@@@ -347,7 -347,7 +347,7 @@@ float next_pingtime
  
  .float Version;
  .int SendFlags;
- .float(entity to, float sendflags) SendEntity;
+ .bool(entity to, int sendflags) SendEntity;
  
  // player sounds, voice messages
  // TODO implemented fall and falling
@@@ -452,29 -452,6 +452,29 @@@ float round_starttime; //point in time 
  .float stat_sv_airspeedlimit_nonqw;
  .float stat_sv_maxspeed;
  
 +// new properties
 +.float stat_sv_jumpvelocity;
 +.float stat_sv_airaccel_qw_stretchfactor;
 +.float stat_sv_maxairstrafespeed;
 +.float stat_sv_maxairspeed;
 +.float stat_sv_airstrafeaccelerate;
 +.float stat_sv_warsowbunny_turnaccel;
 +.float stat_sv_airaccel_sideways_friction;
 +.float stat_sv_aircontrol;
 +.float stat_sv_aircontrol_power;
 +.float stat_sv_aircontrol_penalty;
 +.float stat_sv_warsowbunny_airforwardaccel;
 +.float stat_sv_warsowbunny_topspeed;
 +.float stat_sv_warsowbunny_accel;
 +.float stat_sv_warsowbunny_backtosideratio;
 +.float stat_sv_friction;
 +.float stat_sv_accelerate;
 +.float stat_sv_stopspeed;
 +.float stat_sv_airaccelerate;
 +.float stat_sv_airstopaccelerate;
 +
 +.string cvar_cl_physics;
 +
  void W_Porto_Remove (entity p);
  
  .int projectiledeathtype;
@@@ -542,7 -519,7 +542,7 @@@ string matchid
  
  .float stat_leadlimit;
  
float radar_showennemies;
bool radar_showennemies;
  
  #ifdef PROFILING
  float client_cefc_accumulator;
@@@ -550,7 -527,7 +550,7 @@@ float client_cefc_accumulatortime
  #endif
  
  .float weapon_load[WEP_MAXCOUNT];
- .float ammo_none; // used by the reloading system, must always be 0
+ .int ammo_none; // used by the reloading system, must always be 0
  .float clip_load;
  .float old_clip_load;
  .float clip_size;
  .float vortex_chargepool_ammo;
  .float hagar_load;
  
- .float grab; // 0 = can't grab, 1 = owner can grab, 2 = owner and team mates can grab, 3 = anyone can grab
+ .int grab; // 0 = can't grab, 1 = owner can grab, 2 = owner and team mates can grab, 3 = anyone can grab
  
  #define PROJECTILE_MAKETRIGGER(e) (e).solid = SOLID_CORPSE; (e).dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE
  // when doing this, hagar can go through clones
diff --combined qcsrc/server/g_world.qc
index 6fc33b44a902fbfa5ccc5685801300d5ff62e04c,0fa5aaf8f62446d99523d9d0437e08ee478d07f6..13d63dab3fd28fca0beef5f61d38b9ac7ec428aa
@@@ -1,39 -1,39 +1,39 @@@
  #include "g_world.qh"
+ #include "_all.qh"
+ #include "anticheat.qh"
+ #include "antilag.qh"
+ #include "bot/bot.qh"
+ #include "campaign.qh"
+ #include "cheats.qh"
+ #include "cl_client.qh"
+ #include "command/common.qh"
+ #include "command/getreplies.qh"
+ #include "command/sv_cmd.qh"
+ #include "command/vote.qh"
+ #include "g_hook.qh"
+ #include "ipban.qh"
+ #include "mapvoting.qh"
+ #include "mutators/mutators_include.qh"
+ #include "race.qh"
+ #include "scores.qh"
+ #include "secret.qh"
+ #include "teamplay.qh"
+ #include "waypointsprites.qh"
+ #include "weapons/weaponstats.qh"
  #include "../common/buffs.qh"
- #if defined(CSQC)
- #elif defined(MENUQC)
- #elif defined(SVQC)
-     #include "../common/constants.qh"
-     #include "../common/stats.qh"
-     #include "../common/teams.qh"
-     #include "../common/util.qh"
-     #include "../common/monsters/sv_monsters.qh"
-     #include "../common/weapons/weapons.qh"
-     #include "weapons/weaponstats.qh"
-     #include "autocvars.qh"
-     #include "constants.qh"
-     #include "defs.qh"
-     #include "../common/notifications.qh"
-     #include "mutators/mutators_include.qh"
-     #include "campaign.qh"
-     #include "../common/mapinfo.qh"
-     #include "command/common.qh"
-     #include "command/vote.qh"
-     #include "command/getreplies.qh"
-     #include "command/sv_cmd.qh"
-     #include "anticheat.qh"
-     #include "cheats.qh"
-     #include "../common/playerstats.qh"
-     #include "g_hook.qh"
-     #include "scores.qh"
-     #include "mapvoting.qh"
-     #include "ipban.qh"
-     #include "race.qh"
-     #include "antilag.qh"
-     #include "secret.qh"
- #endif
+ #include "../common/constants.qh"
+ #include "../common/deathtypes.qh"
+ #include "../common/mapinfo.qh"
+ #include "../common/monsters/all.qh"
+ #include "../common/monsters/sv_monsters.qh"
+ #include "../common/notifications.qh"
+ #include "../common/playerstats.qh"
+ #include "../common/stats.qh"
+ #include "../common/teams.qh"
+ #include "../common/util.qh"
+ #include "../common/items/all.qh"
+ #include "../common/weapons/all.qh"
  
  const float LATENCY_THINKRATE = 10;
  .float latency_sum;
@@@ -93,9 -93,7 +93,7 @@@ string redirection_target
  float world_initialized;
  
  string GetGametype();
- void GotoNextMap(float reinit);
  void ShuffleMaplist();
- float(float reinit) DoNextMapOverride;
  
  void SetDefaultAlpha()
  {
@@@ -191,6 -189,8 +189,8 @@@ void cvar_changes_init(
                BADCVAR("g_configversion");
                BADCVAR("g_maplist_index");
                BADCVAR("halflifebsp");
+               BADCVAR("sv_mapformat_is_quake2");
+               BADCVAR("sv_mapformat_is_quake3");
                BADPREFIX("sv_world");
  
                // client
                BADCVAR("g_domination_default_teams");
                BADCVAR("g_freezetag");
                BADCVAR("g_freezetag_teams");
+               BADCVAR("g_invasion_teams");
                BADCVAR("g_keepaway");
                BADCVAR("g_keyhunt");
                BADCVAR("g_keyhunt_teams");
                BADCVAR("g_ca_teams_override");
                BADCVAR("g_ctf_ignore_frags");
                BADCVAR("g_domination_point_limit");
+               BADCVAR("g_domination_teams_override");
                BADCVAR("g_freezetag_teams_override");
                BADCVAR("g_friendlyfire");
                BADCVAR("g_fullbrightitems");
                BADCVAR("g_nexball_goallimit");
                BADCVAR("g_powerups");
                BADCVAR("g_start_delay");
+               BADCVAR("g_tdm_teams_override");
                BADCVAR("g_warmup");
                BADCVAR("g_weapon_stay"); BADPRESUFFIX("g_", "_weapon_stay");
                BADCVAR("hostname");
@@@ -509,7 -512,7 +512,7 @@@ void detect_maptype(
  }
  
  entity randomseed;
- float RandomSeed_Send(entity to, float sf)
+ float RandomSeed_Send(entity to, int sf)
  {
        WriteByte(MSG_ENTITY, ENT_CLIENT_RANDOMSEED);
        WriteShort(MSG_ENTITY, self.cnt);
@@@ -559,6 -562,7 +562,7 @@@ void spawnfunc___init_dedicated_server(
        // needs to be done so early because of the constants they create
        CALL_ACCUMULATED_FUNCTION(RegisterWeapons);
        CALL_ACCUMULATED_FUNCTION(RegisterMonsters);
+       CALL_ACCUMULATED_FUNCTION(RegisterItems);
        CALL_ACCUMULATED_FUNCTION(RegisterGametypes);
        CALL_ACCUMULATED_FUNCTION(RegisterNotifications);
        CALL_ACCUMULATED_FUNCTION(RegisterDeathtypes);
@@@ -576,7 -580,7 +580,7 @@@ void WeaponStats_Init()
  void WeaponStats_Shutdown();
  void spawnfunc_worldspawn (void)
  {
-       float fd, l, i, j, n;
+       float fd, l, j, n;
        string s;
  
        cvar = cvar_normal;
        // needs to be done so early because of the constants they create
        CALL_ACCUMULATED_FUNCTION(RegisterWeapons);
        CALL_ACCUMULATED_FUNCTION(RegisterMonsters);
+       CALL_ACCUMULATED_FUNCTION(RegisterItems);
        CALL_ACCUMULATED_FUNCTION(RegisterGametypes);
        CALL_ACCUMULATED_FUNCTION(RegisterNotifications);
        CALL_ACCUMULATED_FUNCTION(RegisterDeathtypes);
        // character set: ASCII 33-126 without the following characters: : ; ' " \ $
        if(autocvar_sv_eventlog)
        {
-               s = sprintf("%d.%s.%06d", ftos(autocvar_sv_eventlog_files_counter), strftime(false, "%s"), floor(random() * 1000000));
+               s = sprintf("%d.%s.%06d", itos(autocvar_sv_eventlog_files_counter), strftime(false, "%s"), floor(random() * 1000000));
                matchid = strzone(s);
  
                GameLogEcho(strcat(":gamestart:", GetGametype(), "_", GetMapname(), ":", s));
        addstat(STAT_MOVEVARS_AIRACCEL_QW, AS_FLOAT, stat_sv_airaccel_qw);
        addstat(STAT_MOVEVARS_AIRSTRAFEACCEL_QW, AS_FLOAT, stat_sv_airstrafeaccel_qw);
  
 +      // new properties
 +      addstat(STAT_MOVEVARS_JUMPVELOCITY, AS_FLOAT, stat_sv_jumpvelocity);
 +      addstat(STAT_MOVEVARS_AIRACCEL_QW_STRETCHFACTOR, AS_FLOAT, stat_sv_airaccel_qw_stretchfactor);
 +      addstat(STAT_MOVEVARS_MAXAIRSTRAFESPEED, AS_FLOAT, stat_sv_maxairstrafespeed);
 +      addstat(STAT_MOVEVARS_MAXAIRSPEED, AS_FLOAT, stat_sv_maxairspeed);
 +      addstat(STAT_MOVEVARS_AIRSTRAFEACCELERATE, AS_FLOAT, stat_sv_airstrafeaccelerate);
 +      addstat(STAT_MOVEVARS_WARSOWBUNNY_TURNACCEL, AS_FLOAT, stat_sv_warsowbunny_turnaccel);
 +      addstat(STAT_MOVEVARS_AIRACCEL_SIDEWAYS_FRICTION, AS_FLOAT, stat_sv_airaccel_sideways_friction);
 +      addstat(STAT_MOVEVARS_AIRCONTROL, AS_FLOAT, stat_sv_aircontrol);
 +      addstat(STAT_MOVEVARS_AIRCONTROL_POWER, AS_FLOAT, stat_sv_aircontrol_power);
 +      addstat(STAT_MOVEVARS_AIRCONTROL_PENALTY, AS_FLOAT, stat_sv_aircontrol_penalty);
 +      addstat(STAT_MOVEVARS_WARSOWBUNNY_AIRFORWARDACCEL, AS_FLOAT, stat_sv_warsowbunny_airforwardaccel);
 +      addstat(STAT_MOVEVARS_WARSOWBUNNY_TOPSPEED, AS_FLOAT, stat_sv_warsowbunny_topspeed);
 +      addstat(STAT_MOVEVARS_WARSOWBUNNY_ACCEL, AS_FLOAT, stat_sv_warsowbunny_accel);
 +      addstat(STAT_MOVEVARS_WARSOWBUNNY_BACKTOSIDERATIO, AS_FLOAT, stat_sv_warsowbunny_backtosideratio);
 +      addstat(STAT_MOVEVARS_FRICTION, AS_FLOAT, stat_sv_friction);
 +      addstat(STAT_MOVEVARS_ACCELERATE, AS_FLOAT, stat_sv_accelerate);
 +      addstat(STAT_MOVEVARS_STOPSPEED, AS_FLOAT, stat_sv_stopspeed);
 +      addstat(STAT_MOVEVARS_AIRACCELERATE, AS_FLOAT, stat_sv_airaccelerate);
 +      addstat(STAT_MOVEVARS_AIRSTOPACCELERATE, AS_FLOAT, stat_sv_airstopaccelerate);
 +
        // secrets
        addstat(STAT_SECRETS_TOTAL, AS_FLOAT, stat_secrets_total);
        addstat(STAT_SECRETS_FOUND, AS_FLOAT, stat_secrets_found);
        maplist_reply = strzone(getmaplist());
        lsmaps_reply = strzone(getlsmaps());
        monsterlist_reply = strzone(getmonsterlist());
-       for(i = 0; i < 10; ++i)
+       for(int i = 0; i < 10; ++i)
        {
                s = getrecords(i);
                if (s)
        {
                s = "";
                n = tokenize_console(cvar_string("sv_curl_serverpackages"));
-               for(i = 0; i < n; ++i)
+               for(int i = 0; i < n; ++i)
                        if(substring(argv(i), -18, -1) != "-serverpackage.txt")
                        if(substring(argv(i), -14, -1) != ".serverpackage") // OLD legacy
                                s = strcat(s, " ", argv(i));
                if(fd >= 0)
                {
                        j = search_getsize(fd);
-                       for(i = 0; i < j; ++i)
+                       for(int i = 0; i < j; ++i)
                                s = strcat(s, " ", search_getfilename(fd, i));
                        search_end(fd);
                }
                if(fd >= 0)
                {
                        j = search_getsize(fd);
-                       for(i = 0; i < j; ++i)
+                       for(int i = 0; i < j; ++i)
                                s = strcat(s, " ", search_getfilename(fd, i));
                        search_end(fd);
                }
@@@ -1671,7 -1655,7 +1676,7 @@@ void SetWinners(.float field, float val
  {
        entity head;
        FOR_EACH_PLAYER(head)
-               head.winning = (head.field == value);
+               head.winning = (head.(field) == value);
  }
  
  // set the .winning flag for those players with a given field value
@@@ -1679,7 -1663,7 +1684,7 @@@ void AddWinners(.float field, float val
  {
        entity head;
        FOR_EACH_PLAYER(head)
-               if(head.field == value)
+               if (head.(field) == value)
                        head.winning = 1;
  }
  
@@@ -1985,7 -1969,7 +1990,7 @@@ float WinningCondition_RanOutOfSpawns(
        if(have_team_spawns <= 0)
                return WINNING_NO;
  
-       if(autocvar_g_spawn_useallspawns <= 0)
+       if(!autocvar_g_spawn_useallspawns)
                return WINNING_NO;
  
        if(!some_spawn_has_been_used)
@@@ -2057,7 -2041,6 +2062,6 @@@ CheckRules_Worl
  Exit deathmatch games upon conditions
  ============
  */
- void ReadyRestart();
  void CheckRules_World()
  {
        float timelimit;
index 8c013e05fcef1694282611aa0f900f37770d2065,7951b2959d1512ec1e42d9c4dd71044db7d77507..556ad393a69effdae610e01137accc520346c58b
@@@ -1,34 -1,30 +1,30 @@@
- #if defined(CSQC)
- #elif defined(MENUQC)
- #elif defined(SVQC)
-       #include "miscfunctions.qh"
-       #include "../dpdefs/progsdefs.qh"
-     #include "../dpdefs/dpextensions.qh"
-     #include "../common/playerstats.qh"
-     #include "../warpzonelib/anglestransform.qh"
-     #include "../warpzonelib/server.qh"
-     #include "../common/constants.qh"
-     #include "../common/teams.qh"
-     #include "../common/util.qh"
-     #include "../common/urllib.qh"
-     #include "../common/command/generic.qh"
-     #include "../common/weapons/weapons.qh"
-     #include "weapons/accuracy.qh"
-     #include "weapons/csqcprojectile.qh"
-     #include "weapons/selection.qh"
-     #include "t_items.qh"
-     #include "autocvars.qh"
-     #include "constants.qh"
-     #include "defs.qh"
-     #include "../common/notifications.qh"
-     #include "../common/deathtypes.qh"
-     #include "mutators/mutators_include.qh"
-     #include "tturrets/include/turrets_early.qh"
-     #include "../common/mapinfo.qh"
-     #include "command/common.qh"
-     #include "../csqcmodellib/sv_model.qh"
-     #include "ipban.qh"
- #endif
+ #include "miscfunctions.qh"
+ #include "_all.qh"
+ #include "antilag.qh"
+ #include "command/common.qh"
+ #include "constants.qh"
+ #include "g_hook.qh"
+ #include "ipban.qh"
+ #include "mutators/mutators_include.qh"
+ #include "tturrets/include/turrets_early.qh"
+ #include "t_items.qh"
+ #include "weapons/accuracy.qh"
+ #include "weapons/csqcprojectile.qh"
+ #include "weapons/selection.qh"
+ #include "../common/command/generic.qh"
+ #include "../common/constants.qh"
+ #include "../common/deathtypes.qh"
+ #include "../common/mapinfo.qh"
+ #include "../common/notifications.qh"
+ #include "../common/playerstats.qh"
+ #include "../common/teams.qh"
+ #include "../common/urllib.qh"
+ #include "../common/util.qh"
+ #include "../common/weapons/all.qh"
+ #include "../csqcmodellib/sv_model.qh"
+ #include "../warpzonelib/anglestransform.qh"
+ #include "../warpzonelib/server.qh"
  
  void crosshair_trace(entity pl)
  {
@@@ -101,7 -97,7 +97,7 @@@ float DistributeEvenly_GetRandomized(fl
  void GameLogEcho(string s)
  {
      string fn;
-     float matches;
+     int matches;
  
      if (autocvar_sv_eventlog_files)
      {
          {
              logfile_open = true;
              matches = autocvar_sv_eventlog_files_counter + 1;
-             cvar_set("sv_eventlog_files_counter", ftos(matches));
+             cvar_set("sv_eventlog_files_counter", itos(matches));
              fn = ftos(matches);
              if (strlen(fn) < 8)
                  fn = strcat(substring("00000000", 0, 8 - strlen(fn)), fn);
@@@ -357,17 -353,17 +353,17 @@@ void GetCvars_handleString(string thisn
  {
        if (f < 0)
        {
-               if (self.field)
-                       strunzone(self.field);
-               self.field = string_null;
+               if (self.(field))
+                       strunzone(self.(field));
+               self.(field) = string_null;
        }
        else if (f > 0)
        {
                if (thisname == name)
                {
-                       if (self.field)
-                               strunzone(self.field);
-                       self.field = strzone(argv(f + 1));
+                       if (self.(field))
+                               strunzone(self.(field));
+                       self.(field) = strzone(argv(f + 1));
                }
        }
        else
@@@ -379,12 -375,11 +375,11 @@@ void GetCvars_handleString_Fixup(strin
        if (f >= 0) // also initialize to the fitting value for "" when sending cvars out
                if (thisname == name)
                {
-                       string s;
-                       s = func(strcat1(self.field));
-                       if (s != self.field)
+                       string s = func(strcat1(self.(field)));
+                       if (s != self.(field))
                        {
-                               strunzone(self.field);
-                               self.field = strzone(s);
+                               strunzone(self.(field));
+                               self.(field) = strzone(s);
                        }
                }
  }
@@@ -396,7 -391,7 +391,7 @@@ void GetCvars_handleFloat(string thisna
        else if (f > 0)
        {
                if (thisname == name)
-                       self.field = stof(argv(f + 1));
+                       self.(field) = stof(argv(f + 1));
        }
        else
                stuffcmd(self, strcat("cl_cmd sendcvar ", name, "\n"));
@@@ -410,17 -405,17 +405,17 @@@ void GetCvars_handleFloatOnce(string th
        {
                if (thisname == name)
                {
-                       if(!self.field)
+                       if (!self.(field))
                        {
-                               self.field = stof(argv(f + 1));
-                               if(!self.field)
-                                       self.field = -1;
+                               self.(field) = stof(argv(f + 1));
+                               if (!self.(field))
+                                       self.(field) = -1;
                        }
                }
        }
        else
        {
-               if(!self.field)
+               if (!self.(field))
                        stuffcmd(self, strcat("cl_cmd sendcvar ", name, "\n"));
        }
  }
@@@ -454,7 -449,6 +449,7 @@@ void GetCvars(float f
        GetCvars_handleFloat(s, f, cvar_cl_autoscreenshot, "cl_autoscreenshot");
        GetCvars_handleFloat(s, f, cvar_cl_jetpack_jump, "cl_jetpack_jump");
        GetCvars_handleString(s, f, cvar_g_xonoticversion, "g_xonoticversion");
 +      GetCvars_handleString(s, f, cvar_cl_physics, "cl_physics");
        GetCvars_handleFloat(s, f, cvar_cl_handicap, "cl_handicap");
        GetCvars_handleFloat(s, f, cvar_cl_clippedspectating, "cl_clippedspectating");
        GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriority, "cl_weaponpriority", W_FixWeaponOrder_ForceComplete_AndBuildImpulseList);
@@@ -586,7 -580,7 +581,7 @@@ void readplayerstartcvars(
        s = cvar_string("g_weaponarena");
        if (s == "0" || s == "")
        {
-               if(g_ca)
+               if(g_ca || g_freezetag)
                        s = "most";
        }
  
                warmup_start_weapons_default = start_weapons_default;
                warmup_start_weapons_defaultmask = start_weapons_defaultmask;
  
-               if (!g_weaponarena && !g_ca)
+               if (!g_weaponarena && !g_ca && !g_freezetag)
                {
                        warmup_start_ammo_shells = cvar("g_warmup_start_ammo_shells");
                        warmup_start_ammo_nails = cvar("g_warmup_start_ammo_nails");
@@@ -823,7 -817,7 +818,7 @@@ void soundtoat(float _dest, entity e, v
      entno = num_for_edict(e);
      idx = precache_sound_index(samp);
  
-     float sflags;
+     int sflags;
      sflags = 0;
  
      _atten = floor(_atten * 64);
@@@ -1276,7 -1270,7 +1271,7 @@@ void SetCustomizer(entity e, float(void
  }
  
  
- void Net_LinkEntity(entity e, float docull, float dt, float(entity, float) sendfunc)
+ void Net_LinkEntity(entity e, bool docull, float dt, bool(entity, int) sendfunc)
  {
      vector mi, ma;
  
  }
  
  
- entity eliminatedPlayers;
  .float(entity) isEliminated;
  float EliminatedPlayers_SendEntity(entity to, float sendflags)
  {
@@@ -1469,7 -1462,6 +1463,6 @@@ float SUB_NoImpactCheck(
  
  #define SUB_OwnerCheck() (other && (other == self.owner))
  
- void RemoveGrapplingHook(entity pl);
  void W_Crylink_Dequeue(entity e);
  float WarpZone_Projectile_Touch_ImpactFilter_Callback()
  {
@@@ -1837,7 -1829,7 +1830,7 @@@ vector gettaginfo_relative(entity e, fl
  
  .float scale2;
  
- float modeleffect_SendEntity(entity to, float sf)
+ float modeleffect_SendEntity(entity to, int sf)
  {
        float f;
        WriteByte(MSG_ENTITY, ENT_CLIENT_MODELEFFECT);
index 333d5192e21a195e4918ba4eedda725d48b4f54f,4e8d1d6e3dfc2ee2f3f9f31cb4e5e6a925d4e539..315a12099b22bdcc1e666dd6af3b90d6e92f0e21
@@@ -1,3 -1,12 +1,12 @@@
+ #include "mutator_buffs.qh"
+ #include "../_all.qh"
+ #include "mutator.qh"
+ #include "../../common/buffs.qh"
+ .float lifetime;
  float buffs_BuffModel_Customize()
  {
        entity player, myowner;
@@@ -457,6 -466,7 +466,6 @@@ MUTATOR_HOOKFUNCTION(buffs_PlayerJump
  {
        if(self.buffs & BUFF_JUMP)
                player_jumpheight = autocvar_g_buffs_jump_height;
 -      self.stat_jumpheight = player_jumpheight;
  
        return false;
  }
@@@ -748,6 -758,7 +757,6 @@@ void buffs_Initialize(
        precache_sound("keepaway/respawn.wav");
  
        addstat(STAT_BUFFS, AS_INT, buffs);
 -      addstat(STAT_MOVEVARS_JUMPVELOCITY, AS_FLOAT, stat_jumpheight);
  
        InitializeEntity(world, buffs_DelayedInit, INITPRIO_FINDTARGET);
  }