summaryrefslogtreecommitdiff
path: root/engine/host.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /engine/host.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'engine/host.h')
-rw-r--r--engine/host.h175
1 files changed, 175 insertions, 0 deletions
diff --git a/engine/host.h b/engine/host.h
new file mode 100644
index 0000000..473a6ab
--- /dev/null
+++ b/engine/host.h
@@ -0,0 +1,175 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $Workfile: $
+// $Date: $
+// $NoKeywords: $
+//=============================================================================//
+#if !defined( HOST_H )
+#define HOST_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "convar.h"
+#include "steam/steamclientpublic.h"
+
+#define SCRIPT_DIR "scripts/"
+
+struct model_t;
+struct AudioState_t;
+
+
+class CCommonHostState
+{
+public:
+ model_t *worldmodel; // cl_entitites[0].model
+ struct worldbrushdata_t *worldbrush;
+ float interval_per_tick; // Tick interval for game
+ void SetWorldModel( model_t *pModel );
+};
+
+extern CCommonHostState host_state;
+
+//=============================================================================
+// the host system specifies the base of the directory tree, the mod + base mod
+// and the amount of memory available for the program to use
+struct engineparms_t
+{
+ char *basedir; // Executable directory ("c:/program files/half-life 2", for example)
+ char *mod; // Mod name ("cstrike", for example)
+ char *game; // Root game name ("hl2", for example, in the case of cstrike)
+ unsigned int memsize;
+};
+extern engineparms_t host_parms;
+
+
+//-----------------------------------------------------------------------------
+// Human readable methods to get at engineparms info
+//-----------------------------------------------------------------------------
+inline const char *GetCurrentMod()
+{
+ return host_parms.mod;
+}
+
+inline const char *GetCurrentGame()
+{
+ return host_parms.game;
+}
+
+inline const char *GetBaseDirectory()
+{
+ return host_parms.basedir;
+}
+
+
+//=============================================================================
+
+//
+// host
+// FIXME, move all this crap somewhere else
+//
+
+extern ConVar developer;
+extern bool host_initialized; // true if into command execution
+extern float host_frametime;
+extern float host_frametime_unbounded;
+extern float host_frametime_stddeviation;
+extern int host_framecount; // incremented every frame, never reset
+extern double realtime; // not bounded in any way, changed at
+// start of every frame, never reset
+void Host_Error (PRINTF_FORMAT_STRING const char *error, ...) FMTFUNCTION( 1, 2 );
+void Host_EndGame (bool bShowMainMenu, PRINTF_FORMAT_STRING const char *message, ...) FMTFUNCTION( 2, 3 );
+
+// user message
+#define MAX_USER_MSG_DATA 255
+
+// build info
+// day counter from Sep 30 2003
+extern int build_number( void );
+
+
+// Choke local client's/server's packets?
+extern ConVar host_limitlocal;
+// Print a debug message when the client or server cache is missed
+extern ConVar host_showcachemiss;
+
+extern bool g_bInEditMode;
+extern bool g_bInCommentaryMode;
+extern bool g_bAllowSecureServers;
+extern bool g_bLowViolence;
+
+// Returns true if host is not single stepping/pausing through code/
+// FIXME: Remove from final, retail version of code.
+bool Host_ShouldRun( void );
+void Host_FreeToLowMark( bool server );
+void Host_FreeStateAndWorld( bool server );
+void Host_Disconnect( bool bShowMainMenu, const char *pszReason = "" );
+void Host_RunFrame( float time );
+void Host_DumpMemoryStats( void );
+void Host_UpdateMapList( void );
+float Host_GetSoundDuration( const char *pSample );
+bool Host_IsSinglePlayerGame( void );
+int Host_GetServerCount( void );
+bool Host_AllowQueuedMaterialSystem( bool bAllow );
+
+bool Host_IsSecureServerAllowed();
+void FORCEINLINE Host_DisallowSecureServers()
+{
+#if !defined(SWDS)
+ g_bAllowSecureServers = false;
+#endif
+}
+
+bool Host_AllowLoadModule( const char *pFilename, const char *pPathID, bool bAllowUnknown, bool bIsServerOnly = false );
+
+// Force the voice stuff to send a packet out.
+// bFinal is true when the user is done talking.
+void CL_SendVoicePacket(bool bFinal);
+
+// Accumulated filtered time on machine ( i.e., host_framerate can alter host_time )
+extern float host_time;
+
+class NET_SetConVar;
+
+void Host_BuildConVarUpdateMessage( NET_SetConVar *cvarMsg, int flags, bool nonDefault );
+char const *Host_CleanupConVarStringValue( char const *invalue );
+void Host_SetAudioState( const AudioState_t &audioState );
+void Host_DefaultMapFileName( const char *pFullMapName, /* out */ char *pDiskName, unsigned int nDiskNameSize );
+
+bool CheckVarRange_Generic( ConVar *pVar, int minVal, int maxVal );
+
+// Total ticks run
+extern int host_tickcount;
+// Number of ticks being run this frame
+extern int host_frameticks;
+// Which tick are we currently on for this frame
+extern int host_currentframetick;
+
+// PERFORMANCE INFO
+#define MIN_FPS 0.1 // Host minimum fps value for maxfps.
+#define MAX_FPS 1000.0 // Upper limit for maxfps.
+
+#define MAX_FRAMETIME 0.1
+#define MIN_FRAMETIME 0.001
+
+#define TIME_TO_TICKS( dt ) ( (int)( 0.5f + (float)(dt) / host_state.interval_per_tick ) )
+#define TICKS_TO_TIME( dt ) ( host_state.interval_per_tick * (float)(dt) )
+
+// Normally, this is off, and it keeps the VCR file size smaller, but it can help
+// to turn it on when tracking down out-of-sync errors, because it verifies that more
+// things are the same during playback.
+extern ConVar vcr_verbose;
+
+// Set by the game DLL to tell us to do the same timing tricks as timedemo.
+extern bool g_bDedicatedServerBenchmarkMode;
+
+extern uint GetSteamAppID();
+extern EUniverse GetSteamUniverse();
+
+#define STEAMREMOTESTORAGE_CLOUD_OFF 0
+#define STEAMREMOTESTORAGE_CLOUD_ON 1
+
+#endif // HOST_H
+