source-engine/utils/tfstats/whokilledwho.h

61 lines
1.6 KiB
C
Raw Normal View History

2020-04-22 16:56:21 +00:00
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Implementation of CWhoKilledWho
//
// $Workfile: $
// $Date: $
//
//------------------------------------------------------------------------------------------------------
// $Log: $
//
// $NoKeywords: $
//=============================================================================//
#ifndef WHOKILLEDWHO_H
#define WHOKILLEDWHO_H
#ifdef WIN32
#pragma once
#endif
#include "report.h"
//------------------------------------------------------------------------------------------------------
// Purpose: CWhoKilledWho is a report element that outputs a detailed scoreboard
// showing, in a 2x2 matrix who killed who how many times. On the edges of the
// matrix, total kills and total deaths for each player are also tallied up
//------------------------------------------------------------------------------------------------------
class CWhoKilledWho :public CReport
{
private:
int* kills;
int size;
int* deaths;
//bids map from a player ID to a "board ID" because
//player IDs are not necessarily contiguous
//and rarely start at 0
map<PID,int> bids;
int nextbid;
//this maps from bids back to pids
map<int,PID> pids;
map<pair<int,PID>,int> bidMap;
map<int,pair<int,PID> > bidMap2;
//returns the style class for a cell in the html table
const char* getCellClass(int u,int v);
void init();
void makeBidMap();
public:
explicit CWhoKilledWho(){kills=deaths=NULL;init();}
void generate();
void writeHTML(CHTMLFile& html);
~CWhoKilledWho();
};
#endif // WHOKILLEDWHO_H