61 lines
1.2 KiB
C++
61 lines
1.2 KiB
C++
//========= Copyright © 1996-2005, 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;
|
|
}
|
|
}
|
|
|