]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/hud/hud.qc
Make the scoreboard a panel
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / hud / hud.qc
index c87cb5a89cd853e3561826106d9b31fd2dd4ac2c..62f5dcb6d82a66a115b478c81bf6bb7235ef0f45 100644 (file)
@@ -387,10 +387,10 @@ void HUD_Reset()
                HUD_Mod_CTF_Reset();
 }
 
-float autocvar_hud_dynamic_shake;
-float autocvar_hud_dynamic_shake_damage_max;
-float autocvar_hud_dynamic_shake_damage_min;
-float autocvar_hud_dynamic_shake_scale;
+float autocvar_hud_dynamic_shake = 1;
+float autocvar_hud_dynamic_shake_damage_max = 130;
+float autocvar_hud_dynamic_shake_damage_min = 10;
+float autocvar_hud_dynamic_shake_scale = 0.2;
 float hud_dynamic_shake_x[10] = {0,    1, -0.7,  0.5, -0.3,  0.2, -0.1,  0.1,  0.0, 0};
 float hud_dynamic_shake_y[10] = {0,  0.4,  0.8, -0.2, -0.6,  0.0,  0.3,  0.1, -0.1, 0};
 bool Hud_Shake_Update()
@@ -446,12 +446,15 @@ void Hud_Dynamic_Frame()
 
        if(autocvar_hud_dynamic_shake > 0)
        {
+               static float old_health = 0;
+               float health = max(-1, STAT(HEALTH));
                if(hud_dynamic_shake_factor == -1) // don't allow the effect for this frame
+               {
                        hud_dynamic_shake_factor = 0;
+                       old_health = health;
+               }
                else
                {
-                       static float old_health = 0;
-                       float health = max(-1, STAT(HEALTH));
                        float new_hud_dynamic_shake_factor = 0;
                        if (old_health - health >= autocvar_hud_dynamic_shake_damage_min
                                && autocvar_hud_dynamic_shake_damage_max > autocvar_hud_dynamic_shake_damage_min
@@ -487,17 +490,24 @@ void Hud_Dynamic_Frame()
        hud_shift_current = hud_shift;
 }
 
+// Scoreboard panel
+//
+void HUD_DrawScoreboard();
+void HUD_Scoreboard(void)
+{
+       HUD_DrawScoreboard();
+}
+
 void HUD_Main()
 {
        int i;
-       // global hud theAlpha fade
+       // global hud alpha fade (scoreboard-related panels behave differently and override it temporarly)
        if(menu_enabled == 1)
                hud_fade_alpha = 1;
+       else if(!autocvar__hud_configure)
+               hud_fade_alpha = (1 - scoreboard_fade_alpha) * (1 - autocvar__menu_alpha);
        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();
 
@@ -507,8 +517,14 @@ void HUD_Main()
        // they must fade only when the menu does
        if(scoreboard_fade_alpha == 1)
        {
-               HUD_Panel_Draw(HUD_PANEL(CENTERPRINT));
-               return;
+               if(autocvar__menu_alpha == 1)
+                       return;
+               if(scoreboard_fade_alpha == 1)
+               {
+                       HUD_Panel_Draw(HUD_PANEL(SCOREBOARD));
+                       HUD_Panel_Draw(HUD_PANEL(CENTERPRINT));
+                       return;
+               }
        }
 
        if(!autocvar__hud_configure && !hud_fade_alpha)