X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fhud%2Fhud.qc;h=f48d789c3ce55fd990684007217db724cc8d349f;hb=a3a484a54551f0208b6cf1e92bb7e5a3ee1a72f3;hp=d575e8cb546eb06ee5ded7a65ef60a864d7db649;hpb=cff3504ad5e8ace014ea44de7ad04ad6e246a277;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/hud/hud.qc b/qcsrc/client/hud/hud.qc index d575e8cb5..f48d789c3 100644 --- a/qcsrc/client/hud/hud.qc +++ b/qcsrc/client/hud/hud.qc @@ -1,8 +1,8 @@ #include "hud.qh" +#include "panel/scoreboard.qh" #include "hud_config.qh" #include "../mapvoting.qh" -#include "../scoreboard.qh" #include "../teamradar.qh" #include #include @@ -358,33 +358,52 @@ void HUD_Vehicle() } } -bool HUD_Panel_CheckFlags(int showflags) -{ - TC(int, showflags); - if ( HUD_Minigame_Showpanels() ) - return showflags & PANEL_SHOW_MINIGAME; - if(intermission == 2) - return showflags & PANEL_SHOW_MAPVOTE; - return showflags & PANEL_SHOW_MAINGAME; -} - void HUD_Panel_Draw(entity panent) { panel = panent; - if(autocvar__hud_configure) + if (autocvar__hud_configure) { - if(panel.panel_configflags & PANEL_CONFIG_MAIN) - panel.panel_draw(); + if (!(panel.panel_configflags & PANEL_CONFIG_MAIN)) + return; + panel_fade_alpha = 1; + Hud_Panel_GetPanelEnabled(); + panel.panel_draw(); + return; } - else if(HUD_Panel_CheckFlags(panel.panel_showflags)) + + bool draw_allowed = false; + if (HUD_Minigame_Showpanels()) + { + if (panel.panel_showflags & PANEL_SHOW_MINIGAME) + draw_allowed = true; + } + else if(intermission == 2) + { + if(panel.panel_showflags & PANEL_SHOW_MAPVOTE) + draw_allowed = true; + } + else if (panel.panel_showflags & PANEL_SHOW_MAINGAME) + draw_allowed = true; + + if (draw_allowed) + { + if (panel.panel_showflags & PANEL_SHOW_WITH_SB) + panel_fade_alpha = 1; + else + { + panel_fade_alpha = 1 - scoreboard_fade_alpha; + if(!panel_fade_alpha) + return; + } panel.panel_draw(); + } } void HUD_Reset() { // reset gametype specific icons - if(gametype == MAPINFO_TYPE_CTF) - HUD_Mod_CTF_Reset(); + if(gametype.m_modicons_reset) + gametype.m_modicons_reset(); } float autocvar_hud_dynamic_shake = 1; @@ -493,34 +512,18 @@ void Hud_Dynamic_Frame() void HUD_Main() { int i; - // global hud alpha fade - if(menu_enabled == 1) + if(hud_configure_menu_open == 1) hud_fade_alpha = 1; else - hud_fade_alpha = (1 - autocvar__menu_alpha); - - if(scoreboard_fade_alpha) - hud_fade_alpha = (1 - scoreboard_fade_alpha); + hud_fade_alpha = 1 - autocvar__menu_alpha; HUD_Configure_Frame(); Hud_Dynamic_Frame(); - // panels that we want to be active together with the scoreboard - // they must fade only when the menu does if(scoreboard_fade_alpha == 1) - { - HUD_Panel_Draw(HUD_PANEL(CENTERPRINT)); - return; - } - - if(!autocvar__hud_configure && !hud_fade_alpha) - { - hud_fade_alpha = 1; - HUD_Panel_Draw(HUD_PANEL(VOTE)); - hud_fade_alpha = 0; - return; - } + if(autocvar__menu_alpha == 1) + return; // Drawing stuff if (hud_skin_prev != autocvar_hud_skin) @@ -602,7 +605,7 @@ void HUD_Main() } } if (warning) - LOG_TRACE("Automatically fixed wrong/missing panel numbers in _hud_panelorder\n"); + LOG_TRACE("Automatically fixed wrong/missing panel numbers in _hud_panelorder"); cvar_set("_hud_panelorder", s); if(hud_panelorder_prev) @@ -631,8 +634,9 @@ void HUD_Main() HUD_Panel_Draw(HUD_PANEL(CHAT)); if(hud_panel_quickmenu) HUD_Panel_Draw(HUD_PANEL(QUICKMENU)); + HUD_Panel_Draw(HUD_PANEL(SCOREBOARD)); - if (scoreboard_active || intermission == 2) + if (intermission == 2) HUD_Reset(); HUD_Configure_PostDraw();