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. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#include "quakedef.h"
#include "precache.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
//-----------------------------------------------------------------------------
// Purpose: Print out flag names
// Input : flags -
// Output : char const
//-----------------------------------------------------------------------------
char const *GetFlagString( int flags ) { static char ret[ 512 ]; ret[ 0 ] = 0;
bool first = true;
if ( !flags ) return "None";
if ( flags & RES_FATALIFMISSING ) { if ( !first ) { Q_strncat( ret, " | ", sizeof( ret ), COPY_ALL_CHARACTERS ); } Q_strncat( ret, "RES_FATALIFMISSING", sizeof( ret ), COPY_ALL_CHARACTERS ); first = false; }
if ( flags & RES_PRELOAD ) { if ( !first ) { Q_strncat( ret, " | ", sizeof( ret ), COPY_ALL_CHARACTERS ); } Q_strncat( ret, "RES_PRELOAD", sizeof( ret ), COPY_ALL_CHARACTERS ); first = false; }
return ret; }
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
CPrecacheItem::CPrecacheItem( void ) { Init( TYPE_UNK, NULL ); ResetStats(); }
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CPrecacheItem::ResetStats( void ) { m_uiRefcount = 0; #if DEBUG_PRECACHE
m_flFirst = 0.0f; m_flMostRecent = 0.0f; #endif
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CPrecacheItem::Reference( void ) { m_uiRefcount++; #if DEBUG_PRECACHE
m_flMostRecent = realtime; if ( !m_flFirst ) { m_flFirst = realtime; } #endif
}
//-----------------------------------------------------------------------------
// Purpose:
// Input : type -
// *ptr -
//-----------------------------------------------------------------------------
void CPrecacheItem::Init( int type, void const *ptr ) { m_nType = type; u.model = ( model_t * )ptr; if ( ptr ) { ResetStats(); } }
//-----------------------------------------------------------------------------
// Purpose:
// Output : model_t
//-----------------------------------------------------------------------------
model_t *CPrecacheItem::GetModel( void ) { if ( !u.model ) return NULL;
Assert( m_nType == TYPE_MODEL );
Reference();
return u.model; }
//-----------------------------------------------------------------------------
// Purpose:
// Output : char const
//-----------------------------------------------------------------------------
char const *CPrecacheItem::GetGeneric( void ) { if ( !u.generic ) return NULL;
Assert( m_nType == TYPE_GENERIC );
Reference();
return u.generic; }
//-----------------------------------------------------------------------------
// Purpose:
// Output : CSfxTable
//-----------------------------------------------------------------------------
CSfxTable *CPrecacheItem::GetSound( void ) { if ( !u.sound ) return NULL;
Assert( m_nType == TYPE_SOUND );
Reference();
return u.sound; }
//-----------------------------------------------------------------------------
// Purpose:
// Output : char const
//-----------------------------------------------------------------------------
char const *CPrecacheItem::GetName( void ) { if ( !u.name ) return NULL;
Assert( m_nType == TYPE_SOUND );
Reference();
return u.name; }
//-----------------------------------------------------------------------------
// Purpose:
// Output : char const
//-----------------------------------------------------------------------------
char const *CPrecacheItem::GetDecal( void ) { if ( !u.name ) return NULL;
Assert( m_nType == TYPE_DECAL );
Reference();
return u.name; }
//-----------------------------------------------------------------------------
// Purpose:
// Input : *pmodel -
//-----------------------------------------------------------------------------
void CPrecacheItem::SetModel( model_t const *pmodel ) { Init( TYPE_MODEL, pmodel ); }
//-----------------------------------------------------------------------------
// Purpose:
// Input : *pname -
//-----------------------------------------------------------------------------
void CPrecacheItem::SetGeneric( char const *pname ) { Init( TYPE_GENERIC, pname ); }
//-----------------------------------------------------------------------------
// Purpose:
// Input : *psound -
//-----------------------------------------------------------------------------
void CPrecacheItem::SetSound( CSfxTable const *psound ) { Init( TYPE_SOUND, psound ); }
//-----------------------------------------------------------------------------
// Purpose:
// Input : *name -
//-----------------------------------------------------------------------------
void CPrecacheItem::SetName( char const *name ) { Init( TYPE_SOUND, name ); }
//-----------------------------------------------------------------------------
// Purpose:
// Input : *decalname -
//-----------------------------------------------------------------------------
void CPrecacheItem::SetDecal( char const *decalname ) { Init( TYPE_DECAL, decalname ); }
//-----------------------------------------------------------------------------
// Purpose:
// Output : float
//-----------------------------------------------------------------------------
float CPrecacheItem::GetFirstReference( void ) { #if DEBUG_PRECACHE
return m_flFirst; #else
return 0; #endif
}
//-----------------------------------------------------------------------------
// Purpose:
// Output : float
//-----------------------------------------------------------------------------
float CPrecacheItem::GetMostRecentReference( void ) { #if DEBUG_PRECACHE
return m_flMostRecent; #else
return 0; #endif
}
//-----------------------------------------------------------------------------
// Purpose:
// Output : unsigned int
//-----------------------------------------------------------------------------
unsigned int CPrecacheItem::GetReferenceCount( void ) { return m_uiRefcount; }
|