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.
47 lines
985 B
47 lines
985 B
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
// |
|
//=============================================================================// |
|
|
|
#include "dt_stack.h" |
|
|
|
// memdbgon must be the last include file in a .cpp file!!! |
|
#include "tier0/memdbgon.h" |
|
|
|
CDatatableStack::CDatatableStack( CSendTablePrecalc *pPrecalc, unsigned char *pStructBase, int objectID ) |
|
{ |
|
m_pPrecalc = pPrecalc; |
|
|
|
m_pStructBase = pStructBase; |
|
m_ObjectID = objectID; |
|
|
|
m_iCurProp = 0; |
|
m_pCurProp = NULL; |
|
|
|
m_bInitted = false; |
|
|
|
#ifdef _DEBUG |
|
memset( m_pProxies, 0xFF, sizeof( m_pProxies ) ); |
|
#endif |
|
} |
|
|
|
|
|
void CDatatableStack::Init( bool bExplicitRoutes ) |
|
{ |
|
if ( bExplicitRoutes ) |
|
{ |
|
memset( m_pProxies, 0xFF, sizeof( m_pProxies[0] ) * m_pPrecalc->m_ProxyPaths.Count() ); |
|
} |
|
else |
|
{ |
|
// Walk down the tree and call all the datatable proxies as we hit them. |
|
RecurseAndCallProxies( &m_pPrecalc->m_Root, m_pStructBase ); |
|
} |
|
|
|
m_bInitted = true; |
|
} |
|
|
|
|
|
|