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.
73 lines
1.9 KiB
73 lines
1.9 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $Revision: $ |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef TF_DEMO_SUPPORT_H |
|
#define TF_DEMO_SUPPORT_H |
|
|
|
#define EVENTS_FILENAME "_events.txt" |
|
|
|
enum EDemoEventType |
|
{ |
|
eDemoEvent_Bookmark, |
|
eDemoEvent_Killstreak, |
|
|
|
// also need to update g_aDemoEventNames |
|
eDemoEvent_Last, |
|
}; |
|
|
|
struct DemoEvent_t |
|
{ |
|
EDemoEventType type; |
|
int value; |
|
int tick; |
|
}; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
//----------------------------------------------------------------------------- |
|
class CTFDemoSupport : public CAutoGameSystemPerFrame, public CGameEventListener |
|
{ |
|
public: |
|
CTFDemoSupport(); |
|
|
|
virtual bool Init() OVERRIDE; |
|
virtual void Update( float frametime ) OVERRIDE; |
|
virtual char const *Name() OVERRIDE { return "CTFDemoSupport"; } |
|
virtual void FireGameEvent( IGameEvent *event ) OVERRIDE; |
|
virtual void LevelInitPostEntity() OVERRIDE; |
|
virtual void LevelShutdownPostEntity() OVERRIDE; |
|
bool StartRecording( void ); |
|
void StopRecording( bool bFromEngine = false ); |
|
bool IsRecording( void ){ return m_bRecording; } |
|
void BookMarkCurrentTick( const char *pszValue = NULL ); |
|
void Status( void ); |
|
|
|
private: |
|
bool IsValidPath( const char *pszFolder ); |
|
void LogEvent( EDemoEventType eType, int nValue = 0, const char *pszValue = NULL ); |
|
void Notify( char *pszMessage ); |
|
|
|
bool m_bRecording; |
|
char m_szFolder[24]; |
|
char m_szFilename[MAX_PATH]; |
|
char m_szFolderAndFilename[MAX_PATH]; |
|
int m_nKillCount; |
|
float m_flLastKill; |
|
float m_flScreenshotTime; |
|
FileHandle_t m_hGlobalEventList; |
|
GCSDK::CWebAPIResponse m_DemoSpecificEventList; |
|
GCSDK::CWebAPIValues *m_pRoot; |
|
GCSDK::CWebAPIValues *m_pChildArray; |
|
bool m_bAlreadyAutoRecordedOnce; |
|
float m_flNextRecordStartCheckTime; |
|
bool m_bFirstEvent; |
|
int m_nStartingTickCount; |
|
bool m_bHasAtLeastOneEvent; |
|
}; |
|
|
|
#endif // TF_DEMO_SUPPORT_H
|