From 63a743e7122d1474873a2a72f7bba45b8d3b27f5 Mon Sep 17 00:00:00 2001 From: FruitieX Date: Sun, 16 May 2010 20:56:34 +0300 Subject: [PATCH] mod icons, still a bit unfinished but in the interest of getting other importart changes pushed... (such as ammo icons!) --- defaultXonotic.cfg | 1 + gfx/hud/old/ammo_bullets.tga | Bin 0 -> 14636 bytes gfx/hud/old/ammo_cells.tga | Bin 0 -> 14636 bytes gfx/hud/old/ammo_current_bg.tga | Bin 0 -> 10711 bytes gfx/hud/old/ammo_rocket.tga | Bin 0 -> 14636 bytes gfx/hud/old/ammo_shells.tga | Bin 0 -> 14636 bytes gfx/scoreboard/accuracy_bg.tga | Bin 0 -> 21124 bytes qcsrc/client/hud.qc | 290 +++++++++++++++----------------- qcsrc/client/hud.qh | 6 - 9 files changed, 134 insertions(+), 163 deletions(-) create mode 100644 gfx/hud/old/ammo_bullets.tga create mode 100644 gfx/hud/old/ammo_cells.tga create mode 100644 gfx/hud/old/ammo_current_bg.tga create mode 100644 gfx/hud/old/ammo_rocket.tga create mode 100644 gfx/hud/old/ammo_shells.tga create mode 100644 gfx/scoreboard/accuracy_bg.tga diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index 2acf80feb..77cec713d 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -1459,6 +1459,7 @@ seta hud_modicons_bg_color "" "optional R G B string of the background color, ot seta hud_modicons_bg_alpha 0 "if set to something else than 0 = override default alpha" seta hud_modicons_bg_border 0 "if set to something else than 0 = override size of border around the background" seta hud_modicons_bg_padding 0 "padding of contents from border" +seta hud_progressbar_nexball_color "0.7 0.1 0" "R G B vector of the progress bar background color" seta hud_pressedkeys 1 "enable/disable this panel" seta hud_pressedkeys_pos "-0.571569 -0.265625" "position of this base of the panel" diff --git a/gfx/hud/old/ammo_bullets.tga b/gfx/hud/old/ammo_bullets.tga new file mode 100644 index 0000000000000000000000000000000000000000..394fa05ffaa5fdc8fefa74f8555768a1f7bda668 GIT binary patch literal 14636 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 XP+eJ*SF5Yim6cwp=eLu239tPRDHU2t literal 0 HcmV?d00001 diff --git a/gfx/hud/old/ammo_cells.tga b/gfx/hud/old/ammo_cells.tga new file mode 100644 index 0000000000000000000000000000000000000000..536531480ab65bc94998acb4bcde66e248153660 GIT binary patch literal 14636 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 literal 0 HcmV?d00001 diff --git a/gfx/hud/old/ammo_current_bg.tga b/gfx/hud/old/ammo_current_bg.tga new file mode 100644 index 0000000000000000000000000000000000000000..7f3a2af35e1ab2dc420dff1933489f9aa6686119 GIT binary patch literal 10711 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 literal 0 HcmV?d00001 diff --git a/gfx/hud/old/ammo_rocket.tga b/gfx/hud/old/ammo_rocket.tga new file mode 100644 index 0000000000000000000000000000000000000000..e2b4df2fada3c8d00d8bc04c49eb8d41fa409012 GIT binary patch literal 14636 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 literal 0 HcmV?d00001 diff --git a/gfx/hud/old/ammo_shells.tga b/gfx/hud/old/ammo_shells.tga new file mode 100644 index 0000000000000000000000000000000000000000..24e5c726ba4f0c21f058c08060ee49a9d7d7de08 GIT binary patch literal 14636 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 VAAbD(@B8~ty#4X_Job``{{sSs3BCXT literal 0 HcmV?d00001 diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc index 16dbc6bc6..52583e584 100644 --- a/qcsrc/client/hud.qc +++ b/qcsrc/client/hud.qc @@ -80,6 +80,10 @@ void drawpic_skin(vector pos, string pic, vector sz, vector color, float alpha, drawpic(pos, strcat("gfx/hud/", cvar_string("hud_skin"), "/", pic), sz, color, alpha, drawflag); } +void drawpic_skin_expanding(vector pos, string pic, vector sz, vector rgb, float alpha, float flag, float fadelerp) { + drawpic_expanding(pos, strcat("gfx/hud/", cvar_string("hud_skin"), "/", pic), sz, rgb, alpha, flag, fadelerp); +} + // return HUD background color vector HUD_GetBgColor() { @@ -587,6 +591,7 @@ void HUD_Panel_ExportCfg(string cfgname) fputs(fh, strcat("seta hud_progressbar_health_color \"", cvar_string("hud_progressbar_health_color"), "\"", "\n")); fputs(fh, strcat("seta hud_progressbar_armor_color \"", cvar_string("hud_progressbar_armor_color"), "\"", "\n")); fputs(fh, strcat("seta hud_progressbar_fuel_color \"", cvar_string("hud_progressbar_fuel_color"), "\"", "\n")); + fputs(fh, strcat("seta hud_progressbar_nexball_color \"", cvar_string("hud_progressbar_nexball_color"), "\"", "\n")); fputs(fh, "\n"); // common cvars for all panels @@ -2206,10 +2211,33 @@ void HUD_Radar(void) drawresetcliparea(); }; -todo merge! -void HUD_Mod_Race (void) { +// Score (#7) +// +void HUD_Score() +{ + float id = 7; + vector pos, mySize; + pos = HUD_Panel_GetPos(id); + mySize = HUD_Panel_GetSize(id); + + HUD_Panel_DrawBg(id, pos, mySize); + float padding; + padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding")); + if(padding) + { + pos += '1 1 0' * padding; + mySize -= '2 2 0' * padding; + } + + float score, distribution, leader; + float score_len, distr_len; + vector score_pos, secondary_score_pos, distribution_color; + entity tm, pl, me; + me = (spectatee_status > 0) ? playerslots[spectatee_status - 1] : playerslots[player_localentnum - 1]; + + // TODO... this (race part) still uses constant coordinates :/ if((scores_flags[ps_primary] & SFL_TIME) && !teamplay) { // race/cts record display on HUD - pl = players.sort_next; + /*pl = players.sort_next; if(pl == me) pl = pl.sort_next; if(scores_flags[ps_primary] & SFL_ZERO_IS_WORST) @@ -2260,34 +2288,8 @@ void HUD_Mod_Race (void) { HUD_DrawXNum(bottomright - '0 32 0' - TIME_DECIMALS * '30 0 0' - '132 0 0', racemin, -2, 0, 30, '1 1 1', 0, 0, hud_alpha_fg, DRAWFLAG_NORMAL); drawpic_skin(bottomright - '0 32 0' - TIME_DECIMALS * '30 0 0' - '84 0 0', "num_colon", '30 30 0', '1 1 1', hud_alpha_fg, DRAWFLAG_ADDITIVE); - } -} - -// Score (#7) -// -void HUD_Score() -{ - float id = 7; - vector pos, mySize; - pos = HUD_Panel_GetPos(id); - mySize = HUD_Panel_GetSize(id); - - HUD_Panel_DrawBg(id, pos, mySize); - float padding; - padding = cvar(strcat("hud_", HUD_Panel_GetName(id), "_bg_padding")); - if(padding) - { - pos += '1 1 0' * padding; - mySize -= '2 2 0' * padding; - } - - float score, distribution, leader; - float score_len, distr_len; - vector score_pos, secondary_score_pos, distribution_color; - entity tm, pl, me; - me = (spectatee_status > 0) ? playerslots[spectatee_status - 1] : playerslots[player_localentnum - 1]; - - if (!teamplay) { // non-teamgames + */ + } else if (!teamplay) { // non-teamgames // me vector := [team/connected frags id] pl = players.sort_next; if(pl == me) @@ -2699,13 +2701,13 @@ void HUD_Mod_CTF(vector pos, vector mySize) f = bound(0, redflag_statuschange_elapsedtime*2, 1); if(red_icon_prevstatus && f < 1) - drawpic_expanding(redflag_pos, red_icon_prevstatus, '1 1 0' * mySize_y, '1 1 1', hud_alpha_fg * red_alpha_prevstatus, DRAWFLAG_NORMAL, f); + drawpic_skin_expanding(redflag_pos, red_icon_prevstatus, '1 1 0' * mySize_y, '1 1 1', hud_alpha_fg * red_alpha_prevstatus, DRAWFLAG_NORMAL, f); if(red_icon) drawpic_skin(redflag_pos, red_icon, '1 1 0' * mySize_y, '1 1 1', hud_alpha_fg * red_alpha * f, DRAWFLAG_NORMAL); f = bound(0, blueflag_statuschange_elapsedtime*2, 1); if(blue_icon_prevstatus && f < 1) - drawpic_expanding(blueflag_pos, blue_icon_prevstatus, '1 1 0' * mySize_y, '1 1 1', hud_alpha_fg * blue_alpha_prevstatus, DRAWFLAG_NORMAL, f); + drawpic_skin_expanding(blueflag_pos, blue_icon_prevstatus, '1 1 0' * mySize_y, '1 1 1', hud_alpha_fg * blue_alpha_prevstatus, DRAWFLAG_NORMAL, f); if(blue_icon) drawpic_skin(blueflag_pos, blue_icon, '1 1 0' * mySize_y, '1 1 1', hud_alpha_fg * blue_alpha * f, DRAWFLAG_NORMAL); } @@ -2718,22 +2720,25 @@ void HUD_Mod_KH_Reset(void) kh_runheretime = 0; } -void HUD_Mod_KH(void) +void HUD_Mod_KH(vector pos, vector mySize) { float kh_keys; float keyteam; float a, aa; vector p, pa, kh_size, kh_asize; - p_x = 6; - p_y = vid_conheight - 34 - 3; - p_z = 0; + p_x = pos_x; + p_y = pos_y + 0.25 * mySize_y; kh_keys = getstati(STAT_KH_KEYS); - kh_size = '19 34 0'; - kh_asize = '19 10 0'; - pa = p + '0 -10 0'; + kh_size_x = mySize_x * 0.25; + kh_size_y = 0.75 * mySize_y; + + pa = p - eY * 0.25 * mySize_y; + + kh_asize_x = mySize_x * 0.25; + kh_asize_y = mySize_y * 0.25; float i, key; @@ -2786,16 +2791,16 @@ void HUD_Mod_KH(void) switch(keyteam) { case COLOR_TEAM1: - drawpic (pa, "kh_redarrow", kh_asize, '1 1 1', aa, DRAWFLAG_NORMAL); // show 30% alpha key + drawpic_skin(pa, "kh_redarrow", kh_asize, '1 1 1', aa, DRAWFLAG_NORMAL); // show 30% alpha key break; case COLOR_TEAM2: - drawpic (pa, "kh_bluearrow", kh_asize, '1 1 1', aa, DRAWFLAG_NORMAL); // show 30% alpha key + drawpic_skin(pa, "kh_bluearrow", kh_asize, '1 1 1', aa, DRAWFLAG_NORMAL); // show 30% alpha key break; case COLOR_TEAM3: - drawpic (pa, "kh_yellowarrow", kh_asize, '1 1 1', aa, DRAWFLAG_NORMAL); // show 30% alpha key + drawpic_skin(pa, "kh_yellowarrow", kh_asize, '1 1 1', aa, DRAWFLAG_NORMAL); // show 30% alpha key break; case COLOR_TEAM4: - drawpic (pa, "kh_pinkarrow", kh_asize, '1 1 1', aa, DRAWFLAG_NORMAL); // show 30% alpha key + drawpic_skin(pa, "kh_pinkarrow", kh_asize, '1 1 1', aa, DRAWFLAG_NORMAL); // show 30% alpha key break; default: break; @@ -2803,46 +2808,32 @@ void HUD_Mod_KH(void) switch(i) // YAY! switch(i) inside a for loop for i. DailyWTF, here we come! { case 0: - drawpic (p, "kh_red", kh_size, '1 1 1', a, DRAWFLAG_NORMAL); // show 30% alpha key + drawpic_skin(p, "kh_red", kh_size, '1 1 1', a, DRAWFLAG_NORMAL); // show 30% alpha key break; case 1: - drawpic (p, "kh_blue", kh_size, '1 1 1', a, DRAWFLAG_NORMAL); // show 30% alpha key + drawpic_skin(p, "kh_blue", kh_size, '1 1 1', a, DRAWFLAG_NORMAL); // show 30% alpha key break; case 2: - drawpic (p, "kh_yellow", kh_size, '1 1 1', a, DRAWFLAG_NORMAL); // show 30% alpha key + drawpic_skin(p, "kh_yellow", kh_size, '1 1 1', a, DRAWFLAG_NORMAL); // show 30% alpha key break; case 3: - drawpic (p, "kh_pink", kh_size, '1 1 1', a, DRAWFLAG_NORMAL); // show 30% alpha key + drawpic_skin(p, "kh_pink", kh_size, '1 1 1', a, DRAWFLAG_NORMAL); // show 30% alpha key break; } } - p_x += 24; - pa_x += 24; + p_x += 0.25 * mySize_x; + pa_x += 0.25 * mySize_x; } } -// Nexball HUD modicon section -#define NBPB_SIZE '96 38 0' -#define NBPB_BT 2 //thickness -#define NBPB_BRGB '1 1 1' -#define NBPB_BALPH 1 //alpha -#define NBPB_BFLAG DRAWFLAG_NORMAL -#define NBPB_IALPH 0.4 -#define NBPB_IFLAG DRAWFLAG_NORMAL -#define NBPB_IRGB '0.7 0.1 0' - -void HUD_Mod_NexBall(void) +// Nexball HUD mod icon +void HUD_Mod_NexBall(vector pos, vector mySize) { float stat_items, nb_pb_starttime, dt, p; - vector pos; stat_items = getstati(STAT_ITEMS); nb_pb_starttime = getstatf(STAT_NB_METERSTART); - pos_x = 4; - pos_y = vid_conheight - 42; - pos_z = 0; - //Manage the progress bar if any if (nb_pb_starttime > 0) { @@ -2853,89 +2844,26 @@ void HUD_Mod_NexBall(void) if (p > 1) p = 2 - p; - s = NBPB_SIZE; //Draw the filling - drawfill(pos, p * s_x * eX + s_y * eY, NBPB_IRGB, NBPB_IALPH, NBPB_IFLAG); - - //Draw the box - s = NBPB_SIZE; - drawline(NBPB_BT, pos , pos + eX * s_x, NBPB_BRGB, NBPB_BALPH, NBPB_BFLAG); - drawline(NBPB_BT, pos , pos + eY * s_y, NBPB_BRGB, NBPB_BALPH, NBPB_BFLAG); - drawline(NBPB_BT, pos + s, pos + eX * s_x, NBPB_BRGB, NBPB_BALPH, NBPB_BFLAG); - drawline(NBPB_BT, pos + s, pos + eY * s_y, NBPB_BRGB, NBPB_BALPH, NBPB_BFLAG); + drawpic_skin(pos, "statusbar", eX * p * mySize_x + eY * mySize_y, HUD_Panel_GetProgressBarColor("nexball"), cvar("hud_progressbar_alpha"), DRAWFLAG_NORMAL); } - pos_x += 12; //horizontal margin to the picture - pos_y += 2; //vertical margin to the picture + pos_x += 0.5 * mySize_x - 0.5 * mySize_y; //horizontal margin to the picture if (stat_items & IT_KEY1) - drawpic_skin(pos, "nexball_carrying", '80 34 0', '1 1 1', 1, DRAWFLAG_NORMAL); + drawpic_skin(pos, "nexball_carrying", '1 1 0' * mySize_y, '1 1 1', 1, DRAWFLAG_NORMAL); } -float race_status_time; -float race_status_prev; -string race_status_name_prev; -void HUD_DrawRaceStatus(vector pos) -{ - if (race_status != race_status_prev || race_status_name != race_status_name_prev) { - race_status_time = time + 5; - race_status_prev = race_status; - if (race_status_name_prev) - strunzone(race_status_name_prev); - race_status_name_prev = strzone(race_status_name); - } - - float a; - a = bound(0, race_status_time - time, 1); - - string s; - s = textShortenToWidth(race_status_name, 120, '10 10 0', stringwidth_colors); - - float rank; - if(race_status > 0) - rank = race_CheckName(race_status_name); - string rankname; - rankname = race_PlaceName(rank); - - if(race_status == 0) - drawpic_skin(pos, "race_newfail", '80 80 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); - else if(race_status == 1) { - drawpic_skin(pos, "race_newtime", '80 80 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); - drawcolorcodedstring(pos + '40 80 0' - eX * stringwidth(s, TRUE, '5 0 0'), s, '10 10 0', hud_alpha_fg * a, DRAWFLAG_NORMAL); - drawstring(pos + '40 20 0' - eX * stringwidth(rankname, TRUE, '7 0 0'), rankname, '14 14 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); - } else if(race_status == 2) { - if(race_status_name == GetPlayerName(player_localentnum -1) || !race_myrank || race_myrank < rank) - drawpic_skin(pos, "race_newrankgreen", '80 80 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); - else - drawpic_skin(pos, "race_newrankyellow", '80 80 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); - drawcolorcodedstring(pos + '40 80 0' - eX * stringwidth(s, TRUE, '5 0 0'), s, '10 10 0', hud_alpha_fg * a, DRAWFLAG_NORMAL); - drawstring(pos + '40 20 0' - eX * stringwidth(rankname, TRUE, '7 0 0'), rankname, '14 14 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); - } else if(race_status == 3) { - drawpic_skin(pos, "race_newrecordserver", '80 80 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); - drawcolorcodedstring(pos + '40 80 0' - eX * stringwidth(s, TRUE, '5 0 0'), s, '10 10 0', hud_alpha_fg * a, DRAWFLAG_NORMAL); - drawstring(pos + '40 20 0' - eX * stringwidth(rankname, TRUE, '7 0 0'), rankname, '14 14 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); - } - - if (race_status_time - time <= 0) { - race_status_prev = -1; - race_status = -1; - if(race_status_name) - strunzone(race_status_name); - race_status_name = string_null; - if(race_status_name_prev) - strunzone(race_status_name_prev); - race_status_name_prev = string_null; - } -} - -foo -// merge with above -// Race/CTS HUD modicon section +// Race/CTS HUD mod icons float crecordtime_prev; // last remembered crecordtime float crecordtime_change_time; // time when crecordtime last changed float srecordtime_prev; // last remembered srecordtime float srecordtime_change_time; // time when srecordtime last changed -void CSQC_race_hud(void) + +float race_status_time; +float race_status_prev; +string race_status_name_prev; +void HUD_Mod_Race(vector pos, vector mySize) { entity me; me = playerslots[player_localentnum - 1]; @@ -2947,9 +2875,6 @@ void CSQC_race_hud(void) return; // no records in the actual race drawfont = hud_bigfont; - vector pos; - pos_x = 2; - pos_y = vid_conheight - 48; // clientside personal record string rr; @@ -2976,17 +2901,16 @@ void CSQC_race_hud(void) f = time - crecordtime_change_time; if (f > 1) { - drawstring(pos, "Personal best ", '10 10 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); - drawstring(pos + '0 10 0', TIME_ENCODED_TOSTRING(t),'14 14 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); + drawstring(pos, "Personal best ", '1 1 0' * 0.15 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); + drawstring(pos + eY * 0.2 * mySize_y, TIME_ENCODED_TOSTRING(t), '1 1 0' * 0.2 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); } else { - drawstring(pos, "Personal best ", '10 10 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); - drawstring(pos + '0 10 0', TIME_ENCODED_TOSTRING(t),'14 14 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); - drawstring_expanding(pos, "Personal best ", '10 10 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL, f); - drawstring_expanding(pos + '0 10 0', TIME_ENCODED_TOSTRING(t),'14 14 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL, f); + drawstring(pos, "Personal best ", '1 1 0' * 0.15 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); + drawstring(pos + eY * 0.2 * mySize_y, TIME_ENCODED_TOSTRING(t), '1 1 0' * 0.2 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); + drawstring_expanding(pos, "Personal best ", '1 1 0' * 0.15 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL, f); + drawstring_expanding(pos + eY * 0.2 * mySize_y, TIME_ENCODED_TOSTRING(t), '1 1 0' * 0.2 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL, f); } // server record - pos_y += 26; t = race_server_record; if(t != srecordtime_prev) { srecordtime_prev = t; @@ -2995,13 +2919,65 @@ void CSQC_race_hud(void) f = time - srecordtime_change_time; if (f > 1) { - drawstring(pos, "Server best ", '10 10 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); - drawstring(pos + '0 10 0', TIME_ENCODED_TOSTRING(t),'14 14 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); + drawstring(pos + eY * 0.5 * mySize_y, "Server best ", '1 1 0' * 0.15 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); + drawstring(pos + eY * 0.5 * mySize_y + eY * 0.2 * mySize_y, TIME_ENCODED_TOSTRING(t),'1 1 0' * 0.2 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); } else { - drawstring(pos, "Server best ", '10 10 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); - drawstring(pos + '0 10 0', TIME_ENCODED_TOSTRING(t),'14 14 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); - drawstring_expanding(pos, "Server best ", '10 10 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL, f); - drawstring_expanding(pos + '0 10 0', TIME_ENCODED_TOSTRING(t),'14 14 0', '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL, f); + drawstring(pos + eY * 0.5 * mySize_y, "Server best ", '1 1 0' * 0.15 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); + drawstring(pos + eY * 0.5 * mySize_y + eY * 0.2 * mySize_y, TIME_ENCODED_TOSTRING(t),'1 1 0' * 0.2 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL); + drawstring_expanding(pos + eY * 0.5 * mySize_y, "Server best ", '1 1 0' * 0.15 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL, f); + drawstring_expanding(pos + eY * 0.5 * mySize_y + eY * 0.2 * mySize_y, TIME_ENCODED_TOSTRING(t),'1 1 0' * 0.2 * mySize_y, '1 1 1', hud_alpha_fg, DRAWFLAG_NORMAL, f); + } + + if (race_status != race_status_prev || race_status_name != race_status_name_prev) { + race_status_time = time + 5; + race_status_prev = race_status; + if (race_status_name_prev) + strunzone(race_status_name_prev); + race_status_name_prev = strzone(race_status_name); + } + + pos_x += mySize_x/2; + // race "awards" + float a; + a = bound(0, race_status_time - time, 1); + + string s; + s = textShortenToWidth(race_status_name, 120, '10 10 0', stringwidth_colors); + + float rank; + if(race_status > 0) + rank = race_CheckName(race_status_name); + string rankname; + rankname = race_PlaceName(rank); + + if(race_status == 0) + drawpic_skin(pos, "race_newfail", '80 80 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); + else if(race_status == 1) { + drawpic_skin(pos, "race_newtime", '80 80 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); + drawcolorcodedstring(pos + '40 80 0' - eX * stringwidth(s, TRUE, '5 0 0'), s, '10 10 0', hud_alpha_fg * a, DRAWFLAG_NORMAL); + drawstring(pos + '40 20 0' - eX * stringwidth(rankname, TRUE, '7 0 0'), rankname, '14 14 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); + } else if(race_status == 2) { + if(race_status_name == GetPlayerName(player_localentnum -1) || !race_myrank || race_myrank < rank) + drawpic_skin(pos, "race_newrankgreen", '80 80 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); + else + drawpic_skin(pos, "race_newrankyellow", '80 80 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); + drawcolorcodedstring(pos + '40 80 0' - eX * stringwidth(s, TRUE, '5 0 0'), s, '10 10 0', hud_alpha_fg * a, DRAWFLAG_NORMAL); + drawstring(pos + '40 20 0' - eX * stringwidth(rankname, TRUE, '7 0 0'), rankname, '14 14 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); + } else if(race_status == 3) { + drawpic_skin(pos, "race_newrecordserver", '80 80 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); + drawcolorcodedstring(pos + '40 80 0' - eX * stringwidth(s, TRUE, '5 0 0'), s, '10 10 0', hud_alpha_fg * a, DRAWFLAG_NORMAL); + drawstring(pos + '40 20 0' - eX * stringwidth(rankname, TRUE, '7 0 0'), rankname, '14 14 0', '1 1 1', hud_alpha_fg * a, DRAWFLAG_NORMAL); + } + + if (race_status_time - time <= 0) { + race_status_prev = -1; + race_status = -1; + if(race_status_name) + strunzone(race_status_name); + race_status_name = string_null; + if(race_status_name_prev) + strunzone(race_status_name_prev); + race_status_name_prev = string_null; } drawfont = hud_font; } @@ -3024,13 +3000,13 @@ void HUD_ModIcons(void) // TODO... well make them work in a panel etc if(gametype == GAME_KEYHUNT) - HUD_Mod_KH(); + HUD_Mod_KH(pos, mySize); else if(gametype == GAME_CTF) HUD_Mod_CTF(pos, mySize); else if(gametype == GAME_NEXBALL) - HUD_Mod_NexBall(); + HUD_Mod_NexBall(pos, mySize); else if(gametype == GAME_CTS || gametype == GAME_RACE) - HUD_Mod_Race(); + HUD_Mod_Race(pos, mySize); } // Draw pressed keys (#11) diff --git a/qcsrc/client/hud.qh b/qcsrc/client/hud.qh index 77855ae3a..e3c0c9a97 100644 --- a/qcsrc/client/hud.qh +++ b/qcsrc/client/hud.qh @@ -1,11 +1,5 @@ float panel_cnt = 12; // NOTE: IDs start from 0! -void CSQC_kh_hudreset(); -void CSQC_kh_hud(); -void CSQC_ctf_hudreset(); -void CSQC_ctf_hud(); -void CSQC_nb_hud(); -void CSQC_race_hud(); const float BORDER_MULTIPLIER = 0.25; float hud_color_bg_team; float scoreboard_bottom; -- 2.39.2