diff options
Diffstat (limited to 'game/shared/voice_banmgr.h')
| -rw-r--r-- | game/shared/voice_banmgr.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/game/shared/voice_banmgr.h b/game/shared/voice_banmgr.h new file mode 100644 index 0000000..6adfdc5 --- /dev/null +++ b/game/shared/voice_banmgr.h @@ -0,0 +1,54 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef VOICE_BANMGR_H +#define VOICE_BANMGR_H +#ifdef _WIN32 +#pragma once +#endif + + +// This class manages the (persistent) list of squelched players. +class CVoiceBanMgr +{ +public: + + CVoiceBanMgr(); + ~CVoiceBanMgr(); + + // Init loads the list of squelched players from disk. + bool Init(const char *pGameDir); + void Term(); + + // Saves the state into voice_squelch.dt. + void SaveState(const char *pGameDir); + + bool GetPlayerBan(char const playerID[SIGNED_GUID_LEN]); + void SetPlayerBan(char const playerID[SIGNED_GUID_LEN], bool bSquelch); + + +protected: + + class BannedPlayer + { + public: + char m_PlayerID[SIGNED_GUID_LEN]; + BannedPlayer *m_pPrev, *m_pNext; + }; + + void Clear(); + BannedPlayer* InternalFindPlayerSquelch(char const playerID[SIGNED_GUID_LEN]); + BannedPlayer* AddBannedPlayer(char const playerID[SIGNED_GUID_LEN]); + + +protected: + + BannedPlayer m_PlayerHash[256]; +}; + + +#endif // VOICE_BANMGR_H |