//===== 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 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