summaryrefslogtreecommitdiff
path: root/utils/tfstats/playerspecifics.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/tfstats/playerspecifics.cpp')
-rw-r--r--utils/tfstats/playerspecifics.cpp96
1 files changed, 96 insertions, 0 deletions
diff --git a/utils/tfstats/playerspecifics.cpp b/utils/tfstats/playerspecifics.cpp
new file mode 100644
index 0000000..5edde84
--- /dev/null
+++ b/utils/tfstats/playerspecifics.cpp
@@ -0,0 +1,96 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: Implementation of CPlayerSpecifics
+//
+// $Workfile: $
+// $Date: $
+//
+//------------------------------------------------------------------------------------------------------
+// $Log: $
+//
+// $NoKeywords: $
+//=============================================================================//
+#include "PlayerSpecifics.h"
+#include "PlayerReport.h"
+
+//------------------------------------------------------------------------------------------------------
+// Function: CPlayerSpecifics::init
+// Purpose: intializes the object
+//------------------------------------------------------------------------------------------------------
+void CPlayerSpecifics::init()
+{
+}
+
+//------------------------------------------------------------------------------------------------------
+// Function: CPlayerSpecifics::generate
+// Purpose: generates intermediate data from match info
+//------------------------------------------------------------------------------------------------------
+void CPlayerSpecifics::generate()
+{
+}
+
+//------------------------------------------------------------------------------------------------------
+// Function: CPlayerSpecifics::writeHTML
+// Purpose: writes out html based on the intermediate data generated by generate()
+// Input: html - the html file to output to
+//------------------------------------------------------------------------------------------------------
+void CPlayerSpecifics::writeHTML(CHTMLFile& html)
+{
+ int numteams=0;
+ for (int t=0;t<MAX_TEAMS;t++)
+ if (g_pMatchInfo->teamExists(t)) numteams++;
+
+ html.write("<table cols=%li cellspacing=0 border=0 cellpadding=10 bordercolor=black>\n",numteams);
+
+ CPlayerListIterator i;
+ //multimap<double,CPlayer,greater<double> > ranksort;
+
+ //split playerlist into teams;
+ multimap<double,CPlayer,greater<double> > rankedteams[MAX_TEAMS];
+
+ for (i=g_pMatchInfo->playerBegin();i!=g_pMatchInfo->playerEnd();++i)
+ {
+ PID pid=(*i).first;
+ CPlayer p=(*i).second;
+ for (int t=0;t<MAX_TEAMS;t++)
+ {
+ if (p.teams.contains(t))
+ {
+ double rank=p.perteam[t].rank();
+ pair<double,CPlayer> insertme(rank,p);
+ rankedteams[t].insert(insertme);
+ }
+ }
+ }
+
+ while(!rankedteams[0].empty() || !rankedteams[1].empty() || !rankedteams[2].empty() || !rankedteams[3].empty())
+ {
+ html.write("<tr>\n");
+ int t;
+
+ for (t=0;t<MAX_TEAMS;t++)
+ {
+ if (!g_pMatchInfo->teamExists(t))
+ continue;
+
+ html.write("<td width=250 valign=top>");
+
+
+ if (rankedteams[t].begin()==rankedteams[t].end())
+ continue;
+ else
+ {
+ CPlayer& plr=(*(rankedteams[t].begin())).second;
+ CPlayerReport cpr(&plr,t);
+ cpr.writeHTML(html);
+ rankedteams[t].erase(rankedteams[t].begin());
+ //break;
+ }
+ html.write("</td>\n");
+ }
+ html.write("</tr>\n");
+ }
+ html.write("</table>");
+
+}
+