From b3fba076da9a75fef85151fef59e7d0a5ae4ea4b Mon Sep 17 00:00:00 2001 From: FruitieX Date: Sat, 15 May 2010 14:01:49 +0300 Subject: [PATCH] add a horizontal mode for h/a panel, also allow mirroring contents --- defaultXonotic.cfg | 1 + gfx/hud/old/statusbar_vertical.tga | Bin 0 -> 12140 bytes qcsrc/client/hud.qc | 153 +++++++++++++++++++++++------ 3 files changed, 125 insertions(+), 29 deletions(-) create mode 100644 gfx/hud/old/statusbar_vertical.tga diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index 37f3a0f23..e085f29de 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -1381,6 +1381,7 @@ seta hud_healtharmor 1 "enable/disable this panel" seta hud_healtharmor_pos "-0.627451 -0.066667" "position of this panel" seta hud_healtharmor_size "0.291174 0.066667" "size of this panel" seta hud_healtharmor_flip 1 "flip health/armor positions" +seta hud_healtharmor_mirror 1 "mirror alignment of panel items" seta hud_healtharmor_bg "" "if set to something else than \"\" = override default background, if set to 0 = disable background" seta hud_healtharmor_bg_color "" "optional R G B string of the background color, otherwise use hud default" seta hud_healtharmor_bg_alpha 0 "if set to something else than 0 = override default alpha" diff --git a/gfx/hud/old/statusbar_vertical.tga b/gfx/hud/old/statusbar_vertical.tga new file mode 100644 index 0000000000000000000000000000000000000000..d63a37fc065769f169f15456ba1647c4ec1153f1 GIT binary patch literal 12140 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 5) { if(leftactive) { len = strlen(ftos(leftcnt)); - drawpic_skin(pos, "statusbar", eX * 0.5 * mySize_x * min(1, leftcnt/200) + eY * mySize_y, HUD_Panel_GetProgressBarColor(leftname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); - drawpic_skin(pos, strcat("", leftname), '1 1 0' * mySize_y, '1 1 1', leftalpha * hud_alpha_fg, DRAWFLAG_NORMAL); - HUD_DrawXNum_Colored(pos + eX * mySize_y + eY * 0.25 * mySize_y, leftcnt, len, 0.5 * mySize_y, hud_alpha_fg); + if(cvar(strcat("hud_", HUD_Panel_GetName(3), "_mirror"))) { + barpos = pos + eX * 0.5 * mySize_x - eX * 0.5 * mySize_x * min(1, leftcnt/200); + barsize = eX * 0.5 * mySize_x * min(1, leftcnt/200) + eY * mySize_y; + picpos = pos + eX * 0.5 * mySize_x - eX * mySize_y; + numpos = picpos - eX * 3 * 0.5 * mySize_y + eX * (3-len) * 0.5 * mySize_y + eY * 0.25 * mySize_y; + } else { + barpos = pos; + barsize = eX * 0.5 * mySize_x * min(1, leftcnt/200) + eY * mySize_y; + picpos = pos; + numpos = picpos + eX * mySize_y + eY * 0.25 * mySize_y; + } + + drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor(leftname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); + drawpic_skin(picpos, leftname, '1 1 0' * mySize_y, '1 1 1', leftalpha * hud_alpha_fg, DRAWFLAG_NORMAL); + HUD_DrawXNum_Colored(numpos, leftcnt, len, 0.5 * mySize_y, hud_alpha_fg); } if(rightactive) { - drawpic_skin(pos + eX * mySize_x - eX * 0.5 * mySize_x * min(1, rightcnt/200), "statusbar", eX * 0.5 * mySize_x * min(1, rightcnt/200) + eY * mySize_y, HUD_Panel_GetProgressBarColor(rightname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); - drawpic_skin(pos + eX * mySize_x - eX * mySize_y, strcat("", rightname), '1 1 0' * mySize_y, '1 1 1', rightalpha * hud_alpha_fg, DRAWFLAG_NORMAL); - HUD_DrawXNum_Colored(pos + eX * mySize_x - eX * 2.5 * mySize_y + eY * 0.25 * mySize_y, rightcnt, 3, 0.5 * mySize_y, hud_alpha_fg); + len = strlen(ftos(rightcnt)); + + if(cvar(strcat("hud_", HUD_Panel_GetName(3), "_mirror"))) { + barpos = pos + eX * 0.5 * mySize_x; + barsize = eX * 0.5 * mySize_x * min(1, rightcnt/200) + eY * mySize_y; + picpos = pos + eX * 0.5 * mySize_x; + numpos = picpos + eX * mySize_y - eX * (3-len) * 0.5 * mySize_y + eY * 0.25 * mySize_y; + } else { + barpos = pos + eX * mySize_x - eX * 0.5 * mySize_x * min(1, rightcnt/200); + barsize = eX * 0.5 * mySize_x * min(1, rightcnt/200) + eY * mySize_y; + picpos = pos + eX * mySize_x - eX * mySize_y; + numpos = picpos - eX * 1.5 * mySize_y + eY * 0.25 * mySize_y; + } + + drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor(rightname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); + drawpic_skin(picpos, rightname, '1 1 0' * mySize_y, '1 1 1', rightalpha * hud_alpha_fg, DRAWFLAG_NORMAL); + HUD_DrawXNum_Colored(numpos, rightcnt, 3, 0.5 * mySize_y, hud_alpha_fg); } if(fuel) drawpic_skin(pos, "statusbar", eX * mySize_x * min(1, fuel/100) + eY * 0.2 * mySize_y, HUD_Panel_GetProgressBarColor("fuel"), hud_alpha_fg * 0.8, DRAWFLAG_NORMAL); } - else if (mySize_x/mySize_y > 3.2) + else if (mySize_x/mySize_y > 2) { if(leftactive) { len = strlen(ftos(leftcnt)); - drawpic_skin(pos + eY * mySize_y - eY * mySize_y * min(1, leftcnt/200), "statusbar", eX * 0.5 * mySize_x + eY * mySize_y * min(1, leftcnt/200), HUD_Panel_GetProgressBarColor(leftname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); - drawpic_skin(pos + eX * 0.4 * mySize_y, strcat("", leftname), '0.7 0.7 0' * mySize_y, '1 1 1', leftalpha * hud_alpha_fg, DRAWFLAG_NORMAL); - HUD_DrawXNum_Colored(pos + eX * ((3-len)/2) * 0.5 * mySize_y + eY * 0.55 * mySize_y, leftcnt, len, 0.5 * mySize_y, hud_alpha_fg); + if(cvar(strcat("hud_", HUD_Panel_GetName(3), "_mirror"))) { + barpos = pos + eX * mySize_x - eX * mySize_x * min(1, leftcnt/200); + barsize = eX * mySize_x * min(1, leftcnt/200) + eY * 0.5 * mySize_y; + picpos = pos + eX * mySize_x - eX * 0.5 * mySize_y; + numpos = picpos - eX * len * 0.5 * mySize_y; + } else { + barpos = pos; + barsize = eX * mySize_x * min(1, leftcnt/200) + eY * 0.5 * mySize_y; + picpos = pos; + numpos = picpos + eX * 0.5 * mySize_y; + } + + drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor(leftname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); + drawpic_skin(picpos, leftname, '0.5 0.5 0' * mySize_y, '1 1 1', leftalpha * hud_alpha_fg, DRAWFLAG_NORMAL); + HUD_DrawXNum_Colored(numpos, leftcnt, len, 0.5 * mySize_y, hud_alpha_fg); } if(rightactive) { len = strlen(ftos(rightcnt)); - - drawpic_skin(pos + eX * 0.5 * mySize_x + eY * mySize_y - eY * mySize_y * min(1, rightcnt/200), "statusbar", eX * 0.5 * mySize_x + eY * mySize_y * min(1, rightcnt/200), HUD_Panel_GetProgressBarColor(rightname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); - drawpic_skin(pos + eX * mySize_x - eX * 1.1 * mySize_y, strcat("", rightname), '0.7 0.7 0' * mySize_y, '1 1 1', rightalpha * hud_alpha_fg, DRAWFLAG_NORMAL); - HUD_DrawXNum_Colored(pos + eX * mySize_x - eX * len * 0.5 * mySize_y - eX * ((3-len)/2) * 0.5 * mySize_y + eY * 0.55 * mySize_y, rightcnt, len, 0.5 * mySize_y, hud_alpha_fg); + + if(cvar(strcat("hud_", HUD_Panel_GetName(3), "_mirror"))) { + barpos = pos + eX * mySize_x - eX * mySize_x * min(1, rightcnt/200) + eY * 0.5 * mySize_y; + barsize = eX * mySize_x * min(1, rightcnt/200) + eY * 0.5 * mySize_y; + picpos = pos + eX * mySize_x - eX * 0.5 * mySize_y + eY * 0.5 * mySize_y; + numpos = picpos - eX * len * 0.5 * mySize_y; + } else { + barpos = pos + eY * 0.5 * mySize_y; + barsize = eX * mySize_x * min(1, rightcnt/200) + eY * 0.5 * mySize_y; + picpos = pos + eY * 0.5 * mySize_y; + numpos = picpos + eX * 0.5 * mySize_y; + } + + drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor(rightname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); + drawpic_skin(picpos, rightname, '0.5 0.5 0' * mySize_y, '1 1 1', rightalpha * hud_alpha_fg, DRAWFLAG_NORMAL); + HUD_DrawXNum_Colored(numpos, rightcnt, len, 0.5 * mySize_y, hud_alpha_fg); } + if(cvar(strcat("hud_", HUD_Panel_GetName(3), "_mirror"))) { + barpos = pos + eX * mySize_x - eX * mySize_x * min(1, fuel/100); + barsize = eX * mySize_x * min(1, fuel/100) + eY * 0.1 * mySize_y; + } else { + barpos = pos; + barsize = eX * mySize_x * min(1, fuel/100) + eY * 0.1 * mySize_y; + } if(fuel) - drawpic_skin(pos, "statusbar", eX * mySize_x * min(1, fuel/100) + eY * 0.15 * mySize_y, HUD_Panel_GetProgressBarColor("fuel"), hud_alpha_fg * 0.8, DRAWFLAG_NORMAL); + drawpic_skin(barpos, "statusbar", barsize, HUD_Panel_GetProgressBarColor("fuel"), hud_alpha_fg * 0.8, DRAWFLAG_NORMAL); } else { @@ -1632,23 +1697,53 @@ void HUD_HealthArmor(void) { len = strlen(ftos(leftcnt)); - drawpic_skin(pos, "statusbar", eX * mySize_x * min(1, leftcnt/200) + eY * 0.5 * mySize_y, HUD_Panel_GetProgressBarColor(leftname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); - drawpic_skin(pos, strcat("", leftname), '0.5 0.5 0' * mySize_y, '1 1 1', leftalpha * hud_alpha_fg, DRAWFLAG_NORMAL); - HUD_DrawXNum_Colored(pos + eX * 0.5 * mySize_y, leftcnt, len, 0.5 * mySize_y, hud_alpha_fg); + if(cvar(strcat("hud_", HUD_Panel_GetName(3), "_mirror"))) { + barpos = pos; + barsize = eX * 0.5 * mySize_x + eY * mySize_y * min(1, leftcnt/200); + picpos = pos + eX * 0.05 * mySize_x; + numpos = pos + eX * ((3-len)/2) * 0.25 * mySize_x + eY * 0.4 * mySize_x; + } else { + barpos = pos + eY * mySize_y - eY * mySize_y * min(1, leftcnt/200); + barsize = eX * 0.5 * mySize_x + eY * mySize_y * min(1, leftcnt/200); + picpos = pos + eX * 0.05 * mySize_x + eY * mySize_y - eY * 0.566 * mySize_x; + numpos = pos + eX * ((3-len)/2) * 0.25 * mySize_x + eY * mySize_y - eY * 0.166 * mySize_x; + } + + drawpic_skin(barpos, "statusbar_vertical", barsize, HUD_Panel_GetProgressBarColor(leftname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); + drawpic_skin(picpos, leftname, '0.4 0.4 0' * mySize_x, '1 1 1', leftalpha * hud_alpha_fg, DRAWFLAG_NORMAL); + HUD_DrawXNum_Colored(numpos, leftcnt, len, 0.166 * mySize_x, hud_alpha_fg); } if(rightactive) { len = strlen(ftos(rightcnt)); - drawpic_skin(pos + eY * 0.5 * mySize_y, "statusbar", eX * mySize_x * min(1, rightcnt/200) + eY * 0.5 * mySize_y, HUD_Panel_GetProgressBarColor(rightname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); - drawpic_skin(pos + eY * 0.5 * mySize_y, strcat("", rightname), '0.5 0.5 0' * mySize_y, '1 1 1', rightalpha * hud_alpha_fg, DRAWFLAG_NORMAL); - HUD_DrawXNum_Colored(pos + eX * 0.5 * mySize_y + eY * 0.5 * mySize_y, rightcnt, len, 0.5 * mySize_y, hud_alpha_fg); + if(cvar(strcat("hud_", HUD_Panel_GetName(3), "_mirror"))) { + barpos = pos + eX * 0.5 * mySize_x; + barsize = eX * 0.5 * mySize_x + eY * mySize_y * min(1, rightcnt/200); + picpos = pos + eX * 0.05 * mySize_x + eX * 0.5 * mySize_x; + numpos = pos + eX * ((3-len)/2) * 0.25 * mySize_x + eY * 0.4 * mySize_x + eX * 0.5 * mySize_x; + } else { + barpos = pos + eY * mySize_y - eY * mySize_y * min(1, rightcnt/200) + eX * 0.5 * mySize_x; + barsize = eX * 0.5 * mySize_x + eY * mySize_y * min(1, rightcnt/200); + picpos = pos + eX * 0.05 * mySize_x + eY * mySize_y - eY * 0.566 * mySize_x + eX * 0.5 * mySize_x; + numpos = pos + eX * ((3-len)/2) * 0.25 * mySize_x + eY * mySize_y - eY * 0.166 * mySize_x + eX * 0.5 * mySize_x; + } + + drawpic_skin(barpos, "statusbar_vertical", barsize, HUD_Panel_GetProgressBarColor(rightname), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); + drawpic_skin(picpos, rightname, '0.4 0.4 0' * mySize_x, '1 1 1', rightalpha * hud_alpha_fg, DRAWFLAG_NORMAL); + HUD_DrawXNum_Colored(numpos, rightcnt, len, 0.166 * mySize_x, hud_alpha_fg); } + if(cvar(strcat("hud_", HUD_Panel_GetName(3), "_mirror"))) { + barpos = pos; + barsize = eX * 0.05 * mySize_x + eY * mySize_y * min(1, fuel/100); + } else { + barpos = pos + eY * mySize_y - eY * mySize_y * min(1, fuel/100); + barsize = eX * 0.05 * mySize_x + eY * mySize_y * min(1, fuel/100); + } if(fuel) - drawpic_skin(pos, "statusbar", eX * mySize_x * min(1, fuel/100) + eY * 0.1 * mySize_y, HUD_Panel_GetProgressBarColor("fuel"), hud_alpha_fg * 0.8, DRAWFLAG_NORMAL); - //} + drawpic_skin(barpos, "statusbar_vertical", barsize, HUD_Panel_GetProgressBarColor("fuel"), hud_alpha_fg * 0.8, DRAWFLAG_NORMAL); } } -- 2.39.2