116 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//========= Copyright Valve Corporation, All rights reserved. ============//
 | 
						|
//
 | 
						|
//=======================================================================================//
 | 
						|
 | 
						|
#ifndef IENGINEREPLAY_H
 | 
						|
#define IENGINEREPLAY_H
 | 
						|
#ifdef _WIN32
 | 
						|
#pragma once
 | 
						|
#endif
 | 
						|
 | 
						|
//----------------------------------------------------------------------------------------
 | 
						|
 | 
						|
#include "interface.h"
 | 
						|
 | 
						|
//----------------------------------------------------------------------------------------
 | 
						|
 | 
						|
#define ENGINE_REPLAY_INTERFACE_VERSION				"EngineReplay001"
 | 
						|
 | 
						|
#if !defined( DEDICATED )
 | 
						|
#  define ENGINE_REPLAY_CLIENT_INTERFACE_VERSION	"EngineClientReplay001"
 | 
						|
#endif
 | 
						|
 | 
						|
//----------------------------------------------------------------------------------------
 | 
						|
 | 
						|
class IServer;
 | 
						|
class INetChannel;
 | 
						|
class IReplayServer;
 | 
						|
class IClientEntityList;
 | 
						|
class IClientReplay;
 | 
						|
struct demoheader_t;
 | 
						|
class CGlobalVarsBase;
 | 
						|
class IDemoBuffer;
 | 
						|
class CBaseRecordingSessionBlock;
 | 
						|
 | 
						|
//----------------------------------------------------------------------------------------
 | 
						|
 | 
						|
//
 | 
						|
// Allows the replay, client & server DLL's to talk to the engine
 | 
						|
//
 | 
						|
class IEngineReplay : public IBaseInterface
 | 
						|
{
 | 
						|
public:
 | 
						|
	virtual bool			IsSupportedModAndPlatform() = 0;
 | 
						|
 | 
						|
	virtual float			GetHostTime() = 0;
 | 
						|
	virtual int				GetHostTickCount() = 0;
 | 
						|
	virtual int				TimeToTicks( float flTime ) = 0;
 | 
						|
	virtual float			TicksToTime( int nTick ) = 0;
 | 
						|
 | 
						|
	virtual bool			ReadDemoHeader( const char *pFilename, demoheader_t &header ) = 0;
 | 
						|
	virtual const char		*GetGameDir() = 0;
 | 
						|
	virtual void			Cbuf_AddText( const char *pCmd ) = 0;
 | 
						|
	virtual void			Cbuf_Execute() = 0;
 | 
						|
	virtual void			Host_Disconnect( bool bShowMainMenu ) = 0;
 | 
						|
	virtual void			HostState_Shutdown() = 0;
 | 
						|
	virtual const char		*GetModDir() = 0;
 | 
						|
 | 
						|
	virtual bool			CopyFile( const char *pSource, const char *pDest ) = 0;
 | 
						|
 | 
						|
	virtual bool			LZSS_Compress( char *pDest, unsigned int *pDestLen, const char *pSource, unsigned int nSourceLen ) = 0;
 | 
						|
	virtual bool			LZSS_Decompress( char *pDest, unsigned int *pDestLen, const char *pSource, unsigned int nSourceLen ) = 0;
 | 
						|
 | 
						|
	virtual bool			MD5_HashBuffer( unsigned char pDigest[16], const unsigned char *pBuffer, int nSize, unsigned int pSeed[4] ) = 0;
 | 
						|
 | 
						|
	// Server-specific
 | 
						|
	virtual IReplayServer	*GetReplayServer() = 0;
 | 
						|
	virtual IServer			*GetReplayServerAsIServer() = 0;
 | 
						|
	virtual IServer			*GetGameServer() = 0;
 | 
						|
	virtual bool			GetSessionRecordBuffer( uint8 **ppSessionBuffer, int *pSize ) = 0;
 | 
						|
	virtual bool			IsDedicated() = 0;
 | 
						|
	virtual void			ResetReplayRecordBuffer() = 0;
 | 
						|
	virtual demoheader_t	*GetReplayDemoHeader() = 0;
 | 
						|
	virtual void			RecalculateTags() = 0;
 | 
						|
	virtual bool			NET_GetHostnameAsIP( const char *pHostname, char *pOut, int nOutSize ) = 0;
 | 
						|
};
 | 
						|
 | 
						|
//
 | 
						|
// Allows the replay and client DLL's to talk to the engine
 | 
						|
//
 | 
						|
#if !defined( DEDICATED )
 | 
						|
class IEngineClientReplay : public IBaseInterface
 | 
						|
{
 | 
						|
public:
 | 
						|
	virtual INetChannel		*GetNetChannel() = 0;
 | 
						|
	virtual bool			IsConnected() = 0;
 | 
						|
	virtual bool			IsListenServer() = 0;
 | 
						|
	virtual float			GetLastServerTickTime() = 0;
 | 
						|
	virtual const char		*GetLevelName() = 0;
 | 
						|
	virtual const char		*GetLevelNameShort() = 0;
 | 
						|
	virtual int				GetPlayerSlot() = 0;
 | 
						|
	virtual bool			IsPlayingReplayDemo() = 0;
 | 
						|
	virtual IClientEntityList	*GetClientEntityList() = 0;
 | 
						|
	virtual IClientReplay	*GetClientReplayInt() = 0;
 | 
						|
	virtual uint32			GetClientSteamID() = 0;
 | 
						|
	virtual void			Con_NPrintf( int nPos, PRINTF_FORMAT_STRING const char *pFormat, ... ) = 0;
 | 
						|
	virtual CGlobalVarsBase	*GetClientGlobalVars() = 0;
 | 
						|
	virtual void			VGui_PlaySound( const char *pSound ) = 0;
 | 
						|
	virtual void			EngineVGui_ConfirmQuit() = 0;
 | 
						|
	virtual int				GetScreenWidth() = 0;
 | 
						|
	virtual int				GetScreenHeight() = 0;
 | 
						|
	virtual bool			IsDemoPlayingBack() = 0;
 | 
						|
	virtual bool			IsGamePathValidAndSafeForDownload( const char *pGamePath ) = 0;
 | 
						|
	virtual bool			IsInGame() = 0;
 | 
						|
 | 
						|
	virtual void			InitSoundRecord() = 0;
 | 
						|
 | 
						|
	virtual void			Wave_CreateTmpFile( const char *pFilename ) = 0;
 | 
						|
	virtual void			Wave_AppendTmpFile( const char *pFilename, void *pBuffer, int nNumSamples ) = 0;
 | 
						|
	virtual void			Wave_FixupTmpFile( const char *pFilename ) = 0;
 | 
						|
 | 
						|
};
 | 
						|
#endif	// !defined( DEDICATED )
 | 
						|
 | 
						|
//----------------------------------------------------------------------------------------
 | 
						|
 | 
						|
#endif // IENGINEREPLAY_H
 |