diff --git a/source/src/clientgame.cpp b/source/src/clientgame.cpp index 1b8ed74e..e824f794 100644 --- a/source/src/clientgame.cpp +++ b/source/src/clientgame.cpp @@ -72,6 +72,14 @@ char *colorping(int ping) return cping; } +char *colorpj(int pj) +{ + static string cpj; + if(multiplayer(false)) s_sprintf(cpj)("\fs\f%d%d\fr", pj <= 90 ? 0 : pj <= 170 ? 2 : 3, pj); + else s_sprintf(cpj)("%d", pj); + return cpj; +} + void newname(const char *name) { if(name[0]) diff --git a/source/src/protos.h b/source/src/protos.h index ab98979f..f846097c 100644 --- a/source/src/protos.h +++ b/source/src/protos.h @@ -381,6 +381,7 @@ extern void serveropcommand(int cmd, int arg1); extern void refreshsopmenu(void *menu, bool init); extern char *colorname(playerent *d, char *name = NULL, const char *prefix = ""); extern char *colorping(int ping); +extern char *colorpj(int pj); extern void togglespect(); extern playerent *updatefollowplayer(int shiftdirection = 0); extern void spectate(int mode); diff --git a/source/src/scoreboard.cpp b/source/src/scoreboard.cpp index 12161887..ca9d0bb5 100644 --- a/source/src/scoreboard.cpp +++ b/source/src/scoreboard.cpp @@ -92,15 +92,15 @@ void renderscore(void *menu, playerent *d) static color localplayerc(0.2f, 0.2f, 0.2f, 0.2f); if(d->clientrole==CR_ADMIN) status = d->state==CS_DEAD ? "\f7" : "\f3"; else if(d->state==CS_DEAD) status = "\f4"; - s_sprintfd(lag)("%d", d->plag); + const char *clag = d->state==CS_LAGGED ? "LAG" : colorpj(d->plag), *cping = colorping(d->ping); sline &line = scorelines.add(); line.bgcolor = d==player1 ? &localplayerc : NULL; string &s = line.s; scoreratio sr; sr.calc(d->frags, d->deaths); - if(m_flags) s_sprintf(s)("%d\t%d\t%d\t%.*f\t%s\t%s\t%d\t%s%s", d->flagscore, d->frags, d->deaths, sr.precision, sr.ratio, d->state==CS_LAGGED ? "LAG" : lag, colorping(d->ping), d->clientnum, status, colorname(d)); - else if(m_teammode) s_sprintf(s)("%d\t%d\t%.*f\t%s\t%s\t%d\t%s%s", d->frags, d->deaths, sr.precision, sr.ratio, d->state==CS_LAGGED ? "LAG" : lag, colorping(d->ping), d->clientnum, status, colorname(d)); - else s_sprintf(s)("%d\t%d\t%.*f\t%s\t%s\t%d\t%s%s", d->frags, d->deaths, sr.precision, sr.ratio, d->state==CS_LAGGED ? "LAG" : lag, colorping(d->ping), d->clientnum, status, colorname(d)); + if(m_flags) s_sprintf(s)("%d\t%d\t%d\t%.*f\t%s\t%s\t%d\t%s%s", d->flagscore, d->frags, d->deaths, sr.precision, sr.ratio, clag, cping, d->clientnum, status, colorname(d)); + else if(m_teammode) s_sprintf(s)("%d\t%d\t%.*f\t%s\t%s\t%d\t%s%s", d->frags, d->deaths, sr.precision, sr.ratio, clag, cping, d->clientnum, status, colorname(d)); + else s_sprintf(s)("%d\t%d\t%.*f\t%s\t%s\t%d\t%s%s", d->frags, d->deaths, sr.precision, sr.ratio, clag, cping, d->clientnum, status, colorname(d)); } void renderteamscore(void *menu, teamscore *t)