You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
3.1 KiB
111 lines
3.1 KiB
//========= Copyright 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 IVideoServices;
|
|
class IVideoRecorder;
|
|
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 IDataCache *g_pDataCache;
|
|
extern IPhysics *g_pPhysics;
|
|
extern IMDLCache *g_pMDLCache;
|
|
extern IMatSystemSurface *g_pMatSystemSurface;
|
|
extern IInputSystem *g_pInputSystem;
|
|
extern IVideoServices *g_pVideo;
|
|
extern IDedicatedExports *dedicated;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Other singletons
|
|
//-----------------------------------------------------------------------------
|
|
extern IVideoRecorder *g_pVideoRecorder;
|
|
|
|
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 bIsServerOnly );
|
|
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 bIsServerOnly );
|
|
void ServerDLL_Unload();
|
|
|
|
typedef uint32 AppId_t;
|
|
|
|
// steam.inf information.
|
|
struct SteamInfVersionInfo_t
|
|
{
|
|
int32 ClientVersion; // PatchVersion
|
|
int32 ServerVersion; // ServerVersion
|
|
char szVersionString[ 32 ]; // PatchVersion string
|
|
char szProductString[ 32 ]; // ProductName string
|
|
|
|
AppId_t AppID; // Steam AppID. Read from steam.inf(AppID) or gameinfo.txt(SteamAppId)
|
|
AppId_t ServerAppID; // ServerAppID. Used for dedicated server crash reporting.
|
|
};
|
|
const SteamInfVersionInfo_t& GetSteamInfIDVersionInfo();
|
|
|
|
extern CreateInterfaceFn g_ServerFactory;
|
|
|
|
#endif
|
|
|