From 2ff6f2695d4cb2198c7919b804ba2237228b1cc5 Mon Sep 17 00:00:00 2001 From: ac_stef Date: Sat, 13 Sep 2008 18:40:16 +0000 Subject: [PATCH] dump scoreboard to console at end of game git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@2565 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/clientgame.cpp | 1 + source/src/protos.h | 1 + source/src/scoreboard.cpp | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) 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"); +}