csgo-2018-source/engine/sv_main.h
2021-07-24 21:11:47 -07:00

131 lines
3.6 KiB
C++

//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
//
// Purpose: Expose functions from sv_main.cpp.
//
// $NoKeywords: $
//===========================================================================//
#ifndef SV_MAIN_H
#define SV_MAIN_H
#include "edict.h"
#include "packed_entity.h"
#include "utlvector.h"
#include "convar.h"
#include "netadr.h"
#include "checksum_crc.h"
#include "soundflags.h"
#include "tier1/bitbuf.h"
#include "SoundEmitterSystem/isoundemittersystembase.h"
#include "netmessages.pb.h"
class CGameClient;
//===========================================================
// sv_main.c
// Which areas are we going to transmit (usually 1, but with portals you can see into multiple other areas).
extern CUtlVector<int> g_AreasNetworked;
void SV_ProcessVoice( void );
void SV_Frame( bool send_client_updates );
void SV_FrameExecuteThreadDeferred();
void SV_InitGameDLL( void );
void SV_ReplicateConVarChange( ConVar const *var, char const *newValue );
void SV_ExecuteRemoteCommand( const char *pCommand, int nClientSlot = -1 );
void SV_InstallClientStringTableMirrors( void );
void SV_ResetModInfo( void );
class IRecipientFilter;
void SV_StartSound ( IRecipientFilter& filter, edict_t *pSoundEmittingEntity, int iChannel, const char *pSoundEntry, HSOUNDSCRIPTHASH iSoundEntryHash, const char *pSample,
float flVolume, soundlevel_t iSoundLevel, int iFlags, int iPitch, const Vector *pOrigin, float soundtime, int speakerentity, CUtlVector< Vector >* pUtlVecOrigins, int nSeed );
int SV_ModelIndex (const char *name);
int SV_FindOrAddModel (const char *name, bool preload );
int SV_SoundIndex (const char *name);
int SV_FindOrAddSound(const char *name, bool preload );
int SV_GenericIndex(const char *name);
int SV_FindOrAddGeneric(const char *name, bool preload );
int SV_DecalIndex(const char *name);
int SV_FindOrAddDecal(const char *name, bool preload );
void SV_ForceExactFile( const char *name );
void SV_ForceSimpleMaterial( const char *name );
void SV_ForceModelBounds( const char *name, const Vector &mins, const Vector &maxs );
void SV_Physics( bool bIsSimulating );
void SV_PreClientUpdate( bool bIsSimulating );
class IServerEntity;
void SV_ExecuteClientMessage (CGameClient *cl);
bool SV_ActivateServer();
#ifdef ENABLE_RPT
void SV_NotifyRPTOfDisconnect( int nClientSlot );
#endif // ENABLE_RPT
// sv_redirect.cpp
enum redirect_t
{
RD_NONE = 0, // server console
RD_CLIENT, // client console
RD_PACKET, // connectionless UDP
RD_SOCKET // TCP/IP remote socket
};
bool SV_RedirectActive( void );
void SV_RedirectAddText( const char *txt );
void SV_RedirectStart( redirect_t rd, const netadr_t *addr );
void SV_RedirectEnd( void );
class ServerClass;
class IClient;
class CClientFrame;
// Builds an alternate copy of the datatable for any classes that have datatables with props excluded.
void SV_InitSendTables( ServerClass *pClasses );
void SV_TermSendTables( ServerClass *pClasses );
// send voice data from cl to other clients
void SV_BroadcastVoiceData(IClient * cl, const CCLCMsg_VoiceData& msg );
void SV_SendRestoreMsg( bf_write &dest );
// A client has uploaded its logo to us;
void SV_SendLogo( CRC32_t& logoCRC );
void SV_PruneRequestList( void );
/*
=============
Calculates a PVS that is the inclusive or of all leafs within 8 pixels of the
given point.
=============
*/
void SV_ResetPVS( byte* pvs, int pvssize );
void SV_AddOriginToPVS( const Vector& origin );
extern CGlobalVars g_ServerGlobalVariables;
void SV_CheckForFlushMemory( const char *pCurrentMapName, const char *pDestMapName );
bool SV_FlushMemoryIfMarked();
void SV_FlushMemoryOnNextServer();
void SV_SetSteamCrashComment();
#endif