]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge remote-tracking branch 'origin/master' into Juhu/strafehud
authorJuhu <5894800-Juhu_@users.noreply.gitlab.com>
Sat, 20 Jun 2020 14:35:07 +0000 (16:35 +0200)
committerJuhu <5894800-Juhu_@users.noreply.gitlab.com>
Sat, 20 Jun 2020 14:35:07 +0000 (16:35 +0200)
1  2 
_hud_common.cfg
_hud_descriptions.cfg
hud_luma.cfg
hud_luminos.cfg
hud_luminos_minimal.cfg
hud_luminos_minimal_xhair.cfg
hud_luminos_old.cfg
hud_nexuiz.cfg
qcsrc/client/autocvars.qh
qcsrc/client/hud/hud.qh
qcsrc/menu/xonotic/_mod.qh

diff --combined _hud_common.cfg
index 5184fa3438e3fcf757e7e3440c69845ca925a1b1,73ab1739b004be2b052820e49ad6a96e4226a980..bdde38f84b4bbb0abf8a96cf23ac4d88d6e554c9
@@@ -47,7 -47,6 +47,7 @@@ seta hud_panel_itemstime        2 "enab
  //seta hud_panel_scoreboard       1 "enable this panel"
  seta hud_panel_scoreboard_accuracy 1 "show weapon accuracy stats panel on scoreboard; colors can be configured with accuracy_color* cvars"
  seta hud_panel_scoreboard_ctf_leaderboard 1 "show a capture time rankings leaderboard in the scoreboard if allowed by the server"
 +seta hud_panel_strafehud        3 "enable this panel, 1 = show if not observing, 2 = show always, 3 = show only in race/cts if not observing"
  
  seta hud_panel_weapons_dynamichud          1 "apply the dynamic hud effects to this panel"
  seta hud_panel_ammo_dynamichud             1 "apply the dynamic hud effects to this panel"
@@@ -67,7 -66,6 +67,7 @@@ seta hud_panel_physics_dynamichu
  seta hud_panel_centerprint_dynamichud      1 "apply the dynamic hud effects to this panel"
  seta hud_panel_itemstime_dynamichud        1 "apply the dynamic hud effects to this panel"
  seta hud_panel_scoreboard_dynamichud       0 "apply the dynamic hud effects to this panel"
 +seta hud_panel_strafehud_dynamichud        1 "apply the dynamic hud effects to this panel"
  
  seta hud_panel_weapons_ammo_full_shells 60 "show 100% of the status bar at this ammo count"
  seta hud_panel_weapons_ammo_full_nails 320 "show 100% of the status bar at this ammo count"
@@@ -94,6 -92,8 +94,8 @@@ seta hud_panel_timer_increment "0" "sho
  seta hud_panel_engineinfo_framecounter_exponentialmovingaverage 1 "use an averaging method for calculating fps instead of counting frametime like engine does"
  seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_new_weight 0.1 "weight of latest data point"
  seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_instantupdate_change_threshold 0.5 "threshold for fps change when to update instantly, to make big fps changes update faster"
+ seta hud_panel_engineinfo_framecounter_decimals "0" "amount of decimals to show"
+ seta hud_panel_engineinfo_framecounter_time "0.1" "time between framerate display updates"
  
  seta hud_panel_physics_acceleration_movingaverage 1 "use an averaging method for calculating acceleration instead of the real value"
  seta hud_panel_physics_update_interval 0.016 "how often (in seconds) numeric values get updated on screen"
@@@ -122,25 -122,6 +124,25 @@@ seta hud_panel_scoreboard_accuracy_show
  seta hud_panel_scoreboard_accuracy_showdelay_minpos 0.75 "delay displaying the accuracy panel only if its position is lower than this percentage of the screen height from the top"
  seta hud_panel_scoreboard_team_size_position 0 "where to show the team size (0 = do not show, 1 = left of scoreboard, 2 = right of scoreboard), will move team scores to the other side if necessary"
  
 +seta _hud_panel_strafehud_demo "0" "strafehud changes angle during configure"
 +seta _hud_panel_strafehud_center "0" "puts the angle indicator in the center during HUD configure"
 +seta hud_panel_strafehud_mode "0" "strafehud mode which controls whether the strafehud is centered at: \"0\" = view angle, \"1\" = velocity direction"
 +seta hud_panel_strafehud_bar_alpha "0.3" "opacity of the strafe meter"
 +seta hud_panel_strafehud_bar_color "1 1 1" "color of the strafe meter"
 +seta hud_panel_strafehud_indicator_color "0 1 0" "color of the strafe angle indicator"
 +seta hud_panel_strafehud_indicator_switch_color "1 1 0" "color of the strafe angle indicator on the opposite side"
 +seta hud_panel_strafehud_angle "0" "the maximum angle displayed on the strafehud, \"0\" = dynamic"
 +seta hud_panel_strafehud_good_color "0 1 1" "indicator color of the actual strafe angle if the angle matches the ideal angle"
 +seta hud_panel_strafehud_warning_color "1 1 0" "indicator color of the actual strafe angle if the angle doesn't match the ideal angle"
 +seta hud_panel_strafehud_alert_color "1 0 1" "indicator color of the actual strafe angle if the angle has a critical value"
 +seta hud_panel_strafehud_angle_alpha "0.8" "indicator transparency of the actual strafe angle"
 +seta hud_panel_strafehud_direction_color "0 0.5 1" "direction indicator color"
 +seta hud_panel_strafehud_timeout_air "0" "time after take off before changing strafehud mode (prevents flickering on slick ramps)"
 +seta hud_panel_strafehud_timeout_ground "0.03333333" "time after landing before changing strafehud mode (prevents flickering on regular strafe turns)"
 +seta hud_panel_strafehud_timeout_strafe "0.1" "time after releasing the strafe keys before changing mode (prevents flickering when switching between left/right strafe turning)"
 +seta hud_panel_strafehud_timeout_direction "0.5" "time it takes until direction changes (forward or backward strafe) are detected"
 +seta hud_panel_strafehud_indicator_minspeed "-1" "speed at which strafehud indicators will be shown, uses maxspeed if negative"
 +
  // hud panel aliases
  alias quickmenu "cl_cmd hud quickmenu ${* ?}"
  
diff --combined _hud_descriptions.cfg
index fc724ffff435f7c386c41f61ddc1550cb5c7bef5,a2a23ddea19a1d8d10dacd4ae870967b10503a30..6880f96e045c863e25a083b7e446b0db8b2891a1
@@@ -227,8 -227,6 +227,6 @@@ seta hud_panel_engineinfo_bg_color_tea
  seta hud_panel_engineinfo_bg_alpha "" "if set to something else than \"\" = override default panel background alpha"
  seta hud_panel_engineinfo_bg_border "" "if set to something else than \"\" = override default size of border around the background"
  seta hud_panel_engineinfo_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
- seta hud_panel_engineinfo_framecounter_decimals "" "amount of decimals to show"
- seta hud_panel_engineinfo_framecounter_time "" "time between framerate display updates"
  
  seta hud_panel_infomessages_pos "" "position of this base of the panel"
  seta hud_panel_infomessages_size "" "size of this panel"
@@@ -380,12 -378,3 +378,12 @@@ seta hud_panel_scoreboard_table_highlig
  seta hud_panel_scoreboard_bg_teams_color_team "" "override panel team color in team tables"
  seta hud_panel_scoreboard_accuracy_doublerows "" "use two rows instead of one"
  seta hud_panel_scoreboard_accuracy_nocolors "" "don't use colors displaying accuracy stats"
 +
 +seta hud_panel_strafehud_pos "" "position of this base of the panel"
 +seta hud_panel_strafehud_size "" "size of this panel"
 +seta hud_panel_strafehud_bg "" "if set to something else than \"\" = override default background"
 +seta hud_panel_strafehud_bg_color "" "if set to something else than \"\" = override default panel background color"
 +seta hud_panel_strafehud_bg_color_team "" "override panel color with team color in team based games"
 +seta hud_panel_strafehud_bg_alpha "" "if set to something else than \"\" = override default panel background alpha"
 +seta hud_panel_strafehud_bg_border "" "if set to something else than \"\" = override default size of border around the background"
 +seta hud_panel_strafehud_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
diff --combined hud_luma.cfg
index 64e6aa4aa1dd0deb5c02fb4bbbd0790e4bbfb9d2,ade4a92f205dfcba574d55e01a799d4deaac0f7e..c8663cbb9fdd278bf98727a92c72475a6b0f8755
@@@ -30,7 -30,7 +30,7 @@@ seta hud_progressbar_acceleration_neg_c
  seta hud_progressbar_vehicles_ammo1_color "0.77 0.67 0"
  seta hud_progressbar_vehicles_ammo2_color "0.86 0.35 0"
  
 -seta _hud_panelorder "17 15 12 9 5 10 6 14 0 7 4 11 2 1 3 8 13 16 18 23 19 20 21 22 24 "
 +seta _hud_panelorder "17 25 15 12 9 5 10 6 14 0 7 4 11 2 1 3 8 13 16 18 23 19 20 21 22 24 "
  
  seta hud_configure_grid "1"
  seta hud_configure_grid_xsize "0.005000"
@@@ -228,8 -228,6 +228,6 @@@ seta hud_panel_engineinfo_bg_color_tea
  seta hud_panel_engineinfo_bg_alpha ""
  seta hud_panel_engineinfo_bg_border ""
  seta hud_panel_engineinfo_bg_padding ""
- seta hud_panel_engineinfo_framecounter_time "0.1"
- seta hud_panel_engineinfo_framecounter_decimals "0"
  
  seta hud_panel_infomessages_pos "0.680000 0.100000"
  seta hud_panel_infomessages_size "0.280000 0.080000"
@@@ -382,13 -380,4 +380,13 @@@ seta hud_panel_scoreboard_bg_teams_colo
  seta hud_panel_scoreboard_accuracy_doublerows "0"
  seta hud_panel_scoreboard_accuracy_nocolors "0"
  
 +seta hud_panel_strafehud_pos "0.320000 0.570000"
 +seta hud_panel_strafehud_size "0.360000 0.020000"
 +seta hud_panel_strafehud_bg "0"
 +seta hud_panel_strafehud_bg_color ""
 +seta hud_panel_strafehud_bg_color_team ""
 +seta hud_panel_strafehud_bg_alpha "0.7"
 +seta hud_panel_strafehud_bg_border ""
 +seta hud_panel_strafehud_bg_padding ""
 +
  menu_sync
diff --combined hud_luminos.cfg
index 6f1690e5f3519161e614b1322d5b8d40cb5647f4,7e7ae540dcf83d08f3d124c9c3057e2c0e2de69a..9d5fa0bac31b30c737c143503e31645ba780fb80
@@@ -30,7 -30,7 +30,7 @@@ seta hud_progressbar_acceleration_neg_c
  seta hud_progressbar_vehicles_ammo1_color "0.8 0.7 0"
  seta hud_progressbar_vehicles_ammo2_color "0.7 0.4 0"
  
 -seta _hud_panelorder "17 15 12 9 10 5 6 14 0 7 4 11 2 1 3 8 13 16 18 23 19 20 21 22 24 "
 +seta _hud_panelorder "17 25 15 12 9 10 5 6 14 0 7 4 11 2 1 3 8 13 16 18 23 19 20 21 22 24 "
  
  seta hud_configure_grid "1"
  seta hud_configure_grid_xsize "0.010000"
@@@ -228,8 -228,6 +228,6 @@@ seta hud_panel_engineinfo_bg_color_tea
  seta hud_panel_engineinfo_bg_alpha ""
  seta hud_panel_engineinfo_bg_border ""
  seta hud_panel_engineinfo_bg_padding ""
- seta hud_panel_engineinfo_framecounter_time "0.1"
- seta hud_panel_engineinfo_framecounter_decimals "0"
  
  seta hud_panel_infomessages_pos "0.680000 0.100000"
  seta hud_panel_infomessages_size "0.280000 0.080000"
@@@ -382,13 -380,4 +380,13 @@@ seta hud_panel_scoreboard_bg_teams_colo
  seta hud_panel_scoreboard_accuracy_doublerows "1"
  seta hud_panel_scoreboard_accuracy_nocolors "0"
  
 +seta hud_panel_strafehud_pos "0.330000 0.570000"
 +seta hud_panel_strafehud_size "0.340000 0.020000"
 +seta hud_panel_strafehud_bg ""
 +seta hud_panel_strafehud_bg_color ""
 +seta hud_panel_strafehud_bg_color_team ""
 +seta hud_panel_strafehud_bg_alpha ""
 +seta hud_panel_strafehud_bg_border ""
 +seta hud_panel_strafehud_bg_padding ""
 +
  menu_sync
diff --combined hud_luminos_minimal.cfg
index f120225cdcb6ee3bfc15835a9fb97d30a17ad396,a6c201ef3b1831ca869caa5d7129e5248db04112..06f080bfb72a024aa5f470771ce53ecea9b0d829
@@@ -30,7 -30,7 +30,7 @@@ seta hud_progressbar_acceleration_neg_c
  seta hud_progressbar_vehicles_ammo1_color "0.8 0.7 0"
  seta hud_progressbar_vehicles_ammo2_color "0.7 0.4 0"
  
 -seta _hud_panelorder "17 10 3 0 14 6 9 13 4 1 2 11 12 7 5 8 15 16 18 23 19 20 21 22 24 "
 +seta _hud_panelorder "17 10 3 0 14 6 9 13 4 1 2 11 12 7 5 8 25 15 16 18 23 19 20 21 22 24 "
  
  seta hud_configure_grid "1"
  seta hud_configure_grid_xsize "0.010000"
@@@ -228,8 -228,6 +228,6 @@@ seta hud_panel_engineinfo_bg_color_tea
  seta hud_panel_engineinfo_bg_alpha ""
  seta hud_panel_engineinfo_bg_border ""
  seta hud_panel_engineinfo_bg_padding ""
- seta hud_panel_engineinfo_framecounter_time "0.1"
- seta hud_panel_engineinfo_framecounter_decimals "0"
  
  seta hud_panel_infomessages_pos "0.710000 0"
  seta hud_panel_infomessages_size "0.280000 0.090000"
@@@ -382,13 -380,4 +380,13 @@@ seta hud_panel_scoreboard_bg_teams_colo
  seta hud_panel_scoreboard_accuracy_doublerows "1"
  seta hud_panel_scoreboard_accuracy_nocolors "0"
  
 +seta hud_panel_strafehud_pos "0.380000 0.550000"
 +seta hud_panel_strafehud_size "0.240000 0.025000"
 +seta hud_panel_strafehud_bg ""
 +seta hud_panel_strafehud_bg_color ""
 +seta hud_panel_strafehud_bg_color_team ""
 +seta hud_panel_strafehud_bg_alpha ""
 +seta hud_panel_strafehud_bg_border ""
 +seta hud_panel_strafehud_bg_padding ""
 +
  menu_sync
index d9af6235addae66f11257b450335969587353173,2cb300545a3030288e946b86fa7ea74293ee1bcb..2afde7b37c7e9aa01af05ff2b0acb5fb581b5b81
@@@ -30,7 -30,7 +30,7 @@@ seta hud_progressbar_acceleration_neg_c
  seta hud_progressbar_vehicles_ammo1_color "0.8 0.7 0"
  seta hud_progressbar_vehicles_ammo2_color "0.7 0.4 0"
  
 -seta _hud_panelorder "17 15 3 1 2 11 10 0 14 6 9 13 4 12 7 5 8 16 18 23 19 20 21 22 24 "
 +seta _hud_panelorder "17 25 15 3 1 2 11 10 0 14 6 9 13 4 12 7 5 8 16 18 23 19 20 21 22 24 "
  
  seta hud_configure_grid "1"
  seta hud_configure_grid_xsize "0.010000"
@@@ -228,8 -228,6 +228,6 @@@ seta hud_panel_engineinfo_bg_color_tea
  seta hud_panel_engineinfo_bg_alpha ""
  seta hud_panel_engineinfo_bg_border ""
  seta hud_panel_engineinfo_bg_padding ""
- seta hud_panel_engineinfo_framecounter_time "0.1"
- seta hud_panel_engineinfo_framecounter_decimals "0"
  
  seta hud_panel_infomessages_pos "0.710000 0"
  seta hud_panel_infomessages_size "0.280000 0.090000"
@@@ -382,13 -380,4 +380,13 @@@ seta hud_panel_scoreboard_bg_teams_colo
  seta hud_panel_scoreboard_accuracy_doublerows "1"
  seta hud_panel_scoreboard_accuracy_nocolors "0"
  
 +seta hud_panel_strafehud_pos "0.330000 0.700000"
 +seta hud_panel_strafehud_size "0.340000 0.015000"
 +seta hud_panel_strafehud_bg ""
 +seta hud_panel_strafehud_bg_color ""
 +seta hud_panel_strafehud_bg_color_team ""
 +seta hud_panel_strafehud_bg_alpha ""
 +seta hud_panel_strafehud_bg_border ""
 +seta hud_panel_strafehud_bg_padding ""
 +
  menu_sync
diff --combined hud_luminos_old.cfg
index f10fdee648abd230470b5ad51625455cddfcb962,a842dcd35da8ecffd1ac4a09588e68430f3c8e01..9bd3c15d79eb68318bb65676005fdffcc6a364fa
@@@ -30,7 -30,7 +30,7 @@@ seta hud_progressbar_acceleration_neg_c
  seta hud_progressbar_vehicles_ammo1_color "0.8 0.7 0"
  seta hud_progressbar_vehicles_ammo2_color "0.7 0.4 0"
  
 -seta _hud_panelorder "17 15 10 9 6 8 14 5 0 4 13 2 7 1 3 11 12 16 18 23 19 20 21 22 24 "
 +seta _hud_panelorder "17 25 15 10 9 6 8 14 5 0 4 13 2 7 1 3 11 12 16 18 23 19 20 21 22 24 "
  
  seta hud_configure_grid "1"
  seta hud_configure_grid_xsize "0.010000"
@@@ -228,8 -228,6 +228,6 @@@ seta hud_panel_engineinfo_bg_color_tea
  seta hud_panel_engineinfo_bg_alpha ""
  seta hud_panel_engineinfo_bg_border ""
  seta hud_panel_engineinfo_bg_padding ""
- seta hud_panel_engineinfo_framecounter_time "0.1"
- seta hud_panel_engineinfo_framecounter_decimals "0"
  
  seta hud_panel_infomessages_pos "0.510000 0"
  seta hud_panel_infomessages_size "0.340000 0.090000"
@@@ -382,13 -380,4 +380,13 @@@ seta hud_panel_scoreboard_bg_teams_colo
  seta hud_panel_scoreboard_accuracy_doublerows "1"
  seta hud_panel_scoreboard_accuracy_nocolors "0"
  
 +seta hud_panel_strafehud_pos "0.320000 0.540000"
 +seta hud_panel_strafehud_size "0.360000 0.025000"
 +seta hud_panel_strafehud_bg ""
 +seta hud_panel_strafehud_bg_color ""
 +seta hud_panel_strafehud_bg_color_team ""
 +seta hud_panel_strafehud_bg_alpha ""
 +seta hud_panel_strafehud_bg_border ""
 +seta hud_panel_strafehud_bg_padding ""
 +
  menu_sync
diff --combined hud_nexuiz.cfg
index e4b6fdb2718d4b648e172507cf0253f1b262fb5c,da4f4d2b21ce43af8b870f796fbbdb08f47dffe8..314812d05c249f32edd895fb033b791e8bd4d475
@@@ -30,7 -30,7 +30,7 @@@ seta hud_progressbar_acceleration_neg_c
  seta hud_progressbar_vehicles_ammo1_color "0.8 0.7 0"
  seta hud_progressbar_vehicles_ammo2_color "0.7 0.4 0"
  
 -seta _hud_panelorder "17 15 0 11 8 5 6 14 9 13 7 2 3 1 10 12 4 16 18 23 19 20 21 22 24 "
 +seta _hud_panelorder "17 25 15 0 11 8 5 6 14 9 13 7 2 3 1 10 12 4 16 18 23 19 20 21 22 24 "
  
  seta hud_configure_grid "1"
  seta hud_configure_grid_xsize "0.010000"
@@@ -228,8 -228,6 +228,6 @@@ seta hud_panel_engineinfo_bg_color_tea
  seta hud_panel_engineinfo_bg_alpha ""
  seta hud_panel_engineinfo_bg_border ""
  seta hud_panel_engineinfo_bg_padding ""
- seta hud_panel_engineinfo_framecounter_time "0.1"
- seta hud_panel_engineinfo_framecounter_decimals "0"
  
  seta hud_panel_infomessages_pos "0.690000 0.620000"
  seta hud_panel_infomessages_size "0.300000 0.100000"
@@@ -382,13 -380,4 +380,13 @@@ seta hud_panel_scoreboard_bg_teams_colo
  seta hud_panel_scoreboard_accuracy_doublerows "1"
  seta hud_panel_scoreboard_accuracy_nocolors "0"
  
 +seta hud_panel_strafehud_pos "0.360000 0.570000"
 +seta hud_panel_strafehud_size "0.280000 0.025000"
 +seta hud_panel_strafehud_bg "0"
 +seta hud_panel_strafehud_bg_color ""
 +seta hud_panel_strafehud_bg_color_team ""
 +seta hud_panel_strafehud_bg_alpha ""
 +seta hud_panel_strafehud_bg_border ""
 +seta hud_panel_strafehud_bg_padding ""
 +
  menu_sync
index e2cd2c3f38ad3765769e6803cf0c399ea7898fc3,5c04cf5ea4a087a2a5cb2503ec5a798dca2ab555..789030b03522b59e2bf4919a6fd4d21b08f38604
@@@ -61,6 -61,7 +61,7 @@@ bool autocvar_cl_particles_oldvortexbea
  float autocvar_cl_particles_quality;
  bool autocvar_cl_projectiles_sloppy;
  bool autocvar_cl_readpicture_force;
+ bool autocvar_cl_respawn_ghosts_keepcolors;
  bool autocvar_cl_reticle = 1;
  float autocvar_cl_reticle_normal_alpha = 1;
  bool autocvar_cl_reticle_weapon = 1;
@@@ -70,7 -71,6 +71,6 @@@ bool autocvar_cl_spawn_event_particles
  bool autocvar_cl_spawn_event_sound = 1;
  // float autocvar_cl_spawn_point_model;
  bool autocvar_cl_spawn_point_particles;
- float autocvar_cl_spawn_point_dist_min = 800;
  float autocvar_cl_spawn_point_dist_max = 1200;
  bool autocvar_cl_spawnzoom = 1;
  float autocvar_cl_spawnzoom_speed = 1;
@@@ -121,7 -121,8 +121,8 @@@ string autocvar_crosshair_hitindication
  string autocvar_crosshair_hitindication_per_weapon_color;
  float autocvar_crosshair_hitindication_speed;
  bool autocvar_crosshair_hittest;
- bool autocvar_crosshair_hittest_blur;
+ bool autocvar_crosshair_hittest_blur_teammate = 0;
+ bool autocvar_crosshair_hittest_blur_wall = 1;
  //float autocvar_crosshair_hittest_scale = 1.25;
  bool autocvar_crosshair_hittest_showimpact;
  bool autocvar_crosshair_per_weapon;
@@@ -210,7 -211,6 +211,7 @@@ bool autocvar_hud_panel_infomessages_dy
  bool autocvar_hud_panel_physics_dynamichud      = true;
  bool autocvar_hud_panel_centerprint_dynamichud  = true;
  //bool autocvar_hud_panel_itemstime_dynamichud    = true;
 +bool autocvar_hud_panel_strafehud_dynamichud    = true;
  bool autocvar_hud_panel_healtharmor_hide_ondeath  = false;
  bool autocvar_hud_panel_ammo_hide_ondeath         = false;
  bool autocvar_hud_panel_powerups_hide_ondeath     = false;
@@@ -320,25 -320,6 +321,25 @@@ float autocvar_hud_panel_radar_maximize
  int autocvar_hud_panel_radar_maximized_zoommode;
  bool autocvar_hud_panel_score;
  bool autocvar_hud_panel_score_rankings;
 +int autocvar_hud_panel_strafehud = 3;
 +bool autocvar__hud_panel_strafehud_demo = false;
 +bool autocvar__hud_panel_strafehud_center = false;
 +int autocvar_hud_panel_strafehud_mode = 0;
 +float autocvar_hud_panel_strafehud_bar_alpha = 0.3;
 +vector autocvar_hud_panel_strafehud_bar_color = '1 1 1';
 +vector autocvar_hud_panel_strafehud_indicator_color = '0 1 0';
 +vector autocvar_hud_panel_strafehud_indicator_switch_color = '1 1 0';
 +float autocvar_hud_panel_strafehud_angle = 0;
 +vector autocvar_hud_panel_strafehud_good_color = '0 1 1';
 +vector autocvar_hud_panel_strafehud_warning_color = '1 1 0';
 +vector autocvar_hud_panel_strafehud_alert_color = '1 0 1';
 +float autocvar_hud_panel_strafehud_angle_alpha = 0.8;
 +vector autocvar_hud_panel_strafehud_direction_color = '0 0.5 1';
 +float autocvar_hud_panel_strafehud_timeout_air = 0;
 +float autocvar_hud_panel_strafehud_timeout_ground = 0.03333333;
 +float autocvar_hud_panel_strafehud_timeout_strafe = 0.1;
 +float autocvar_hud_panel_strafehud_timeout_direction = 0.5;
 +float autocvar_hud_panel_strafehud_indicator_minspeed = -1;
  bool autocvar_hud_panel_timer;
  bool autocvar_hud_panel_timer_increment;
  float autocvar_hud_panel_update_interval;
@@@ -466,6 -447,7 +467,7 @@@ int autocvar__cl_color
  int autocvar__cl_playerskin;
  string autocvar__cl_playermodel;
  float autocvar_cl_deathglow;
+ float autocvar_cl_deathglow_min = 0.5;
  bool autocvar_developer_csqcentities;
  float autocvar_cl_jetpack_attenuation = 2;
  bool autocvar_cl_showspectators;
diff --combined qcsrc/client/hud/hud.qh
index 970b902a185a20dec95389cedb16beb45f366790,1021d7067e06f3db382643a172be9a6463bd3999..4a1eea2400d2b7e038a0ed36ab34a9c3ced8357b
@@@ -3,6 -3,12 +3,12 @@@
  #include <common/weapons/_all.qh>
  #include <common/scores.qh>
  
+ vector OFFSET_CURSOR = '0 0 0';
+ vector SIZE_CURSOR = '32 32 0';
+ void draw_cursor(vector pos, vector ofs, string img, vector col, float a);
+ void draw_cursor_normal(vector pos, vector col, float a);
+ void LoadMenuSkinValues();
  void Hud_Dynamic_Frame();
  
  bool HUD_Radar_Clickable();
@@@ -11,19 -17,25 +17,25 @@@ bool HUD_WouldShowCursor()
  bool QuickMenu_IsOpened();
  
  REGISTRY(hud_panels, BITS(6))
- #define hud_panels_from(i) _hud_panels_from(i, NULL)
  REGISTER_REGISTRY(hud_panels)
  
- #define REGISTER_HUD_PANEL(id, draw_func, configflags, showflags) \
+ REGISTRY_DEFINE_GET(hud_panels, NULL)
+ #define _REGISTER_HUD_PANEL(id, draw_func, export_func, configflags, showflags) \
        void draw_func(); \
+       void export_func(int fh); \
        REGISTER(hud_panels, HUD_PANEL, id, m_id, new_pure(hud_panel)) { \
                this.panel_id = this.m_id; \
                this.panel_draw = draw_func; \
+               this.panel_export = export_func; \
                this.panel_name = strzone(strtolower(#id)); \
                this.panel_configflags = configflags; \
                this.panel_showflags = showflags; \
        }
  
+ #define REGISTER_HUD_PANEL(id, draw_func, configflags, showflags) \
+       _REGISTER_HUD_PANEL(id, draw_func, draw_func##_Export, configflags, showflags)
  #define HUD_PANEL(NAME) HUD_PANEL_##NAME
  
  // draw the background/borders
@@@ -38,7 -50,7 +50,7 @@@
                ); \
  MACRO_END
  
- int panel_order[hud_panels_MAX];
+ int panel_order[REGISTRY_MAX(hud_panels)];
  string hud_panelorder_prev;
  
  bool hud_draw_maximized;
@@@ -53,7 -65,7 +65,7 @@@ float HUD_Radar_InputEvent(float bInput
  void HUD_Radar_Hide_Maximized();
  
  float HUD_GetRowCount(int item_count, vector size, float item_aspect);
- vector HUD_Get_Num_Color (float hp, float maxvalue);
+ vector HUD_Get_Num_Color(float hp, float maxvalue, bool blink);
  void DrawNumIcon(vector myPos, vector mySize, float theTime, string icon, bool vertical, bool icon_right_align, vector color, float theAlpha);
  void DrawNumIcon_expanding(vector myPos, vector mySize, float theTime, string icon, bool vertical, int icon_right_align, vector color, float theAlpha, float fadelerp);
  void HUD_Panel_DrawHighlight(vector pos, vector mySize, vector color, float theAlpha, int drawflag);
@@@ -84,7 -96,7 +96,7 @@@ float highlightedAction; // 0 = nothing
  
  const float BORDER_MULTIPLIER = 4;
  float scoreboard_bottom;
- int weapon_accuracy[Weapons_MAX];
+ int weapon_accuracy[REGISTRY_MAX(Weapons)];
  
  entity complain_weapon;
  int complain_weapon_type;
@@@ -149,6 -161,7 +161,7 @@@ float panel_bg_padding
  string panel_bg_padding_str;
  
  classfield(HUDPanel) .void() panel_draw;
+ classfield(HUDPanel) .void(int fh) panel_export;
  
  // chat panel can be reduced / moved while the mapvote is active
  // let know the mapvote panel about chat pos and size
@@@ -228,7 -241,6 +241,7 @@@ REGISTER_HUD_PANEL(MAPVOTE,         Map
  REGISTER_HUD_PANEL(ITEMSTIME,       HUD_ItemsTime,      PANEL_CONFIG_MAIN | PANEL_CONFIG_CANBEOFF, PANEL_SHOW_MAINGAME                                                                ) // ITEMSTIME
  REGISTER_HUD_PANEL(QUICKMENU,       HUD_QuickMenu,      PANEL_CONFIG_MAIN                        , PANEL_SHOW_MAINGAME | PANEL_SHOW_MINIGAME                                          ) // QUICKMENU
  REGISTER_HUD_PANEL(SCOREBOARD,      Scoreboard_Draw,    PANEL_CONFIG_NO                          , PANEL_SHOW_MAINGAME | PANEL_SHOW_MINIGAME | PANEL_SHOW_MAPVOTE | PANEL_SHOW_WITH_SB) // SCOREBOARD
 +REGISTER_HUD_PANEL(STRAFEHUD,       HUD_StrafeHUD,      PANEL_CONFIG_MAIN | PANEL_CONFIG_CANBEOFF, PANEL_SHOW_MAINGAME                                                                ) // STRAFEHUD
  // always add new panels to the end of list
  
  // Because calling lots of functions in QC apparently cuts fps in half on many machines:
index a7ea1537667414201eab790e6627d87a347fdfe5,97c1ce9c595ec920785729eff08750a2cfd471b5..2bb4ccead24a71d6df581c6db654e49acd47cb7e
@@@ -19,7 -19,7 +19,7 @@@
  #include <menu/xonotic/demolist.qh>
  #include <menu/xonotic/dialog.qh>
  #include <menu/xonotic/dialog_credits.qh>
- #include <menu/xonotic/dialog_disconnect.qc>
+ #include <menu/xonotic/dialog_disconnect.qh>
  #include <menu/xonotic/dialog_firstrun.qh>
  #include <menu/xonotic/dialog_hudpanel_ammo.qh>
  #include <menu/xonotic/dialog_hudpanel_centerprint.qh>
@@@ -37,7 -37,6 +37,7 @@@
  #include <menu/xonotic/dialog_hudpanel_racetimer.qh>
  #include <menu/xonotic/dialog_hudpanel_radar.qh>
  #include <menu/xonotic/dialog_hudpanel_score.qh>
 +#include <menu/xonotic/dialog_hudpanel_strafehud.qh>
  #include <menu/xonotic/dialog_hudpanel_timer.qh>
  #include <menu/xonotic/dialog_hudpanel_vote.qh>
  #include <menu/xonotic/dialog_hudpanel_weapons.qh>