summaryrefslogtreecommitdiff
path: root/engine/cl_main.h
diff options
context:
space:
mode:
Diffstat (limited to 'engine/cl_main.h')
-rw-r--r--engine/cl_main.h195
1 files changed, 195 insertions, 0 deletions
diff --git a/engine/cl_main.h b/engine/cl_main.h
new file mode 100644
index 0000000..0fd7e30
--- /dev/null
+++ b/engine/cl_main.h
@@ -0,0 +1,195 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//===========================================================================//
+
+#ifndef CL_MAIN_H
+#define CL_MAIN_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "basetypes.h"
+#include "networkstringtable.h"
+#include "const.h"
+#include "utlvector.h"
+#include "checksum_crc.h"
+#include "cdll_int.h"
+#include "netmessages.h"
+#include "dlight.h"
+#include "iefx.h"
+#include "tier1/convar.h"
+#include "cmodel_engine.h"
+#include "video/ivideoservices.h"
+
+class CCommand;
+
+#define MAX_STYLESTRING 64
+#define MAX_ELIGHTS 64 // entity only point lights
+
+extern dlight_t cl_dlights[MAX_DLIGHTS];
+extern dlight_t cl_elights[MAX_ELIGHTS];
+extern bool g_bActiveDlights;
+extern bool g_bActiveElights;
+
+// These can be used for fast access to the leaf indices of each light.
+extern CFastPointLeafNum g_DLightLeafAccessors[MAX_DLIGHTS];
+extern CFastPointLeafNum g_ELightLeafAccessors[MAX_ELIGHTS];
+
+class CBaseClientState;
+class CEntityReadInfo;
+class CPureServerWhitelist;
+struct SoundInfo_t;
+
+#define DEFAULT_JPEG_QUALITY 50
+
+void CL_TakeJpeg( const char *name = NULL, int quality = DEFAULT_JPEG_QUALITY );
+
+struct MovieInfo_t
+{
+ enum
+ {
+ FMOVIE_TGA = ( 1 << 0 ),
+ FMOVIE_VID = ( 1 << 1 ),
+ FMOVIE_WAV = ( 1 << 2 ),
+ FMOVIE_VIDSOUND = ( 1 << 3 ),
+ FMOVIE_JPG = ( 1<< 4 )
+ };
+
+ MovieInfo_t()
+ {
+ moviename[ 0 ] = 0;
+ movieframe = 0;
+ type = FMOVIE_TGA | FMOVIE_WAV;
+ jpeg_quality = DEFAULT_JPEG_QUALITY;
+ }
+
+ void Reset()
+ {
+ moviename[ 0 ] = 0;
+ movieframe = 0;
+ type = FMOVIE_TGA | FMOVIE_WAV;
+ jpeg_quality = DEFAULT_JPEG_QUALITY;
+ }
+
+ bool IsRecording() const
+ {
+ return moviename[ 0 ] != 0 ? true : false;
+ }
+
+ bool DoWav() const
+ {
+ return ( type & FMOVIE_WAV ) ? true : false;
+ }
+
+ bool DoTga() const
+ {
+ return ( type & FMOVIE_TGA ) ? true : false;
+ }
+
+ bool DoJpg() const
+ {
+ return ( type & FMOVIE_JPG ) ? true : false;
+ }
+
+
+ bool DoVideo() const
+ {
+ return ( type & FMOVIE_VID ) ? true : false;
+ }
+
+ bool DoVideoSound() const
+ {
+ return ( type & FMOVIE_VIDSOUND ) ? true : false;
+ }
+
+ char moviename[ MAX_PATH ];
+ int movieframe;
+
+ int type;
+ int jpeg_quality;
+};
+
+extern MovieInfo_t cl_movieinfo;
+
+//=============================================================================
+
+// cl_main.cpp
+//
+
+void CL_StartMovie( const char *filename, int flags, int nWidth, int nHeight, float flFrameRate, int jpeg_quality, VideoSystem_t videoSystem = VideoSystem::NONE );
+bool CL_IsRecordingMovie();
+void CL_EndMovie();
+
+void CL_DecayLights (void);
+void CL_AddSound( const SoundInfo_t &sound );
+void CL_DispatchSounds( void );
+void CL_DispatchSound( const SoundInfo_t &sound );
+void CL_SetServerTick( int tick );
+
+void CL_Init (void);
+void CL_Shutdown( void );
+
+void CL_FireEvents( void );
+void CL_NextDemo (void);
+void CL_TakeScreenshot(const char *name);
+
+const struct CPrecacheUserData* CL_GetPrecacheUserData( INetworkStringTable *table, int index );
+
+void Callback_ModelChanged( void *object, INetworkStringTable *stringTable, int stringNumber, const char *newString, const void *newData );
+void Callback_GenericChanged( void *object, INetworkStringTable *stringTable, int stringNumber, const char *newString, const void *newData );
+void Callback_SoundChanged( void *object, INetworkStringTable *stringTable, int stringNumber, const char *newString, const void *newData );
+void Callback_DecalChanged( void *object, INetworkStringTable *stringTable, int stringNumber, const char *newString, const void *newData );
+void Callback_InstanceBaselineChanged( void *object, INetworkStringTable *stringTable, int stringNumber, const char *newString, const void *newData );
+void Callback_UserInfoChanged( void *object, INetworkStringTable *stringTable, int stringNumber, const char *newString, const void *newData );
+void Callback_DynamicModelsChanged( void *object, INetworkStringTable *stringTable, int stringNumber, const char *newString, const void *newData );
+
+void CL_InstallAndInvokeClientStringTableCallbacks();
+void CL_HookClientStringTables();
+void CL_LatchInterpolationAmount();
+
+// Resource
+void CL_RegisterResources ( void );
+
+//
+// cl_input
+//
+void CL_Move( float accumulated_extra_samples, bool bFinalTick );
+void CL_ExtraMouseUpdate( float remainder );
+
+void CL_ClearState (void);
+void CL_ReadPackets ( bool framefinished ); // Read packets from server and other sources (ping requests, etc.)
+
+//
+// cl_main.cpp
+//
+void CL_FullyConnected( void );
+void CL_Retry( void );
+void CL_HudMessage( const char *pMessage );
+void CL_CheckClientState( void );
+void CL_TakeSnapshotAndSwap();
+void CL_ReallocateDynamicData( int maxclients );
+void CL_SetupMapName( const char* pName, char* pFixedName, int maxlen );
+bool CL_CheckCRCs( const char *pszMap );
+bool CL_ShouldLoadBackgroundLevel( const CCommand &args );
+
+bool CL_IsHL2Demo();
+bool CL_IsPortalDemo();
+void CL_SetSteamCrashComment();
+
+void CL_CheckForPureServerWhitelist( /* out */ IFileList *&pFilesToReload );
+void CL_ReloadFilesInList( IFileList *pFilesToReload );
+void CL_HandlePureServerWhitelist( CPureServerWhitelist *pWhitelist, /* out */ IFileList *&pFilesToReload );
+
+// Special mode where the client uses a console window and has no graphics. Useful for stress-testing a server
+// without having to round up 32 people.
+extern bool g_bTextMode;
+
+extern bool cl_takesnapshot;
+extern ConVar cl_language;
+
+
+#endif // CL_MAIN_H