mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-11 19:29:08 +00:00
1
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef ENGINESINGLEUSERFILTER_H
|
||||
#define ENGINESINGLEUSERFILTER_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "irecipientfilter.h"
|
||||
#include "bitvec.h"
|
||||
#include "utlvector.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
class CEngineRecipientFilter : public IRecipientFilter
|
||||
{
|
||||
public: // IRecipientFilter interface:
|
||||
|
||||
CEngineRecipientFilter();
|
||||
virtual int GetRecipientCount( void ) const;
|
||||
virtual int GetRecipientIndex( int slot ) const;
|
||||
virtual bool IsReliable( void ) const { return m_bReliable; };
|
||||
virtual bool IsInitMessage( void ) const { return m_bInit; };
|
||||
|
||||
public:
|
||||
|
||||
void Reset( void );
|
||||
|
||||
void MakeInitMessage( void );
|
||||
void MakeReliable( void );
|
||||
|
||||
void AddAllPlayers( void );
|
||||
void AddRecipientsByPVS( const Vector& origin );
|
||||
void AddRecipientsByPAS( const Vector& origin );
|
||||
void AddPlayersFromBitMask( CBitVec< ABSOLUTE_PLAYER_LIMIT >& playerbits );
|
||||
void AddPlayersFromFilter( const IRecipientFilter *filter );
|
||||
void AddRecipient( int playerindex );
|
||||
void RemoveRecipient( int playerindex );
|
||||
bool IncludesPlayer(int playerindex);
|
||||
|
||||
private:
|
||||
|
||||
bool m_bInit;
|
||||
bool m_bReliable;
|
||||
CUtlVector< int > m_Recipients;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Simple filter for doing MSG_ONE type stuff directly in engine
|
||||
//-----------------------------------------------------------------------------
|
||||
class CEngineSingleUserFilter : public IRecipientFilter
|
||||
{
|
||||
public:
|
||||
CEngineSingleUserFilter( int clientindex, bool bReliable = false )
|
||||
{
|
||||
m_nClientIndex = clientindex;
|
||||
m_bReliable = bReliable;
|
||||
}
|
||||
|
||||
virtual bool IsReliable( void ) const
|
||||
{
|
||||
return m_bReliable;
|
||||
}
|
||||
|
||||
virtual int GetRecipientCount( void ) const
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
virtual int GetRecipientIndex( int slot ) const
|
||||
{
|
||||
return m_nClientIndex;
|
||||
}
|
||||
|
||||
virtual bool IsBroadcastMessage( void ) const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual bool IsInitMessage( void ) const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
private:
|
||||
int m_nClientIndex;
|
||||
bool m_bReliable;
|
||||
};
|
||||
|
||||
#endif // ENGINESINGLEUSERFILTER_H
|
||||
Reference in New Issue
Block a user