//========= 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>"); }