}
vector sz;
- vector txt_color;
- string txt = string_null;
+ vector col = rgb;
+ string txt = string_null; // it will contain either the text or the icon path
if (is_text)
{
txt = spritelookuptext(this, spriteimage);
txt = sprintf(_("%s needing help!"), txt);
if (autocvar_g_waypointsprite_uppercase)
txt = strtoupper(txt);
- txt_color = rgb;
sz = waypointsprite_fontsize * '1 1 0';
}
else
{
- // for convenience icon path and color are saved to txt and txt_color
- txt = pic;
- txt_color = ((autocvar_g_waypointsprite_iconcolor) ? '1 1 1' : rgb);
+ txt = pic; // icon path
+ if (autocvar_g_waypointsprite_iconcolor == 0)
+ col = '1 1 1';
+ else if (autocvar_g_waypointsprite_iconcolor > 0 && autocvar_g_waypointsprite_iconcolor != 1)
+ {
+ col = rgb_to_hsv(col);
+ col.y *= autocvar_g_waypointsprite_iconcolor; // scale saturation
+ col = hsv_to_rgb(col);
+ }
sz = autocvar_g_waypointsprite_iconsize * '1 1 0';
}
marg = SPRITE_HEALTHBAR_MARGIN * t + 0.5 * sz.y;
float minwidth = (SPRITE_HEALTHBAR_WIDTH + 2 * SPRITE_HEALTHBAR_BORDER) * t;
- o = drawsprite_TextOrIcon(is_text, o, ang, minwidth, txt_color, a, sz, txt);
+ o = drawsprite_TextOrIcon(is_text, o, ang, minwidth, col, a, sz, txt);
drawhealthbar(
o,
0,
}
else
{
- drawsprite_TextOrIcon(is_text, o, ang, 0, txt_color, a, sz, txt);
+ drawsprite_TextOrIcon(is_text, o, ang, 0, col, a, sz, txt);
}
draw_endBoldFont();
seta g_waypointsprite_uppercase 1
seta g_waypointsprite_text 0 "Always show text instead of icons, setting this to 0 will still use text if the icon is unavailable"
seta g_waypointsprite_iconsize 32
-seta g_waypointsprite_iconcolor 0 "Show the icon at natural color rather than the waypoint's color"
+seta g_waypointsprite_iconcolor 0 "saturation of the waypoint's color applied on top of the waypoint's icon, from 0 (natural icon's color) to 1"
alias "g_waypointsprite_personal" "impulse 30"
alias "g_waypointsprite_personal_p" "impulse 31"