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.
108 lines
3.0 KiB
108 lines
3.0 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
//=======================================================================================//
|
||
|
|
||
|
#ifndef IREPLAYPERFORMANCECONTROLLER_H
|
||
|
#define IREPLAYPERFORMANCECONTROLLER_H
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
//----------------------------------------------------------------------------------------
|
||
|
|
||
|
#include "interface.h"
|
||
|
#include "tier1/strtools.h"
|
||
|
|
||
|
//----------------------------------------------------------------------------------------
|
||
|
|
||
|
class IReplayPerformanceEditor;
|
||
|
class CReplay;
|
||
|
class Vector;
|
||
|
class QAngle;
|
||
|
class CReplayPerformance;
|
||
|
|
||
|
//----------------------------------------------------------------------------------------
|
||
|
|
||
|
// These values are what we use to represent
|
||
|
|
||
|
struct SetViewParams_t
|
||
|
{
|
||
|
SetViewParams_t() { V_memset( this, 0, sizeof( SetViewParams_t ) ); }
|
||
|
SetViewParams_t( float flTime, Vector *pOrigin, QAngle *pAngles, float flFov, float flAccel,
|
||
|
float flSpeed, float flRotFilter )
|
||
|
: m_flTime( flTime ),
|
||
|
m_pOrigin( pOrigin ),
|
||
|
m_pAngles( pAngles ),
|
||
|
m_flFov( flFov ),
|
||
|
m_flAccel( flAccel ),
|
||
|
m_flSpeed( flSpeed ),
|
||
|
m_flRotationFilter( flRotFilter )
|
||
|
{
|
||
|
}
|
||
|
|
||
|
float m_flTime;
|
||
|
Vector *m_pOrigin;
|
||
|
QAngle *m_pAngles;
|
||
|
float m_flFov;
|
||
|
|
||
|
// Right now only used for updating UI during playback:
|
||
|
float m_flAccel;
|
||
|
float m_flSpeed;
|
||
|
float m_flRotationFilter;
|
||
|
};
|
||
|
|
||
|
//----------------------------------------------------------------------------------------
|
||
|
|
||
|
class IReplayPerformanceController : public IBaseInterface
|
||
|
{
|
||
|
public:
|
||
|
virtual void SetEditor( IReplayPerformanceEditor *pEditor ) = 0;
|
||
|
|
||
|
virtual bool IsPlaybackDataLeft() = 0;
|
||
|
|
||
|
virtual void StartRecording( CReplay *pReplay, bool bSnip ) = 0;
|
||
|
virtual void NotifyRewinding() = 0;
|
||
|
|
||
|
virtual void Stop() = 0;
|
||
|
virtual bool SaveAsync() = 0;
|
||
|
virtual bool SaveAsAsync( const wchar *pTitle ) = 0;
|
||
|
|
||
|
virtual bool IsSaving() const = 0;
|
||
|
|
||
|
virtual void SaveThink() = 0;
|
||
|
|
||
|
virtual bool GetLastSaveStatus() const = 0;
|
||
|
|
||
|
virtual bool IsRecording() const = 0;
|
||
|
virtual bool IsPlaying() const = 0;
|
||
|
|
||
|
virtual bool IsDirty() const = 0;
|
||
|
virtual void NotifyDirty() = 0;
|
||
|
|
||
|
virtual CReplayPerformance *GetPerformance() = 0;
|
||
|
virtual CReplayPerformance *GetSavedPerformance() = 0;
|
||
|
virtual bool HasSavedPerformance() = 0;
|
||
|
|
||
|
virtual void NotifyPauseState( bool bPaused ) = 0;
|
||
|
|
||
|
virtual void ClearRewinding() = 0;
|
||
|
|
||
|
virtual void OnSignonStateFull() = 0;
|
||
|
|
||
|
virtual float GetPlaybackTimeScale() const = 0;
|
||
|
|
||
|
//
|
||
|
// Recorder-specific:
|
||
|
//
|
||
|
virtual void AddEvent_Camera_Change_FirstPerson( float flTime, int nEntityIndex ) = 0;
|
||
|
virtual void AddEvent_Camera_Change_ThirdPerson( float flTime, int nEntityIndex ) = 0;
|
||
|
virtual void AddEvent_Camera_Change_Free( float flTime ) = 0;
|
||
|
virtual void AddEvent_Camera_ChangePlayer( float flTime, int nEntIndex ) = 0;
|
||
|
virtual void AddEvent_Camera_SetView( const SetViewParams_t ¶ms ) = 0;
|
||
|
virtual void AddEvent_TimeScale( float flTime, float flScale ) = 0;
|
||
|
};
|
||
|
|
||
|
//----------------------------------------------------------------------------------------
|
||
|
|
||
|
#endif // IREPLAYPERFORMANCECONTROLLER_H
|