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.
124 lines
3.4 KiB
124 lines
3.4 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//============================================================================= |
|
|
|
#include "cbase.h" |
|
#include "sceneentity_shared.h" |
|
|
|
// memdbgon must be the last include file in a .cpp file!!! |
|
#include "tier0/memdbgon.h" |
|
|
|
static ConVar scene_print( "scene_print", "0", FCVAR_REPLICATED, "When playing back a scene, print timing and event info to console." ); |
|
ConVar scene_clientflex( "scene_clientflex", "1", FCVAR_REPLICATED, "Do client side flex animation." ); |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
// Input : *pFormat - |
|
// ... - |
|
// Output : static void |
|
//----------------------------------------------------------------------------- |
|
void Scene_Printf( const char *pFormat, ... ) |
|
{ |
|
int val = scene_print.GetInt(); |
|
if ( !val ) |
|
return; |
|
|
|
if ( val >= 2 ) |
|
{ |
|
if ( CBaseEntity::IsServer() && val != 2 ) |
|
{ |
|
return; |
|
} |
|
else if ( !CBaseEntity::IsServer() && val != 3 ) |
|
{ |
|
return; |
|
} |
|
} |
|
|
|
va_list marker; |
|
char msg[8192]; |
|
|
|
va_start(marker, pFormat); |
|
Q_vsnprintf(msg, sizeof(msg), pFormat, marker); |
|
va_end(marker); |
|
|
|
Msg( "%8.3f[%d] %s: %s", gpGlobals->curtime, gpGlobals->tickcount, CBaseEntity::IsServer() ? "sv" : "cl", msg ); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
// Output : const char |
|
//----------------------------------------------------------------------------- |
|
const char *CSceneTokenProcessor::CurrentToken( void ) |
|
{ |
|
return m_szToken; |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
// Input : crossline - |
|
// Output : Returns true on success, false on failure. |
|
//----------------------------------------------------------------------------- |
|
bool CSceneTokenProcessor::GetToken( bool crossline ) |
|
{ |
|
// NOTE: crossline is ignored here, may need to implement if needed |
|
m_pBuffer = engine->ParseFile( m_pBuffer, m_szToken, sizeof( m_szToken ) ); |
|
if ( m_szToken[0] ) |
|
return true; |
|
return false; |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
// Output : Returns true on success, false on failure. |
|
//----------------------------------------------------------------------------- |
|
bool CSceneTokenProcessor::TokenAvailable( void ) |
|
{ |
|
char const *search_p = m_pBuffer; |
|
|
|
while ( *search_p <= 32) |
|
{ |
|
if (*search_p == '\n') |
|
return false; |
|
search_p++; |
|
if ( !*search_p ) |
|
return false; |
|
|
|
} |
|
|
|
if (*search_p == ';' || *search_p == '#' || // semicolon and # is comment field |
|
(*search_p == '/' && *((search_p)+1) == '/')) // also make // a comment field |
|
return false; |
|
|
|
return true; |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
// Input : *fmt - |
|
// ... - |
|
//----------------------------------------------------------------------------- |
|
void CSceneTokenProcessor::Error( const char *fmt, ... ) |
|
{ |
|
char string[ 2048 ]; |
|
va_list argptr; |
|
va_start( argptr, fmt ); |
|
Q_vsnprintf( string, sizeof(string), fmt, argptr ); |
|
va_end( argptr ); |
|
|
|
Warning( "%s", string ); |
|
Assert(0); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: |
|
// Input : *buffer - |
|
//----------------------------------------------------------------------------- |
|
void CSceneTokenProcessor::SetBuffer( char *buffer ) |
|
{ |
|
m_pBuffer = buffer; |
|
} |
|
|
|
CSceneTokenProcessor g_TokenProcessor; |