X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fhud%2Fpanel%2Fpowerups.qc;h=dd574cf9b039c4b69d6654792a36525e7c54ba57;hb=7e474d576080259e21690de30778b17029b5c0f2;hp=51574a3299bd2643841d72737433713115e4b31a;hpb=40a875a1a47b9910ea4cf8b723fb8d8b78053d70;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/hud/panel/powerups.qc b/qcsrc/client/hud/panel/powerups.qc index 51574a329..dd574cf9b 100644 --- a/qcsrc/client/hud/panel/powerups.qc +++ b/qcsrc/client/hud/panel/powerups.qc @@ -1,3 +1,10 @@ +#include "powerups.qh" + +#include +#include +#include +#include + // Powerups (#2) // Powerup item fields (reusing existing fields) @@ -40,6 +47,7 @@ void addPowerupItem(string name, string icon, vector color, float currentTime, f int getPowerupItemAlign(int align, int column, int row, int columns, int rows, bool isVertical) { + TC(int, align); TC(int, column); TC(int, row); TC(int, columns); TC(int, rows); TC(bool, isVertical); if(align < 2) return align; @@ -56,17 +64,18 @@ int getPowerupItemAlign(int align, int column, int row, int columns, int rows, b void HUD_Powerups() { - int allItems = getstati(STAT_ITEMS, 0, 24); + int allItems = STAT(ITEMS); int allBuffs = STAT(BUFFS); - int strengthTime, shieldTime, superTime; + float strengthTime, shieldTime, superTime; // Initialize items if(!autocvar__hud_configure) { - if(!autocvar_hud_panel_powerups) return; - if(spectatee_status == -1) return; - if(getstati(STAT_HEALTH) <= 0) return; - if(!(allItems & (ITEM_Strength.m_itemid | ITEM_Shield.m_itemid | IT_SUPERWEAPON)) && !allBuffs) return; + if((!autocvar_hud_panel_powerups) || (spectatee_status == -1)) + return; + if(STAT(HEALTH) <= 0 && autocvar_hud_panel_powerups_hide_ondeath) + return; + //if(!(allItems & (ITEM_Strength.m_itemid | ITEM_Shield.m_itemid | IT_SUPERWEAPON)) && !allBuffs) return; strengthTime = bound(0, STAT(STRENGTH_FINISHED) - time, 99); shieldTime = bound(0, STAT(INVINCIBLE_FINISHED) - time, 99); @@ -97,16 +106,19 @@ void HUD_Powerups() if(superTime) addPowerupItem("Superweapons", "superweapons", autocvar_hud_progressbar_superweapons_color, superTime, 30); - FOREACH(Buffs, it.m_itemid & allBuffs, LAMBDA( - addPowerupItem(it.m_prettyName, strcat("buff_", it.m_name), it.m_color, bound(0, STAT(BUFF_TIME) - time, 99), 60); - )); + MUTATOR_CALLHOOK(HUD_Powerups_add); if(!powerupItemsCount) return; // Draw panel background - HUD_Panel_UpdateCvars(); - HUD_Panel_DrawBg(1); + HUD_Panel_LoadCvars(); + + if (autocvar_hud_panel_powerups_dynamichud) + HUD_Scale_Enable(); + else + HUD_Scale_Disable(); + HUD_Panel_DrawBg(); // Set drawing area vector pos = panel_pos; @@ -158,7 +170,7 @@ void HUD_Powerups() // Draw items from linked list vector itemPos = pos; - vector itemSize = eX * (size.x / columns) + eY * (size.y / rows); + vector itemSize = vec2(size.x / columns, size.y / rows); vector textColor = '1 1 1'; int fullSeconds = 0; @@ -169,7 +181,7 @@ void HUD_Powerups() draw_beginBoldFont(); for(entity item = powerupItems; item.count; item = item.chain) { - itemPos = eX * (pos.x + column * itemSize.x) + eY * (pos.y + row * itemSize.y); + itemPos = vec2(pos.x + column * itemSize.x, pos.y + row * itemSize.y); // Draw progressbar if(autocvar_hud_panel_powerups_progressbar)