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

109 lines
2.7 KiB
C++

//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose: Expose functions from sys_dll.cpp.
//
// $NoKeywords: $
//=============================================================================//
#ifndef SYS_DLL_H
#define SYS_DLL_H
#ifdef _WIN32
#pragma once
#endif
#include "interface.h"
//-----------------------------------------------------------------------------
// Forward declarations
//-----------------------------------------------------------------------------
class IHammer;
class IDataCache;
class IPhysics;
class IMDLCache;
class IMatSystemSurface;
class IAvi;
class IBik;
class IInputSystem;
class IDedicatedExports;
class ISoundEmitterSystemBase;
typedef unsigned short AVIHandle_t;
//-----------------------------------------------------------------------------
// Class factories
//-----------------------------------------------------------------------------
// This factory gets to many of the major app-single systems,
// including the material system, vgui, vgui surface, the file system.
extern CreateInterfaceFn g_AppSystemFactory;
// this factory connect the AppSystemFactory + client.dll + gameui.dll
extern CreateInterfaceFn g_GameSystemFactory;
//-----------------------------------------------------------------------------
// Singleton interfaces
//-----------------------------------------------------------------------------
extern IHammer *g_pHammer;
extern IPhysics *g_pPhysics;
extern IAvi *avi;
extern IBik *bik;
#ifdef _PS3
extern class IPS3SaveRestoreToUI *ps3saveuiapi;
#endif
extern IDedicatedExports *dedicated;
//-----------------------------------------------------------------------------
// Other singletons
//-----------------------------------------------------------------------------
extern AVIHandle_t g_hCurrentAVI;
inline bool InEditMode()
{
return g_pHammer != NULL;
}
struct modinfo_t
{
char szInfo[ 256 ];
char szDL [ 256 ];
char szHLVersion[ 32 ];
int version;
int size;
bool svonly;
bool cldll;
};
extern modinfo_t gmodinfo;
void LoadEntityDLLs( const char *szBaseDir, bool bServerOnly );
void UnloadEntityDLLs( void );
// This returns true if someone called Error() or Sys_Error() and we're exiting.
// Since we call exit() from inside those, some destructors need to be safe and not crash.
bool IsInErrorExit();
// error message
bool Sys_MessageBox(const char *title, const char *info, bool bShowOkAndCancel);
bool ServerDLL_Load( bool bServerOnly );
void ServerDLL_Unload();
extern CreateInterfaceFn g_ServerFactory;
const char *Sys_GetVersionString();
const char *Sys_GetProductString();
// SysDlls 3 loading and unloading entry points
bool SysDll3_Load();
void SysDll3_Unload();
DECLARE_LOGGING_CHANNEL( LOG_SERVER_LOG );
#endif