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.
60 lines
1.2 KiB
60 lines
1.2 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//=============================================================================// |
|
|
|
#include "cbase.h" |
|
#include "base_transmit_proxy.h" |
|
|
|
// memdbgon must be the last include file in a .cpp file!!! |
|
#include "tier0/memdbgon.h" |
|
|
|
CBaseTransmitProxy::CBaseTransmitProxy( CBaseEntity *pEnt ) |
|
{ |
|
m_hEnt = pEnt; |
|
m_refCount = 0; |
|
} |
|
|
|
|
|
CBaseTransmitProxy::~CBaseTransmitProxy() |
|
{ |
|
// Unlink from our parent entity. |
|
if ( m_hEnt ) |
|
{ |
|
m_refCount = 0xFFFF; // Prevent us from deleting ourselves again. |
|
// m_hEnt->NetworkProp()->SetTransmitProxy( NULL ); |
|
} |
|
} |
|
|
|
|
|
int CBaseTransmitProxy::ShouldTransmit( const CCheckTransmitInfo *pInfo, int nPrevShouldTransmitResult ) |
|
{ |
|
// Anyone implementing a transmit proxy should override this since that's the point!! |
|
Assert( false ); |
|
return FL_EDICT_DONTSEND; |
|
} |
|
|
|
|
|
void CBaseTransmitProxy::AddRef() |
|
{ |
|
m_refCount++; |
|
} |
|
|
|
|
|
void CBaseTransmitProxy::Release() |
|
{ |
|
if ( m_refCount == 0xFFFF ) |
|
{ |
|
// This means we are inside our destructor already, so we don't want to do anything here. |
|
} |
|
else if ( m_refCount <= 1 ) |
|
{ |
|
delete this; |
|
} |
|
else |
|
{ |
|
--m_refCount; |
|
} |
|
} |
|
|
|
|