mirror of
https://github.com/FWGS/hlsdk-xash3d
synced 2024-11-28 13:09:13 +01:00
ba2cab60df
* Get VGUI back (optionally) * Add some missing VGUI invocations * Update CMakeLists.txt to build with vgui for Windows * Move windows.h inclusions only to those places where it's really needed * Try fix mingw build * Update hud_spectator * Merge nekonomicon's vgui branch * Don't include vgui panel and app in cdll_int.cpp if vgui is real * Deduplicate scoreboard global variables * Add options to prefer non-vgui motd and scoreboard when vgui is enabled * Add vgui-dev as a submodule. Add building vith vgui to CI * Fix artifact uploading * Don't use global variable when not necessary * char* to const char* in CMenuHandler_StringCommand constructor * Fix 'format string is not a literal string' warnings * Fix 'always evaluate to true' warnings * Team Fortress classes to const char* * CreateCommandMenu accepts const char* * Fix printf formats. Turn some unsigned longs into unsigned ints since they use only 32 bits anyway * Explicit assignment result as condition * Prevent memory leak on menu reading * Localize button text * Create FileInputStream on stack avoiding the leak * Remove Servers Browser code * Arrow file names to const char* * Fix assignment to the wrong variable
81 lines
2.0 KiB
C++
81 lines
2.0 KiB
C++
//========= Copyright <20> 1996-2002, Valve LLC, All rights reserved. ============
|
||
//
|
||
// Purpose:
|
||
//
|
||
// $NoKeywords: $
|
||
//=============================================================================
|
||
#pragma once
|
||
#ifndef VOICE_GAMEMGR_H
|
||
#define VOICE_GAMEMGR_H
|
||
|
||
#ifdef _WIN32
|
||
#endif
|
||
|
||
|
||
#include "voice_common.h"
|
||
|
||
|
||
class CGameRules;
|
||
class CBasePlayer;
|
||
|
||
|
||
class IVoiceGameMgrHelper
|
||
{
|
||
public:
|
||
virtual ~IVoiceGameMgrHelper() {}
|
||
|
||
// Called each frame to determine which players are allowed to hear each other. This overrides
|
||
// whatever squelch settings players have.
|
||
virtual bool CanPlayerHearPlayer(CBasePlayer *pListener, CBasePlayer *pTalker) = 0;
|
||
};
|
||
|
||
|
||
// CVoiceGameMgr manages which clients can hear which other clients.
|
||
class CVoiceGameMgr
|
||
{
|
||
public:
|
||
CVoiceGameMgr();
|
||
virtual ~CVoiceGameMgr();
|
||
|
||
bool Init(
|
||
IVoiceGameMgrHelper *m_pHelper,
|
||
int maxClients
|
||
);
|
||
|
||
void SetHelper(IVoiceGameMgrHelper *pHelper);
|
||
|
||
// Updates which players can hear which other players.
|
||
// If gameplay mode is DM, then only players within the PVS can hear each other.
|
||
// If gameplay mode is teamplay, then only players on the same team can hear each other.
|
||
// Player masks are always applied.
|
||
void Update(double frametime);
|
||
|
||
// Called when a new client connects (unsquelches its entity for everyone).
|
||
void ClientConnected(struct edict_s *pEdict);
|
||
|
||
// Called on ClientCommand. Checks for the squelch and unsquelch commands.
|
||
// Returns true if it handled the command.
|
||
bool ClientCommand(CBasePlayer *pPlayer, const char *cmd);
|
||
|
||
// Called to determine if the Receiver has muted (blocked) the Sender
|
||
// Returns true if the receiver has blocked the sender
|
||
bool PlayerHasBlockedPlayer(CBasePlayer *pReceiver, CBasePlayer *pSender);
|
||
|
||
|
||
private:
|
||
|
||
// Force it to update the client masks.
|
||
void UpdateMasks();
|
||
|
||
|
||
int m_msgPlayerVoiceMask;
|
||
int m_msgRequestState;
|
||
|
||
IVoiceGameMgrHelper *m_pHelper;
|
||
int m_nMaxPlayers;
|
||
double m_UpdateInterval; // How long since the last update.
|
||
};
|
||
|
||
|
||
#endif // VOICE_GAMEMGR_H
|