From: Juhu <5894800-Juhu_@users.noreply.gitlab.com> Date: Wed, 17 Mar 2021 11:57:44 +0000 (+0100) Subject: Add patch from Juhu/strafehud-fixes branch: "strafehud: only calculate the gradient... X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=dc4ff7654d7360cc07c64c98a8b1458ac4052cc1;p=xonotic%2Fxonotic-data.pk3dir.git Add patch from Juhu/strafehud-fixes branch: "strafehud: only calculate the gradient offset if needed" --- diff --git a/qcsrc/client/hud/panel/strafehud.qc b/qcsrc/client/hud/panel/strafehud.qc index 6b934ed96..9fd51a7df 100644 --- a/qcsrc/client/hud/panel/strafehud.qc +++ b/qcsrc/client/hud/panel/strafehud.qc @@ -850,26 +850,6 @@ void HUD_Panel_DrawStrafeHUD(float offset, float width, vector color, float alph size.x = width; mirror_size.x = mirror_width; - // determine whether the gradient starts in the mirrored or the non-mirrored area - if(offset == 0 && mirror_offset == 0) gradient_start = width > mirror_width ? 2 : 1; - else if(offset == 0) gradient_start = 2; - else if(mirror_offset == 0) gradient_start = 1; - else gradient_start = 0; - - switch(gradient_start){ - default: - case 0: // no offset required - gradient_offset = gradient_mirror_offset = 0; - break; - case 1: // offset starts in non-mirrored area, mirrored area requires offset - gradient_offset = 0; - gradient_mirror_offset = original_width - (mirror_width + overflow_mirror_width); - break; - case 2: // offset starts in mirrored area, non-mirrored area requires offset - gradient_offset = original_width - (width + overflow_width); - gradient_mirror_offset = 0; - } - switch(type) { default: @@ -884,6 +864,26 @@ void HUD_Panel_DrawStrafeHUD(float offset, float width, vector color, float alph break; case 2: // gradient style (types: 1 = left, 2 = right, 3 = both) + // determine whether the gradient starts in the mirrored or the non-mirrored area + if(offset == 0 && mirror_offset == 0) gradient_start = width > mirror_width ? 2 : 1; + else if(offset == 0) gradient_start = 2; + else if(mirror_offset == 0) gradient_start = 1; + else gradient_start = 0; + + switch(gradient_start){ + default: + case 0: // no offset required + gradient_offset = gradient_mirror_offset = 0; + break; + case 1: // offset starts in non-mirrored area, mirrored area requires offset + gradient_offset = 0; + gradient_mirror_offset = original_width - (mirror_width + overflow_mirror_width); + break; + case 2: // offset starts in mirrored area, non-mirrored area requires offset + gradient_offset = original_width - (width + overflow_width); + gradient_mirror_offset = 0; + } + StrafeHUD_drawGradient(color, autocvar_hud_panel_strafehud_bar_neutral_color, mirror_size, original_width, mirror_offset, alpha, gradient_mirror_offset, gradientType); StrafeHUD_drawGradient(color, autocvar_hud_panel_strafehud_bar_neutral_color, size, original_width, offset, alpha, gradient_offset, gradientType); }