X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fhud.qh;h=1fe76b091cc2239684a1a420d1e5ee95108b8a8e;hb=04ab0ff7c3c5fcfe9780eadccfd5abd03d25b181;hp=30f93d498505265192f2e4693c1f31162a4182a8;hpb=c21ea9e62788408a71ee7ba938cc9d59b14bf0c1;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/hud.qh b/qcsrc/client/hud.qh index 30f93d498..1fe76b091 100644 --- a/qcsrc/client/hud.qh +++ b/qcsrc/client/hud.qh @@ -54,6 +54,8 @@ float hud_fade_alpha; string hud_skin_path; string hud_skin_prev; +vector myteamcolors; + var vector progressbar_color; entity highlightedPanel_backup; @@ -92,7 +94,6 @@ var string panel_bg_border_str; var float panel_bg_padding; var string panel_bg_padding_str; -.string panel_cvar; .void() panel_draw; float current_player; @@ -125,12 +126,13 @@ float current_player; HUD_PANEL_LAST = HUD_PANEL_##NAME = HUD_PANEL_NUM; \ entity hud_panelent = spawn(); \ hud_panel[HUD_PANEL_##NAME] = hud_panelent; \ + hud_panelent.classname = "hud_panel"; \ hud_panelent.panel_name = #name; \ hud_panelent.panel_id = HUD_PANEL_##NAME; \ hud_panelent.panel_draw = ##draw_func; \ ++HUD_PANEL_NUM; \ } \ - ACCUMULATE_FUNCTION(RegisterHUD_Panels, RegisterHUD_Panel_##NAME) + ACCUMULATE_FUNCTION(RegisterHUD_Panels, RegisterHUD_Panel_##NAME); HUD_PANELS #undef HUD_PANEL @@ -186,7 +188,10 @@ if(!autocvar__hud_configure && panel_bg_str == "0") {\ // Get value for panel_bg_color: if "" fetch default, else use panel_bg_color. Convert pants, shirt or teamcolor into a vector. #define HUD_Panel_GetColor()\ if((teamplay) && panel_bg_color_team) {\ - panel_bg_color = colormapPaletteColor(mod(stof(getplayerkeyvalue(current_player - 1, "colors")), 16), 1) * panel_bg_color_team;\ + if(autocvar__hud_configure && myteam == NUM_SPECTATOR)\ + panel_bg_color = '1 0 0' * panel_bg_color_team;\ + else\ + panel_bg_color = myteamcolors * panel_bg_color_team;\ } else if (autocvar_hud_configure_teamcolorforced && autocvar__hud_configure && panel_bg_color_team) {\ panel_bg_color = '1 0 0' * panel_bg_color_team;\ } else {\ @@ -316,9 +321,10 @@ else\ }\ } +// NOTE: in hud_configure mode cvars must be reloaded every frame #define HUD_Panel_UpdateCvars() \ -panel_enabled = cvar(strcat("hud_panel_", panel.panel_name)); \ -if(panel.update_time < time) { \ +if(panel.update_time <= time) { \ + if(autocvar__hud_configure) panel_enabled = cvar(strcat("hud_panel_", panel.panel_name)); \ panel_pos = stov(cvar_string(strcat("hud_panel_", panel.panel_name, "_pos"))); \ panel_size = stov(cvar_string(strcat("hud_panel_", panel.panel_name, "_size"))); \ panel_bg_str = cvar_string(strcat("hud_panel_", panel.panel_name, "_bg")); \ @@ -334,8 +340,13 @@ if(panel.update_time < time) { \ } \ panel.current_panel_pos = panel_pos; \ panel.current_panel_size = panel_size; \ - if(panel.current_panel_bg != "") \ + if(panel.current_panel_bg) \ strunzone(panel.current_panel_bg); \ + if(panel_bg == "")\ + {\ + /*print(sprintf("^xf08 %s panel: panel_bg is empty\n", panel.panel_name));*/\ + panel_bg = "0";\ + }\ panel.current_panel_bg = strzone(panel_bg); \ panel.current_panel_bg_alpha = panel_bg_alpha; \ panel.current_panel_bg_border = panel_bg_border; \ @@ -343,11 +354,16 @@ if(panel.update_time < time) { \ panel.current_panel_bg_color_team = panel_bg_color_team; \ panel.current_panel_bg_padding = panel_bg_padding; \ panel.current_panel_fg_alpha = panel_fg_alpha; \ - panel.update_time = (autocvar__hud_configure) ? time : time + 2; \ + panel.update_time = (autocvar__hud_configure) ? time : time + autocvar_hud_panel_update_interval; \ } else { \ panel_pos = panel.current_panel_pos; \ panel_size = panel.current_panel_size; \ panel_bg = panel.current_panel_bg; \ + if(panel.current_panel_bg == "")\ + {\ + /*print(sprintf("^xf08 %s panel: panel.current_panel_bg is empty\n", panel.panel_name));*/\ + panel_bg = "0";\ + }\ panel_bg_alpha = panel.current_panel_bg_alpha; \ panel_bg_border = panel.current_panel_bg_border; \ panel_bg_color = panel.current_panel_bg_color; \ @@ -357,6 +373,7 @@ if(panel.update_time < time) { \ } ENDS_WITH_CURLY_BRACE #define HUD_Panel_UpdatePosSize() {\ +panel_enabled = cvar(strcat("hud_panel_", panel.panel_name)); \ panel_pos = stov(cvar_string(strcat("hud_panel_", panel.panel_name, "_pos"))); \ panel_size = stov(cvar_string(strcat("hud_panel_", panel.panel_name, "_size"))); \ HUD_Panel_GetScaledVectors()\