diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /engine/replaydemo.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'engine/replaydemo.h')
| -rw-r--r-- | engine/replaydemo.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/engine/replaydemo.h b/engine/replaydemo.h new file mode 100644 index 0000000..55b4cc5 --- /dev/null +++ b/engine/replaydemo.h @@ -0,0 +1,90 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef REPLAYDEMO_H +#define REPLAYDEMO_H +#ifdef _WIN32 +#pragma once +#endif + +#include <filesystem.h> + +#include "demo.h" +#include "demofile.h" + +#define TMP_REPLAY_FILENAME ".replay.tmp" + +class CReplayFrame; +class CReplayServer; +class CRecordingSessionBlock; + +class CReplayDemoRecorder : public IDemoRecorder +{ +public: + CReplayDemoRecorder( CReplayServer* pServer ); + virtual ~CReplayDemoRecorder(); + + CDemoFile *GetDemoFile(); + int GetRecordingTick(); + +private: + friend class CReplayServer; // Calls to Start/StopRecording() should be funneled through CReplayServer + + void StartRecording(); + void StopRecording(); + + const char *GetDemoFilename(); + +public: + void SetSignonState( int state ) {} + bool IsRecording(); + void PauseRecording() {} + void ResumeRecording() {} + + void RecordCommand( const char *cmdstring ); + void RecordUserInput( int cmdnumber ) {} ; // not need by Replay recorder + void RecordMessages( bf_read &data, int bits ); + void RecordPacket(); + void RecordServerClasses( ServerClass *pClasses ); + void RecordStringTables(); + + void ResetDemoInterpolation() {} + + void WriteFrame( CReplayFrame *pFrame ); + void CloseFile(); + + void WriteServerInfo(); + int WriteSignonData(); // write all necessary signon data and returns written bytes + void WriteMessages( unsigned char cmd, bf_write &message ); + int GetMaxAckTickCount(); + + void GetUniqueDemoFilename( char* pOut, int nLength ); + + const char *GetRecordingFilename(); + +public: + CDemoFile m_DemoFile; + + // TODO: I believe this can be removed + char m_szDumpFilename[MAX_OSPATH]; // The name of the file name to which we are currently (or will eventually) + // write the demo, depending on cvar, "replay_record_directly_to_disk" + bool m_bIsRecording; + bool m_bWrittenFirstFullUpdate; + int m_nFrameCount; + int m_nStartTick; + int m_SequenceInfo; + int m_nDeltaTick; + int m_nSignonTick; + bf_write m_MessageData; // temp buffer for all network messages + CReplayServer *m_pReplayServer; + +private: + void StartRecording( const char *pFilename, bool bContinuously ); +}; + + + +#endif // REPLAYDEMO_H |