Team Fortress 2 Source Code as on 22/4/2020
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.
|
|
//========= 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
|