mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-11 11:19:09 +00:00
1
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
//=======================================================================================//
|
||||
|
||||
#include "baserecordingsessionblockmanager.h"
|
||||
#include "baserecordingsessionblock.h"
|
||||
#include "replay/replayutils.h"
|
||||
#include "replay/ireplaycontext.h"
|
||||
#include "replay/shared_defs.h"
|
||||
#include "KeyValues.h"
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
|
||||
#define RECORDINGSESSIONBLOCKMANAGER_VERSION 0
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
|
||||
CBaseRecordingSessionBlockManager::CBaseRecordingSessionBlockManager( IReplayContext *pContext )
|
||||
: m_pContext( pContext )
|
||||
{
|
||||
}
|
||||
|
||||
bool CBaseRecordingSessionBlockManager::Init()
|
||||
{
|
||||
// Call CGenericPersistentManager::Init() to do setup, but don't actually load any blocks on the server.
|
||||
return BaseClass::Init( ShouldLoadBlocks() );
|
||||
}
|
||||
|
||||
const char *CBaseRecordingSessionBlockManager::GetRelativeIndexPath() const
|
||||
{
|
||||
return Replay_va( "%s%c", SUBDIR_BLOCKS, CORRECT_PATH_SEPARATOR );
|
||||
}
|
||||
|
||||
float CBaseRecordingSessionBlockManager::GetNextThinkTime() const
|
||||
{
|
||||
return g_pEngine->GetHostTime() + 0.1f;
|
||||
}
|
||||
|
||||
int CBaseRecordingSessionBlockManager::GetVersion() const
|
||||
{
|
||||
return RECORDINGSESSIONBLOCKMANAGER_VERSION;
|
||||
}
|
||||
|
||||
CBaseRecordingSessionBlock *CBaseRecordingSessionBlockManager::GetBlock( ReplayHandle_t hBlock )
|
||||
{
|
||||
return Find( hBlock );
|
||||
}
|
||||
|
||||
void CBaseRecordingSessionBlockManager::DeleteBlock( CBaseRecordingSessionBlock *pBlock )
|
||||
{
|
||||
Remove( pBlock );
|
||||
}
|
||||
|
||||
void CBaseRecordingSessionBlockManager::UnloadBlock( CBaseRecordingSessionBlock *pBlock )
|
||||
{
|
||||
FlagForUnload( pBlock );
|
||||
}
|
||||
|
||||
CBaseRecordingSessionBlock *CBaseRecordingSessionBlockManager::FindBlockForSession( ReplayHandle_t hSession, int iReconstruction )
|
||||
{
|
||||
FOR_EACH_OBJ( this, i )
|
||||
{
|
||||
CBaseRecordingSessionBlock *pCurBlock = m_vecObjs[ i ];
|
||||
if ( pCurBlock->m_hSession == hSession && pCurBlock->m_iReconstruction == iReconstruction )
|
||||
{
|
||||
return pCurBlock;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char *CBaseRecordingSessionBlockManager::GetSavePath() const
|
||||
{
|
||||
return Replay_va(
|
||||
"%s%c%s%c%s%c",
|
||||
SUBDIR_REPLAY, CORRECT_PATH_SEPARATOR,
|
||||
m_pContext->GetReplaySubDir(), CORRECT_PATH_SEPARATOR,
|
||||
SUBDIR_BLOCKS, CORRECT_PATH_SEPARATOR
|
||||
);
|
||||
}
|
||||
|
||||
const char *CBaseRecordingSessionBlockManager::GetBlockPath() const
|
||||
{
|
||||
return GetSavePath();
|
||||
}
|
||||
|
||||
void CBaseRecordingSessionBlockManager::LoadBlockFromFileName( const char *pFilename, IRecordingSession *pSession )
|
||||
{
|
||||
CBaseRecordingSessionBlock *pBlock;
|
||||
if ( ReadObjFromFile( pFilename, pBlock, true ) )
|
||||
{
|
||||
pSession->AddBlock( pBlock );
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user