hl_pos_y = pos_y - lettersize/20;
hl_pos_z = 0;
- drawpic_skin(hl_pos, strcat("highlight_", l_length), hl_size, '1 1 1', alpha, dflags);
+ drawpic_skin(hl_pos, strcat("num_leading_", l_length), hl_size, '1 1 1', alpha, dflags);
}
if (stroke == 1)
fputs(fh, strcat("seta hud_skin \"", cvar_string("hud_skin"), "\"", "\n"));
fputs(fh, strcat("seta hud_bg \"", cvar_string("hud_bg"), "\"", "\n"));
fputs(fh, strcat("seta hud_bg_color \"", cvar_string("hud_bg_color"), "\"", "\n"));
- fputs(fh, strcat("seta hud_bg_alpha ", ftos(cvar("hud_bg_alpha")), "\n"));
- fputs(fh, strcat("seta hud_bg_border ", ftos(cvar("hud_bg_border")), "\n"));
- fputs(fh, strcat("seta hud_fg_alpha ", ftos(cvar("hud_fg_alpha")), "\n"));
+ fputs(fh, strcat("seta hud_bg_alpha \"", cvar_string("hud_bg_alpha"), "\"", "\n"));
+ fputs(fh, strcat("seta hud_bg_border \"", cvar_string("hud_bg_border"), "\"", "\n"));
+ fputs(fh, strcat("seta hud_bg_padding \"", cvar_string("hud_bg_padding"), "\"", "\n"));
+ fputs(fh, strcat("seta hud_fg_alpha \"", cvar_string("hud_fg_alpha"), "\"", "\n"));
fputs(fh, "\n");
fputs(fh, strcat("seta hud_dock \"", cvar_string("hud_dock"), "\"", "\n"));
fputs(fh, strcat("seta hud_dock_color \"", cvar_string("hud_dock_color"), "\"", "\n"));
- fputs(fh, strcat("seta hud_dock_alpha ", ftos(cvar("hud_dock_alpha")), "\n"));
+ fputs(fh, strcat("seta hud_dock_alpha \"", ftos(cvar("hud_dock_alpha")), "\"", "\n"));
fputs(fh, "\n");
fputs(fh, strcat("seta hud_progressbar_alpha ", ftos(cvar("hud_progressbar_alpha")), "\n"));
fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_size \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_size")), "\"", "\n"));
fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_bg")), "\"", "\n"));
fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg_color \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_bg_color")), "\"", "\n"));
- fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg_alpha ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_bg_alpha"))), "\n"));
- fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg_border ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_bg_border"))), "\n"));
+ fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg_alpha \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_bg_alpha")), "\"", "\n"));
+ fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg_border \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_bg_border")), "\"", "\n"));
+ fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_bg_padding \"", cvar_string(strcat("hud_", HUD_Panel_GetName(i), "_bg_padding")), "\"", "\n"));
switch(i) {
case 0:
fputs(fh, strcat("seta hud_", HUD_Panel_GetName(i), "_accuracy_height ", ftos(cvar(strcat("hud_", HUD_Panel_GetName(i), "_accuracy_height"))), "\n"));
float HUD_Panel_GetBorder(float id)
{
- float border;
- border = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_border"));
- if(!border)
- border = cvar("hud_bg_border");
- return border;
+ string border;
+ border = cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_bg_border"));
+ if(border == "")
+ border = cvar_string("hud_bg_border");
+ return stof(border);
+}
+
+vector HUD_Panel_GetColor(float id)
+{
+ // TODO: idea: let user choose colors "pants", "shirt"
+ string color;
+ color = cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_bg_color"));
+ if(color == "")
+ color = cvar_string("hud_bg_color");
+ return stov(color);
+}
+
+float HUD_Panel_GetAlpha(float id)
+{
+ string alpha;
+ alpha = cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_bg_alpha"));
+ if(alpha == "")
+ alpha = cvar_string("hud_bg_alpha");
+ return stof(alpha);
+}
+
+float HUD_Panel_GetPadding(float id)
+{
+ string padding;
+ padding = cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ if(padding == "")
+ padding = cvar_string("hud_bg_padding");
+ return stof(padding);
}
// draw the background/borders
void HUD_Panel_DrawBg(float id, vector pos, vector mySize)
{
+ float alpha;
+
if(!hud_configure && cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_bg")) == "0")
return;
if(bg == "")
bg = cvar_string("hud_bg");
+ if(bg == "0" && hud_configure) {
+ bg = "border"; // we probably want to see a background in config mode at all times...
+ alpha = cvar("hud_configure_bg_minalpha");
+ }
+
if(bg != "0")
{
float border;
border = max(0.0000001, HUD_Panel_GetBorder(id)); // draw_BorderPicture does not like border = 0
vector color;
- if(cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_bg_color")) != "")
- color = stov(cvar_string(strcat("hud_", HUD_Panel_GetName(id), "_bg_color")));
- else
- color = stov(cvar_string("hud_bg_color"));
+ color = HUD_Panel_GetColor(id);
- float alpha;
- alpha = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_alpha"));
if(!alpha)
- alpha = cvar("hud_bg_alpha");
- if(hud_configure)
- alpha = max(cvar("hud_configure_bg_minalpha"), alpha);
+ alpha = HUD_Panel_GetAlpha(id);
draw_BorderPicture(pos - '1 1 0' * border, strcat("gfx/hud/", cvar_string("hud_skin"), "/", bg), mySize + '1 1 0' * 2 * border, color, alpha, '1 1 0' * (border/BORDER_MULTIPLIER));
}
HUD_Panel_DrawBg(id, pos, mySize);
float padding;
- padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ padding = HUD_Panel_GetPadding(id);
if(padding)
{
pos += '1 1 0' * padding;
}
// draw the weapon icon
- drawpic(pos + eX * column * mySize_x*(1/columns) + eY * row * mySize_y*(1/rows), strcat("gfx/weapons/weapon", self.netname), eX * mySize_x*(1/columns) + eY * mySize_y*(1/rows), '1 1 1', fade * hud_alpha_fg, DRAWFLAG_NORMAL);
+ drawpic_skin(pos + eX * column * mySize_x*(1/columns) + eY * row * mySize_y*(1/rows), strcat("weapon", self.netname), eX * mySize_x*(1/columns) + eY * mySize_y*(1/rows), '1 1 1', fade * hud_alpha_fg, DRAWFLAG_NORMAL);
if(cvar_or("hud_weaponicons_number", 1))
drawstring(pos + eX * column * mySize_x*(1/columns) + eY * row * mySize_y*(1/rows), ftos(weapid), '1 1 0' * 0.5 * mySize_y*(1/rows), '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
{
case 0: return "ammo_shells";
case 1: return "ammo_bullets";
- case 2: return "ammo_rocket";
+ case 2: return "ammo_rockets";
case 3: return "ammo_cells";
case 4: return "ammo_fuel";
default: return "";
HUD_Panel_DrawBg(id, pos, mySize);
float padding;
- padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ padding = HUD_Panel_GetPadding(id);
if(padding)
{
pos += '1 1 0' * padding;
HUD_Panel_DrawBg(id, pos, mySize);
float padding;
- padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ padding = HUD_Panel_GetPadding(id);
if(padding)
{
pos += '1 1 0' * padding;
HUD_Panel_DrawBg(id, pos, mySize);
float padding;
- padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ padding = HUD_Panel_GetPadding(id);
if(padding)
{
pos += '1 1 0' * padding;
HUD_Panel_DrawBg(id, pos, mySize);
float padding;
- padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ padding = HUD_Panel_GetPadding(id);
if(padding)
{
pos += '1 1 0' * padding;
HUD_Panel_DrawBg(id, pos, mySize);
float padding;
- padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ padding = HUD_Panel_GetPadding(id);
if(padding)
{
pos += '1 1 0' * padding;
HUD_Panel_DrawBg(id, pos, mySize);
float padding;
- padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ padding = HUD_Panel_GetPadding(id);
if(padding)
{
pos += '1 1 0' * padding;
float scale2d, normalsize, bigsize;
float f;
- teamradar_origin2d = pos + 0.5 * mySize; // TODO: stupid compat, should be removed
+ teamradar_origin2d = pos + 0.5 * mySize; // TODO: stupid compat, should be removed (hint: code seems to assume origin to be in center, where panelhud code uses pos as topleft pixel)
teamradar_size2d = mySize;
- if(minimapname == "" && !ons_showmap)
+ if(minimapname == "")
return;
teamradar_loadcvars();
- switch(cl_teamradar_zoommode)
+ switch(hud_radar_zoommode)
{
default:
case 0:
break;
}
- switch(cl_teamradar_rotation)
+ switch(hud_radar_rotation)
{
case 0:
teamradar_angle = view_angles_y - 90;
break;
default:
- teamradar_angle = 90 * cl_teamradar_rotation;
+ teamradar_angle = 90 * hud_radar_rotation;
break;
}
teamradar_extraclip_mins = teamradar_extraclip_maxs = '0 0 0'; // we always center
// pixels per world qu to match the teamradar_size2d_x range in the longest dimension
- if(cl_teamradar_rotation == 0)
+ if(hud_radar_rotation == 0)
{
// max-min distance must fit the radar in any rotation
bigsize = vlen_minnorm2d(teamradar_size2d) * scale2d / (1.05 * vlen2d(mi_max - mi_min));
);
}
- normalsize = vlen_maxnorm2d(teamradar_size2d) * scale2d / cl_teamradar_scale;
+ normalsize = vlen_maxnorm2d(teamradar_size2d) * scale2d / hud_radar_scale;
if(bigsize > normalsize)
normalsize = bigsize;
mySize_y
);
- draw_teamradar_background(cl_teamradar_background_alpha, cl_teamradar_foreground_alpha);
-
- if(ons_showmap)
- {
- drawresetcliparea();
-
- vector frame_origin, frame_size;
- frame_origin = frame_size = '0 0 0';
-
- frame_origin_x = pos_x - teamradar_size2d_x * 0.55859375; // matches the picture
- frame_origin_y = pos_y - teamradar_size2d_y * 0.55859375; // matches the picture
- frame_size_x = pos_x * 1.1171875; // matches the picture
- frame_size_y = pos_y * 1.1171875; // matches the picture
- drawpic_skin(frame_origin, "gfx/ons-frame.tga", frame_size, '1 1 1', hud_alpha_fg, 0);
- drawpic_skin(frame_origin, "gfx/ons-frame-team.tga", frame_size, rgb, hud_alpha_fg, 0);
-
- drawsetcliparea(
- pos_x - teamradar_size2d_x * 0.5,
- pos_y - teamradar_size2d_y * 0.5,
- teamradar_size2d_x,
- teamradar_size2d_y
- );
- }
+ draw_teamradar_background(hud_radar_background_alpha, hud_radar_foreground_alpha);
for(tm = world; (tm = find(tm, classname, "radarlink")); )
draw_teamradar_link(tm.origin, tm.velocity, tm.team);
HUD_Panel_DrawBg(id, pos, mySize);
float padding;
- padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ padding = HUD_Panel_GetPadding(id);
if(padding)
{
pos += '1 1 0' * padding;
}
// race record display
if (distribution <= 0 || distribution == score) // draw the highlight background behind the timer if we have the lead
- drawpic_skin(bottomright - '0 32 0' - '32 0 0' * (4 + TIME_DECIMALS), "highlight_4", '0 28 0' + '32 0 0' * (4 + TIME_DECIMALS), '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
+ drawpic_skin(bottomright - '0 32 0' - '32 0 0' * (4 + TIME_DECIMALS), "num_leading_4", '0 28 0' + '32 0 0' * (4 + TIME_DECIMALS), '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
HUD_DrawXNum(bottomright - '0 32 0' - TIME_DECIMALS * '30 0 0', racemsec, -TIME_DECIMALS, 0, 30, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
HUD_DrawXNum(bottomright - '0 32 0' - TIME_DECIMALS * '30 0 0' - '66 0 0', racesec, -2, 0, 30, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
HUD_DrawXNum(pos + eX * mySize_x - eX * 3 * 0.33 * mySize_y, distribution, 3, 3, 0.33 * mySize_y, distribution_color, 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
if (leader)
- drawpic_skin(pos + eX * mySize_x - eX * score_len * mySize_y - eX * 3 * 0.33 * mySize_y, strcat("highlight_", ftos(score_len)), eX * score_len * mySize_y + eY * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
+ drawpic_skin(pos + eX * mySize_x - eX * score_len * mySize_y - eX * 3 * 0.33 * mySize_y, strcat("num_leading_", ftos(score_len)), eX * score_len * mySize_y + eY * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
HUD_DrawXNum(pos + eX * mySize_x - eX * 3 * mySize_y - eX * 3 * 0.33 * mySize_y, score, 3, 0, mySize_y, distribution_color, 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
} else { // teamgames
float max_fragcount;
if (max_fragcount == score)
leader = 1;
if (leader)
- drawpic_skin(pos + eX * mySize_x - eX * score_len * mySize_y - eX * 3 * 0.33 * mySize_y, strcat("highlight_", ftos(score_len)), eX * score_len * mySize_y + eY * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
+ drawpic_skin(pos + eX * mySize_x - eX * score_len * mySize_y - eX * 3 * 0.33 * mySize_y, strcat("num_leading_", ftos(score_len)), eX * score_len * mySize_y + eY * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
HUD_DrawXNum(pos + eX * mySize_x - eX * 3 * mySize_y - eX * 3 * 0.33 * mySize_y, score, 3, 0, mySize_y, GetTeamRGB(tm.team) * 0.8, 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
} else {
if (max_fragcount == score)
leader = 1;
if (leader)
- drawpic_skin(pos + eX * mySize_x - eX * 0.33 * score_len * mySize_y + eY * 0.33 * mySize_y * teamnum, strcat("highlight_", ftos(score_len)), eX * 0.33 * score_len * mySize_y + eY * 0.33 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
+ drawpic_skin(pos + eX * mySize_x - eX * 0.33 * score_len * mySize_y + eY * 0.33 * mySize_y * teamnum, strcat("num_leading_", ftos(score_len)), eX * 0.33 * score_len * mySize_y + eY * 0.33 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL);
HUD_DrawXNum(pos + eX * mySize_x - eX * 3 * 0.33 * mySize_y + eY * 0.33 * mySize_y * teamnum, score, 3, 0, 0.33 * mySize_y, GetTeamRGB(tm.team) * 0.8, 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL);
teamnum += 1;
}
HUD_Panel_DrawBg(id, pos, mySize);
float padding;
- padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ padding = HUD_Panel_GetPadding(id);
if(padding)
{
pos += '1 1 0' * padding;
HUD_Panel_DrawBg(id, pos, mySize);
float padding;
- padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ padding = HUD_Panel_GetPadding(id);
if(padding)
{
pos += '1 1 0' * padding;
if(vote_alpha) {
a = vote_alpha * bound(cvar_or("hud_vote_alreadyvoted_alpha", 0.75), 1 - vote_highlighted, 1);
- drawpic_skin(pos, "voteprogress_back", mySize, HUD_GetBgColor(), a * hud_alpha_bg, DRAWFLAG_NORMAL);
+ drawpic_skin(pos, "voteprogress_back", mySize, HUD_Panel_GetColor(id), a * hud_alpha_bg, DRAWFLAG_NORMAL);
s = "A vote has been called for: ";
drawstring(pos + '0.5 0 0' * mySize_x + '0 0.1 0' * mySize_y - eX * stringwidth(s, FALSE, '1 1 0' * 0.5 * mySize_y*(1/5)), s, '1 1 0' * mySize_y*(1/5), '1 1 1', a * hud_alpha_fg, DRAWFLAG_NORMAL);
- s = textShortenToWidth(vote_called_vote, mySize_x * 0.96, '10 0 0', stringwidth_colors);
+ s = textShortenToWidth(vote_called_vote, mySize_x * 0.96, '10 0 0', stringwidth_colors); // TODO: broken?
if(hud_configure)
s = "Configure the HUD";
drawcolorcodedstring(pos + '0.52 0 0' * mySize_x + '0 0.3 0' * mySize_y - eX * stringwidth(s, FALSE, '1 1 0' * 0.5 * mySize_y*(1/6)), s, '1 1 0' * mySize_y*(1/6), a * hud_alpha_fg, DRAWFLAG_NORMAL);
HUD_Panel_DrawBg(id, pos, mySize);
float padding;
- padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ padding = HUD_Panel_GetPadding(id);
if(padding)
{
pos += '1 1 0' * padding;
HUD_Panel_DrawBg(id, pos, mySize);
float padding;
- padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding"));
+ padding = HUD_Panel_GetPadding(id);
if(padding)
{
pos += '1 1 0' * padding;
hud_configure = cvar("_hud_configure");
// Drawing stuff
- if(cvar("hud_dock"))
- drawpic_skin('0 0 0', "dock", eX * vid_conwidth + eY * vid_conheight, stov(cvar_string("hud_dock_color")), cvar("hud_dock_alpha"), DRAWFLAG_NORMAL);
+ if(cvar_string("hud_dock") != "")
+ drawpic_skin('0 0 0', cvar_string("hud_dock"), eX * vid_conwidth + eY * vid_conheight, stov(cvar_string("hud_dock_color")), cvar("hud_dock_alpha"), DRAWFLAG_NORMAL);
if(HUD_Panel_CheckActive(0))
HUD_WeaponIcons();
HUD_Timer();
// TODO hud'ify
if(HUD_Panel_CheckActive(6))
- if(ons_showmap || cvar_string("cl_teamradar") != "0" && (cvar("cl_teamradar") == 2 || teamplay))
+ if(cvar_string("hud_radar") != "0" && (cvar("hud_radar") == 2 || teamplay))
HUD_Radar();
if(HUD_Panel_CheckActive(7))
HUD_Score();