This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

75 lines
3.0 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef ICLIENTREPLAY_H
#define ICLIENTREPLAY_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "replay/replayhandle.h"
//----------------------------------------------------------------------------------------
#define CLIENT_REPLAY_INTERFACE_VERSION "ClientReplay001"
//----------------------------------------------------------------------------------------
class IReplayFactory;
class IReplayScreenshotSystem;
class IReplayPerformancePlaybackHandler;
class KeyValues;
class IReplayCamera;
class CReplayPerformance;
struct RenderMovieParams_t;
class IGameEvent;
//----------------------------------------------------------------------------------------
//
// Allows the replay and engine DLL's to talk to the client.
//
class IClientReplay : public IBaseInterface {
public:
virtual uint64 GetServerSessionId() = 0;
virtual bool CacheReplayRagdolls(
const char *pFilename, int nStartTick) = 0; // Cache replay ragdolls
virtual IReplayScreenshotSystem *
GetReplayScreenshotSystem() = 0; // Get the client's replay screenshot
// system
virtual IReplayPerformancePlaybackHandler *
GetPerformancePlaybackHandler() = 0;
virtual IReplayCamera *GetReplayCamera() = 0;
virtual void DisplayReplayMessage(const char *pLocalizeStr, bool bUrgent,
bool bDlg, const char *pSound) = 0;
virtual void DisplayReplayMessage(const wchar_t *pText, bool bUrgent,
bool bDlg, const char *pSound) = 0;
virtual void InitPerformanceEditor(ReplayHandle_t hReplay) = 0;
virtual void HidePerformanceEditor() = 0;
virtual bool ShouldRender() = 0;
virtual void PlaySound(const char *pSound) = 0;
virtual void UploadOgsData(KeyValues *pData, bool bIncludeTimeField) = 0;
virtual bool ShouldCompletePendingReplay(IGameEvent *pEvent) = 0;
virtual void OnSaveReplay(ReplayHandle_t hNewReplay,
bool bShowInputDlg) = 0;
virtual void OnDeleteReplay(
ReplayHandle_t hReplay) = 0; // Called before replay is actually
// removed from the replay manager
virtual void OnPlaybackComplete(ReplayHandle_t hReplay,
int iPerformance) = 0;
virtual void OnRenderStart() = 0;
virtual void OnRenderComplete(const RenderMovieParams_t &RenderParams,
bool bCancelled, bool bSuccess,
bool bShowBrowser) = 0;
virtual bool OnConfirmQuit() = 0;
virtual bool OnEndOfReplayReached() = 0;
};
//----------------------------------------------------------------------------------------
#endif // ICLIENTREPLAY_H