示例#1
0
void CRecipientFilter::AddRecipientsByPAS( const Vector& origin )
{
	if ( gpGlobals->maxClients == 1 )
	{
		AddAllPlayers();
	}
	else
	{
		CBitVec< ABSOLUTE_PLAYER_LIMIT > playerbits;
		engine->Message_DetermineMulticastRecipients( true, origin, playerbits );
		AddPlayersFromBitMask( playerbits );
	}
}
void CEngineRecipientFilter::AddRecipientsByPAS( const Vector& origin )
{
	if ( svs.maxclients == 1 )
	{
		AddAllPlayers();
	}
	else
	{
		unsigned int playerbits = 0;
		SV_DetermineMulticastRecipients( true, origin, playerbits );
		AddPlayersFromBitMask( playerbits );
	}
}
void CRecipientFilter::AddRecipientsByPVS( const Vector& origin )
{
	if ( gpGlobals->maxClients == 1 )
	{
		AddAllPlayers();
	}
	else
	{
		CPlayerBitVec playerbits;
		engine->Message_DetermineMulticastRecipients( false, origin, playerbits );
		AddPlayersFromBitMask( playerbits );
	}
}
示例#4
0
void CRecipientFilter::AddRecipientsByPAS( const Vector& origin )
{
	if ( gpGlobals->maxClients == 1 )
	{
		AddAllPlayers();
	}
	else
	{
		CPlayerBitVec playerbits;
		engine->Message_DetermineMulticastRecipients( true, origin, playerbits );
		AddPlayersFromBitMask( playerbits );
	}

#ifdef HL2WARS_DLL
	// Filter when in the fog of war
	for( int i = 0; i < GetRecipientCount(); i++ )
	{
		int iIdx = GetRecipientIndex( i );
		if( FogOfWarMgr()->PointInFOWByPlayerIndex( origin, iIdx ) )
			this->RemoveRecipientByPlayerIndex( iIdx );
	}
#endif // HL2WARS_DLL
}