//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CPointCommentaryNode::SetTransmit( CCheckTransmitInfo *pInfo, bool bAlways ) { // Are we already marked for transmission? if ( pInfo->m_pTransmitEdict->Get( entindex() ) ) return; BaseClass::SetTransmit( pInfo, bAlways ); // Force our camera view position entity to be sent if ( m_hViewTarget ) { m_hViewTarget->SetTransmit( pInfo, bAlways ); } if ( m_hViewPosition.Get() ) { m_hViewPosition.Get()->SetTransmit( pInfo, bAlways ); } if ( m_hViewPositionMover ) { m_hViewPositionMover->SetTransmit( pInfo, bAlways ); } }
//----------------------------------------------------------------------------- // Rules about which entities need to transmit along with me //----------------------------------------------------------------------------- void CAmbientGeneric::SetTransmit( CCheckTransmitInfo *pInfo, bool bAlways ) { // Ambient generics never transmit; this is just a way for us to ensure // the sound source gets transmitted; that's why we don't call pInfo->m_pTransmitEdict->Set if ( !m_hSoundSource || m_hSoundSource == this || !m_fActive ) return; // Don't bother sending the position of the source if we have to play everywhere if ( FBitSet( m_spawnflags, SF_AMBIENT_SOUND_EVERYWHERE ) ) return; Assert( pInfo->m_pClientEnt ); CBaseEntity *pClient = (CBaseEntity*)(pInfo->m_pClientEnt->GetUnknown()); if ( !pClient ) return; // Send the sound source if he's close enough if ( ( m_flMaxRadius < 0 ) || ( pClient->GetAbsOrigin().DistToSqr( m_hSoundSource->GetAbsOrigin() ) <= m_flMaxRadius * m_flMaxRadius ) ) { m_hSoundSource->SetTransmit( pInfo, false ); } }