From 15960ae4c0fa328eb08156dbdbe78aae59733a76 Mon Sep 17 00:00:00 2001 From: fruitiex Date: Sat, 16 Jan 2010 22:26:53 +0000 Subject: [PATCH] move the badge to a better place, show them to all players along with a name git-svn-id: svn://svn.icculus.org/nexuiz/trunk@8509 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/client/Defs.qc | 1 + data/qcsrc/client/Main.qc | 3 +++ data/qcsrc/client/sbar.qc | 14 +++++++++++--- data/qcsrc/server/race.qc | 7 ++++++- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/data/qcsrc/client/Defs.qc b/data/qcsrc/client/Defs.qc index 06f0d9d4e..f7ad01abf 100644 --- a/data/qcsrc/client/Defs.qc +++ b/data/qcsrc/client/Defs.qc @@ -211,6 +211,7 @@ float race_othercheckpointlapsdelta; string race_othercheckpointenemy; float sb_showscores_force; float race_status; +string race_status_name; // Nexball float nb_pb_period; diff --git a/data/qcsrc/client/Main.qc b/data/qcsrc/client/Main.qc index 20518d093..fd96c605a 100644 --- a/data/qcsrc/client/Main.qc +++ b/data/qcsrc/client/Main.qc @@ -1122,6 +1122,9 @@ void Net_ReadRace() break; case RACE_NET_SERVER_STATUS: race_status = ReadShort(); + if(race_status_name) + strunzone(race_status_name); + race_status_name = strzone(ReadString()); } } diff --git a/data/qcsrc/client/sbar.qc b/data/qcsrc/client/sbar.qc index 724e42634..becc9ae4c 100644 --- a/data/qcsrc/client/sbar.qc +++ b/data/qcsrc/client/sbar.qc @@ -1587,12 +1587,19 @@ void Sbar_DrawRaceStatus(vector pos) float a; a = bound(0, race_status_time - time, 1); + string s; + s = textShortenToWidth(race_status_name, 120/9, stringwidth_colors); + if(race_status == 0) drawpic(pos, "gfx/hud/race/newtime", '80 80 0', '1 1 1', sbar_alpha_fg * a, DRAWFLAG_NORMAL); - else if(race_status == 1) + else if(race_status == 1) { drawpic(pos, "gfx/hud/race/newrank", '80 80 0', '1 1 1', sbar_alpha_fg * a, DRAWFLAG_NORMAL); - else if(race_status == 2) + drawcolorcodedstring(pos + '-20 80 0', s, '10 10 0', sbar_alpha_fg * a, DRAWFLAG_NORMAL); + + } else if(race_status == 2) { drawpic(pos, "gfx/hud/race/newrecord", '80 80 0', '1 1 1', sbar_alpha_fg * a, DRAWFLAG_NORMAL); + drawcolorcodedstring(pos + '-20 80 0', s, '10 10 0', sbar_alpha_fg * a, DRAWFLAG_NORMAL); + } if (race_status_time - time <= 0) { race_status_prev = -1; @@ -1729,7 +1736,6 @@ void Sbar_Score() m = '0.5 0 0' * vid_conwidth + '0 1 0' * cvar_or("cl_racetimer_position", 0.25) * vid_conheight; - Sbar_DrawRaceStatus(m + '100 0 0'); if(race_checkpointtime) { a = bound(0, 2 - (time - race_checkpointtime), 1); @@ -1840,6 +1846,8 @@ void Sbar_Timer() float scale; scale = cvar_or("sbar_timer_scale", 1); timelimit = getstatf(STAT_TIMELIMIT); + + Sbar_DrawRaceStatus((topright_x - 100) * '1 0 0' + '0 30 0' * scale); timeleft = max(0, timelimit * 60 + getstatf(STAT_GAMESTARTTIME) - time); timeleft = ceil(timeleft); diff --git a/data/qcsrc/server/race.qc b/data/qcsrc/server/race.qc index 8b934b35e..3f365f54a 100644 --- a/data/qcsrc/server/race.qc +++ b/data/qcsrc/server/race.qc @@ -195,13 +195,18 @@ void race_SendRankings(float pos, float prevpos, float del, float msg) void race_SendStatus(float id, entity e) { - float msg = MSG_ONE; + float msg; + if (id == 0) + msg = MSG_ONE; + else + msg = MSG_ALL; msg_entity = e; WRITESPECTATABLE_MSG_ONE_VARNAME(dummy3, { WriteByte(msg, SVC_TEMPENTITY); WriteByte(msg, TE_CSQC_RACE); WriteByte(msg, RACE_NET_SERVER_STATUS); WriteShort(msg, id); + WriteString(msg, e.netname); }); } -- 2.39.2