source-engine/game/server/episodic/ep1_gamestats.cpp
FluorescentCIAAfricanAmerican 3bf9df6b27 1
2020-04-22 12:56:21 -04:00

75 lines
1.7 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================
//Gamestats was built for ep1, so this file is going to be amazingly short seeing as how ep1 set the standard
#include "cbase.h"
#include "ep1_gamestats.h"
#include "tier1/utlbuffer.h"
static CEP1GameStats s_CEP1GS_ThisJustSitsInMemory;
// A bit of a hack to redirect the gamestats API for ep2 (ep3, etc.)
extern CBaseGameStats *g_pEP2GameStats;
CEP1GameStats::CEP1GameStats( void )
{
gamestats = &s_CEP1GS_ThisJustSitsInMemory;
}
CBaseGameStats *CEP1GameStats::OnInit( CBaseGameStats *pCurrentGameStats, char const *gamedir )
{
if ( !Q_stricmp( gamedir, "ep2" ) )
{
return g_pEP2GameStats;
}
return pCurrentGameStats;
}
const char *CEP1GameStats::GetStatSaveFileName( void )
{
return "ep1_gamestats.dat"; //overriding the default for backwards compatibility with release stat tracking code
}
const char *CEP1GameStats::GetStatUploadRegistryKeyName( void )
{
return "GameStatsUpload_Ep1"; //overriding the default for backwards compatibility with release stat tracking code
}
static char const *ep1Maps[] =
{
"ep1_citadel_00",
"ep1_citadel_01",
"ep1_citadel_02",
"ep1_citadel_02b",
"ep1_citadel_03",
"ep1_citadel_04",
"ep1_c17_00",
"ep1_c17_00a",
"ep1_c17_01",
"ep1_c17_02",
"ep1_c17_02b",
"ep1_c17_02a",
"ep1_c17_05",
"ep1_c17_06",
};
bool CEP1GameStats::UserPlayedAllTheMaps( void )
{
int c = ARRAYSIZE( ep1Maps );
for ( int i = 0; i < c; ++i )
{
int idx = m_BasicStats.m_MapTotals.Find( ep1Maps[ i ] );
if( idx == m_BasicStats.m_MapTotals.InvalidIndex() )
return false;
}
return true;
}