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. ============//
//
//=======================================================================================//
#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
|