diff --git a/source/src/clientgame.cpp b/source/src/clientgame.cpp index 9cdfa213..f0408f8c 100644 --- a/source/src/clientgame.cpp +++ b/source/src/clientgame.cpp @@ -508,6 +508,7 @@ void timeupdate(int timeremain) player1->attacking = false; conoutf("intermission:"); conoutf("game has ended!"); + consolescores(); showscores(true); if(identexists("start_intermission")) execute("start_intermission"); } diff --git a/source/src/protos.h b/source/src/protos.h index 5caa8d0e..a9d74857 100644 --- a/source/src/protos.h +++ b/source/src/protos.h @@ -357,6 +357,7 @@ extern void clearvote(); // scoreboard extern void showscores(bool on); extern void renderscores(void *menu, bool init); +extern void consolescores(); // world extern void setupworld(int factor); diff --git a/source/src/scoreboard.cpp b/source/src/scoreboard.cpp index cde04ff7..4a25c98b 100644 --- a/source/src/scoreboard.cpp +++ b/source/src/scoreboard.cpp @@ -189,3 +189,35 @@ void renderscores(void *menu, bool init) } } +void consolescores() +{ + static string team, flags; + playerent *d; + scoreratio sr; + vector scores; + + scores.add(player1); + loopv(players) if(players[i]) scores.add(players[i]); + scores.sort(scorecmp); + + if(getclientmap()[0]) + { + printf("\n\"%s\" on map %s", modestr(gamemode, 0), getclientmap()); + } + if(multiplayer(false)) + { + serverinfo *s = getconnectedserverinfo(); + if(s) printf(", %s:%d %s", s->name, s->port, s->sdesc); + } + printf("\n%sfrags deaths ratio cn%s name\n", m_flags ? "flags " : "", m_teammode ? " team" : ""); + loopv(scores) + { + d = scores[i]; + sr.calc(d->frags, d->deaths); + s_sprintf(team)(" %-4s", d->team); + s_sprintf(flags)(" %4d ", d->flagscore); + printf("%s %4d %4d %5.2f %2d%s %s%s\n", m_flags ? flags : "", d->frags, d->deaths, sr.ratio, d->clientnum, + m_teammode ? team : "", d->name, d->clientrole==CR_ADMIN ? " (admin)" : d==player1 ? " (you)" : ""); + } + printf("\n"); +}