]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/hud.qc
Fix ammo panel bug in hud_config mode
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / hud.qc
index 9b44566d84acafd01336f00792774873ab1c3310..7359468e0969d236738b619a367e8fa8c8553d7f 100644 (file)
@@ -933,16 +933,16 @@ void DrawAmmoItem(vector myPos, vector mySize, .float ammotype, float currently_
        if(currently_selected)
                drawpic_aspect_skin(myPos, "ammo_current_bg", mySize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
 
-    if(a > 0 && autocvar_hud_panel_ammo_progressbar)
-        HUD_Panel_DrawProgressBar(myPos + eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize_x, mySize - eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize_x, autocvar_hud_panel_ammo_progressbar_name, a/autocvar_hud_panel_ammo_maxammo, 0, 0, color, autocvar_hud_progressbar_alpha * panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
+       if(a > 0 && autocvar_hud_panel_ammo_progressbar)
+               HUD_Panel_DrawProgressBar(myPos + eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize_x, mySize - eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize_x, autocvar_hud_panel_ammo_progressbar_name, a/autocvar_hud_panel_ammo_maxammo, 0, 0, color, autocvar_hud_progressbar_alpha * panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
 
-    if(autocvar_hud_panel_ammo_text)
-    {
-        if(a > 0 || infinite_ammo)
-            drawstring_aspect(numpos, ftos(a), eX * (2/3) * mySize_x + eY * mySize_y, color, panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
-        else // "ghost" ammo count
-            drawstring_aspect(numpos, ftos(a), eX * (2/3) * mySize_x + eY * mySize_y, '0 0 0', panel_fg_alpha * theAlpha * 0.5, DRAWFLAG_NORMAL);
-    }
+       if(autocvar_hud_panel_ammo_text)
+       {
+               if(a > 0 || infinite_ammo)
+                       drawstring_aspect(numpos, ftos(a), eX * (2/3) * mySize_x + eY * mySize_y, color, panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
+               else // "ghost" ammo count
+                       drawstring_aspect(numpos, ftos(a), eX * (2/3) * mySize_x + eY * mySize_y, '0 0 0', panel_fg_alpha * theAlpha * 0.5, DRAWFLAG_NORMAL);
+       }
        if(a > 0 || infinite_ammo)
                drawpic_aspect_skin(picpos, GetAmmoPicture(ammotype), '1 1 0' * mySize_y, '1 1 1', panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
        else // "ghost" ammo icon
@@ -985,7 +985,7 @@ void HUD_Ammo(void)
        if (autocvar_hud_panel_ammo_onlycurrent)
                total_ammo_count = 1;
        else
-               total_ammo_count = AMMO_COUNT - 1; // fuel
+               total_ammo_count = AMMO_COUNT;
 
        if(draw_nades)
        {
@@ -1044,6 +1044,7 @@ void HUD_Ammo(void)
                                TRUE,
                                infinite_ammo
                        );
+               }
 
                ++row;
                if(row >= rows)
@@ -1051,7 +1052,6 @@ void HUD_Ammo(void)
                        row = 0;
                        column = column + 1;
                }
-               }
        }
        else
        {
@@ -1059,7 +1059,6 @@ void HUD_Ammo(void)
                row = column = 0;
                for(i = 0; i < AMMO_COUNT; ++i)
                {
-                       if(i == 4) continue; // fuel
                        ammotype = GetAmmoFieldFromNum(i);
                        DrawAmmoItem(
                                pos + eX * column * (ammo_size_x + offset_x) + eY * row * (ammo_size_y + offset_y),
@@ -4226,9 +4225,9 @@ void HUD_CenterPrint (void)
                {
                        float r;
                        r = random();
-                       if (r > 0.9)
+                       if (r > 0.75)
                                centerprint_generic(floor(r*1000), strcat(sprintf("^3Countdown message at time %s", seconds_tostring(time)), ", seconds left: ^COUNT"), 1, 10);
-                       else if (r > 0.8)
+                       else if (r > 0.5)
                                centerprint_generic(0, sprintf("^1Multiline message at time %s that\n^1lasts longer than normal", seconds_tostring(time)), 20, 0);
                        else
                                centerprint_hud(sprintf("Message at time %s", seconds_tostring(time)));
@@ -4320,7 +4319,8 @@ void HUD_CenterPrint (void)
                else // Expiring soon, so fade it out.
                        a = (centerprint_expire_time[j] - time) / max(0.0001, autocvar_hud_panel_centerprint_fade_out);
 
-               if (a <= 0.5/255.0)  // Guaranteed invisible - don't show.
+               // while counting down show it anyway in order to hold the current message position
+               if (a <= 0.5/255.0 && centerprint_countdown_num[j] == 0)  // Guaranteed invisible - don't show.
                        continue;
                if (a > 1)
                        a = 1;