You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
5.2 KiB
129 lines
5.2 KiB
//====== Copyright © 1996-2006, Valve Corporation, All rights reserved. =======// |
|
// |
|
// Purpose: |
|
// |
|
//=============================================================================// |
|
#ifndef ASW_GAMESTATS_H |
|
#define ASW_GAMESTATS_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "GameStats.h" |
|
#include "asw_gamestats_shared.h" |
|
#include "GameEventListener.h" |
|
#include "utlvector.h" |
|
#include "asw_player_shared.h" |
|
|
|
// Forward declarations |
|
class CASW_Player; |
|
class CASW_Marine; |
|
struct FailAdviceMessageStatus_t; |
|
class CASW_BurnInfo; |
|
|
|
//============================================================================= |
|
// |
|
// Class for tracking per-campaign server side stats |
|
// |
|
class CASWCampaignStatTracker |
|
{ |
|
public: |
|
// Events |
|
void Event_LevelInit( void ) { } |
|
void Event_LevelShutdown( float flElapsed ) { } |
|
void Event_MarineKilled( CASW_Marine *pMarine, const CTakeDamageInfo &info ) { } |
|
void Event_MarineTookDamage( CASW_Marine *pMarine, const CTakeDamageInfo &info ) { } |
|
void Event_MarineBreadcrumb( CASW_Marine *pMarine ) { } |
|
void Event_MarineReloading( CASW_Marine *pMarine, const char *szWeaponClass ) { } |
|
void Event_MarineTookPickup( CASW_Marine *pMarine, const char *szPickupClass, const char *szDroppedClass ) { } |
|
void Event_AlienSpawned( CBaseEntity *pAlien ) { } |
|
void Event_AlienKilled( CBaseEntity *pAlien, const CTakeDamageInfo &info ) { } |
|
void Event_MissionStarted() { } |
|
void Event_MissionComplete( bool bSuccess ) { } |
|
|
|
}; |
|
//============================================================================= |
|
|
|
|
|
//============================================================================= |
|
// |
|
// Class for tracking per-mission server side stats |
|
// |
|
class CASWMissionStatTracker |
|
{ |
|
public: |
|
CASWMissionStatTracker() { } |
|
|
|
// Events |
|
void Event_LevelInit( void ) { } |
|
void Event_LevelShutdown( float flElapsed ) { } |
|
void Event_MarineKilled( CASW_Marine *pMarine, const CTakeDamageInfo &info ) { } |
|
void Event_MarineTookDamage( CASW_Marine *pMarine, const CTakeDamageInfo &info ) { } |
|
void Event_MarineBreadcrumb( CASW_Marine *pMarine ) { } |
|
void Event_MarineReloading( CASW_Marine *pMarine, CBaseEntity *pWeapon ) { } |
|
void Event_MarineTookPickup( CASW_Marine *pMarine, CBaseEntity *pPickupClass, CBaseEntity *pDroppedClass ) { } |
|
void Event_AlienSpawned( CBaseEntity *pAlien ) { } |
|
void Event_AlienKilled( CBaseEntity *pAlien, const CTakeDamageInfo &info ) { } |
|
void Event_AlienTookDamage( CBaseEntity *pAlien, const CTakeDamageInfo &info ) { } |
|
void Event_EntityBurned( CBaseEntity *pEntity, float fTotalDamage, CBaseEntity *pBurningWeapon = NULL ) { } |
|
void Event_MissionStarted( void ) { } |
|
void Event_MissionComplete( bool bSuccess, int iFinalFailAdvice, const FailAdviceMessageStatus_t *pFailStatus ) { } |
|
void Event_MarineHealed( CASW_Marine *pMarine, int amount, CBaseEntity* pHealingWeapon = NULL ) { } |
|
void Event_MarineWeaponFired( const CBaseEntity *pWeapon, const CASW_Marine *pMarine, int nShotsFired, bool bIsSecondary ) { } |
|
void Event_MarinesSpawned( void ) { } |
|
void OnSessionStart( void ) { } |
|
void OnSessionEnd( void ) { } |
|
|
|
// Send all of the accumulated stats for the current mission |
|
virtual void SubmitGameStats( KeyValues *pKV ) { } |
|
|
|
}; |
|
//============================================================================= |
|
|
|
//============================================================================= |
|
// |
|
// Infested Game Stats Class |
|
// |
|
class CASWGameStats : public CBaseGameStats, public CGameEventListener, public CAutoGameSystem |
|
{ |
|
public: |
|
|
|
// Constructor/Destructor. |
|
CASWGameStats( void ) { } |
|
~CASWGameStats( void ) { } |
|
|
|
virtual void Clear( void ) { } |
|
virtual bool UseOldFormat() { return false; } |
|
virtual bool AddDataForSend( KeyValues *pKV, StatSendType_t sendType ) { return false; } |
|
virtual bool Init( void ) { return true; } |
|
|
|
// Events. Forwarded to Mission Tracker and Campaign Tracker as needed. |
|
virtual void Event_LevelInit( void ) { } |
|
virtual void Event_LevelShutdown( float flElapsed ) { } |
|
|
|
void Event_MarineKilled( CASW_Marine *pMarine, const CTakeDamageInfo &info ) { } |
|
void Event_MarineTookDamage( CASW_Marine *pMarine, const CTakeDamageInfo &info ) { } |
|
void Event_MarineBreadcrumb( CASW_Marine *pMarine ) { } |
|
void Event_MarineReloading( CASW_Marine *pMarine, CBaseEntity *pWeapon ) { } |
|
void Event_MarineTookPickup( CASW_Marine *pMarine, CBaseEntity *pPickupClass, CBaseEntity *pDroppedClass ) { } |
|
void Event_AlienSpawned( CBaseEntity *pAlien ) { } |
|
void Event_AlienKilled( CBaseEntity *pAlien, const CTakeDamageInfo &info ) { } |
|
void Event_AlienTookDamage( CBaseEntity *pAlien, const CTakeDamageInfo &info ) { } |
|
void Event_EntityBurned( CBaseEntity *pEntity, float fTotalDamage, CBaseEntity *pBurningWeapon = NULL ) { } |
|
void Event_MissionStarted( void ) { } |
|
void Event_MissionComplete( bool bSuccess, int iFinalFailAdvice, const FailAdviceMessageStatus_t *pFailStatus ) { } |
|
void Event_MarineHealed( CASW_Marine *pMarine, int amount, CBaseEntity *pHealingWeapon = NULL ) { } |
|
void Event_MarineWeaponFired( const CBaseEntity *pWeapon, const CASW_Marine *pMarine, int nShotsFired, bool bIsSecondary = false ) { } |
|
void Event_MarinesSpawned( void ) { } |
|
|
|
void OnSessionStart( void ) { } |
|
void OnSessionEnd( void ) { } |
|
|
|
virtual void FireGameEvent( IGameEvent * event ) { } |
|
|
|
void PrintGamestatsMemoryUsage( void ) { } |
|
}; |
|
|
|
extern CASWGameStats CASW_GameStats; |
|
|
|
#endif // ASW_GAMESTATS_H
|
|
|