1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-09-19 12:06:07 +08:00

Update interfaces.lib/.a

This commit is contained in:
GAMMACASE
2024-03-25 00:31:37 +03:00
parent 63c296e926
commit 12479b44d2
4 changed files with 521 additions and 638 deletions

View File

@ -1,394 +1,356 @@
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose: A higher level link library for general use in the game and tools.
//
//=============================================================================//
/* This is totally reverse-engineered code and may be wrong */
#include "interfaces/interfaces.h"
#include "tier0/dbg.h"
ICvar *cvar, *g_pCVar;
IEventSystem *g_pEventSystem;
IProcessUtils *g_pProcessUtils;
IVPhysics2 *g_pVPhysics2;
IPhysics2ResourceManager *g_pPhysics2ResourceManager;
IBaseFileSystem *g_pBaseFileSystem;
IFileSystem *g_pFullFileSystem;
IAsyncFileSystem *g_pAsyncFileSystem;
IResourceSystem *g_pResourceSystem;
IResourceSystemTools *g_pResourceSystemTools;
IMaterialSystem *g_pMaterialSystem;
IInputSystem *g_pInputSystem;
IInputStackSystem *g_pInputStackSystem;
INetworkSystem *g_pNetworkSystem;
INetworkSystemUtils *g_pNetworkSystemUtils;
IRenderDeviceMgr *g_pRenderDeviceMgr;
IRenderUtils *g_pRenderUtils;
ISoundSystem *g_pSoundSystem;
IDebugTextureInfo *g_pMaterialSystemDebugTextureInfo;
IVBAllocTracker *g_VBAllocTracker;
IColorCorrectionSystem *colorcorrection;
IP4 *p4;
IMdlLib *mdllib;
IQueuedLoader *g_pQueuedLoader;
vgui::IVGui *g_pVGui;
vgui::IInput *g_pVGuiInput;
vgui::IPanel *g_pVGuiPanel;
vgui::ISurface *g_pVGuiSurface;
vgui::ISchemeManager *g_pVGuiSchemeManager;
vgui::ISystem *g_pVGuiSystem;
ILocalize *g_pLocalize;
vgui::ILocalize *g_pVGuiLocalize;
IDataCache *g_pDataCache;
IAvi *g_pAVI;
IBik *g_pBIK;
IQuickTime *g_pQuickTime;
IDmeMakefileUtils *g_pDmeMakefileUtils;
ISoundEmitterSystemBase *g_pSoundEmitterSystem;
ISoundEmitterSystemBaseS1 *g_pSoundEmitterSystemS1;
IMeshSystem *g_pMeshSystem;
IMeshUtils *g_pMeshUtils;
IRenderDevice *g_pRenderDevice;
IRenderDeviceSetup *g_pRenderDeviceSetup;
IRenderHardwareConfig *g_pRenderHardwareConfig;
ISceneSystem *g_pSceneSystem;
ISceneUtils *g_pSceneUtils;
IWorldRendererMgr *g_pWorldRendererMgr;
IVGuiRenderSurface *g_pVGuiRenderSurface;
IMatchFramework *g_pMatchFramework;
IResourceManifestRegistry *g_pResourceManifestRegistry;
IResourceHandleUtils *g_pResourceHandleUtils;
ISchemaSystem *g_pSchemaSystem;
IResourceCompilerSystem *g_pResourceCompilerSystem;
IPostProcessingSystem *g_pPostProcessingSystem;
ISoundMixGroupSystem *g_pSoundMixGroupSystem;
ISoundOpSystemEdit *g_pSoundOpSystemEdit;
ISoundOpSystem *g_pSoundOpSystem;
IAssetSystem *g_pAssetSystem;
IAssetSystemTest *g_pAssetSystemTest;
IParticleSystemMgr *g_pParticleSystemMgr;
IVScriptManager *g_pVScriptService;
IToolScriptManager *g_pToolScriptManager;
IPropertyEditorSystem *g_pPropertyEditorSystem;
IModelProcessingSystem *g_pModelProcessingSystem;
IPanoramaUI *g_pPanoramaUI;
IToolFramework2 *g_pToolFramework2;
IMapBuilderMgr *g_pWorldRendererBuilderMgr;
IMapBuilderMgr *g_pLightingBuilderMgr;
IMapBuilderMgr *g_pPhysicsBuilderMgr;
IMapBuilderMgr *g_pVisBuilderMgr;
IMapBuilderMgr *g_pEnvironmentBuilderMgr;
IMapBuilderMgr *g_pBakedLODBuilderMgr;
IHelpSystem *g_pHelpSystem;
IToolSceneNodeFactory *g_pToolSceneNodeFactory;
IToolGameSimulationSystem *g_pToolGameSimulationSystem;
IToolGameSimulationDispatcher *g_pToolGameSimulationDispatcher;
ISchemaTestExternal_Two *g_pSchemaTestExternal_Two;
ISchemaTestExternal_One *g_pSchemaTestExternal_One;
IAnimationSystem *g_pAnimationSystem;
IAnimationSystemUtils *g_pAnimationSystemUtils;
IHammerMapLoader *g_pHammerMapLoader;
IMaterialUtils *g_pMaterialUtils;
IFontManager *g_pFontManager;
ITextLayout *g_pTextLayout;
IAssetPreviewSystem *g_pAssetPreviewSystem;
IAssetBrowserSystem *g_pAssetBrowserSystem;
IVConComm *g_pVConComm;
IConfigurationSystem *g_pConfigurationSystem;
INetworkMessages *g_pNetworkMessages;
IFlattenedSerializers *g_pFlattenedSerializers;
ISource2Client *g_pSource2Client;
ISource2ClientPrediction *g_pSource2ClientPrediction;
ISource2Server *g_pSource2Server;
ISource2ServerConfig *g_pSource2ServerConfig;
ISource2ServerSerializers *g_pSource2ServerSerializers;
ISource2Host *g_pSource2Host;
ISource2GameClients *g_pSource2GameClients;
ISource2GameEntities *g_pSource2GameEntities;
IEngineServiceMgr *g_pEngineServiceMgr;
IHostStateMgr *g_pHostStateMgr;
INetworkService *g_pNetworkService;
INetworkClientService *g_pNetworkClientService;
INetworkServerService *g_pNetworkServerService;
ITextMessageMgr *g_pTextMessageMgr;
IToolService *g_pToolService;
IRenderService *g_pRenderService;
IStatsService *g_pStatsService;
IUserInfoChangeService *g_pUserInfoChangeService;
IVProfService *g_pVProfService;
IInputService *g_pInputService;
IMapListService *g_pMapListService;
IGameUIService *g_pGameUIService;
ISoundService *g_pSoundService;
IBenchmarkService *g_pBenchmarkService;
IDebugService *g_pDebugService;
IKeyValueCache *g_pKeyValueCache;
IGameResourceServiceClient *g_pGameResourceServiceClient;
IGameResourceServiceServer *g_pGameResourceServiceServer;
ISource2EngineToClient *g_pSource2EngineToClient;
ISource2EngineToServer *g_pSource2EngineToServer;
ISource2EngineToServerStringTable *g_pSource2EngineToServerStringTable;
ISource2EngineToClientStringTable *g_pSource2EngineToClientStringTable;
ISource2EngineSoundServer *g_pSource2EngineSoundServer;
ISource2EngineSoundClient *g_pSource2EngineSoundClient;
IServerUploadGameStats *g_pServerUploadGameStats;
IScaleformUI *g_pScaleformUI;
IVR *vr;
struct InterfaceGlobals_t
{
const char *m_pInterfaceName;
void *m_ppGlobal;
};
struct ConnectionRegistration_t
{
void *m_ppGlobalStorage;
int m_nConnectionPhase;
};
static const InterfaceGlobals_t g_pInterfaceGlobals[] =
{
{ CVAR_INTERFACE_VERSION, &cvar },
{ CVAR_INTERFACE_VERSION, &g_pCVar },
{ EVENTSYSTEM_INTERFACE_VERSION, &g_pEventSystem },
{ PROCESS_UTILS_INTERFACE_VERSION, &g_pProcessUtils },
{ VPHYSICS2_INTERFACE_VERSION, &g_pVPhysics2 },
{ VPHYSICS2_RESOURCE_MGR_INTERFACE_VERSION, &g_pPhysics2ResourceManager },
{ BASEFILESYSTEM_INTERFACE_VERSION, &g_pBaseFileSystem },
{ FILESYSTEM_INTERFACE_VERSION, &g_pFullFileSystem },
{ ASYNCFILESYSTEM_INTERFACE_VERSION, &g_pAsyncFileSystem },
{ RESOURCESYSTEM_INTERFACE_VERSION, &g_pResourceSystem },
{ RESOURCESYSTEMTOOLS_INTERFACE_VERSION, &g_pResourceSystemTools },
{ RESOURCEMANIFESTREGISTRY_INTERFACE_VERSION, &g_pResourceManifestRegistry },
{ RESOURCEHANDLEUTILS_INTERFACE_VERSION, &g_pResourceHandleUtils },
{ SCHEMASYSTEM_INTERFACE_VERSION, &g_pSchemaSystem },
{ RESOURCECOMPILERSYSTEM_INTERFACE_VERSION, &g_pResourceCompilerSystem },
{ MATERIAL_SYSTEM2_INTERFACE_VERSION, &g_pMaterialSystem },
{ POSTPROCESSINGSYSTEM_INTERFACE_VERSION, &g_pPostProcessingSystem },
{ INPUTSYSTEM_INTERFACE_VERSION, &g_pInputSystem },
{ INPUTSTACKSYSTEM_INTERFACE_VERSION, &g_pInputStackSystem },
{ RENDER_DEVICE_MGR_INTERFACE_VERSION, &g_pRenderDeviceMgr },
{ RENDER_UTILS_INTERFACE_VERSION, &g_pRenderUtils },
{ SOUNDSYSTEM_INTERFACE_VERSION, &g_pSoundSystem },
{ SOUNDMIXGROUPSYSTEM_INTERFACE_VERSION, &g_pSoundMixGroupSystem },
{ SOUNDOPSYSTEMEDIT_INTERFACE_VERSION, &g_pSoundOpSystemEdit },
{ SOUNDOPSYSTEM_INTERFACE_VERSION, &g_pSoundOpSystem },
{ DEBUG_TEXTURE_INFO_VERSION, &g_pMaterialSystemDebugTextureInfo },
{ VB_ALLOC_TRACKER_INTERFACE_VERSION, &g_VBAllocTracker },
{ COLORCORRECTION_INTERFACE_VERSION, &colorcorrection },
{ P4_INTERFACE_VERSION, &p4 },
{ MDLLIB_INTERFACE_VERSION, &mdllib },
{ QUEUEDLOADER_INTERFACE_VERSION, &g_pQueuedLoader },
{ VGUI_IVGUI_INTERFACE_VERSION, &g_pVGui },
{ VGUI_INPUT_INTERFACE_VERSION, &g_pVGuiInput },
{ VGUI_PANEL_INTERFACE_VERSION, &g_pVGuiPanel },
{ VGUI_SURFACE_INTERFACE_VERSION, &g_pVGuiSurface },
{ VGUI_SCHEME_INTERFACE_VERSION, &g_pVGuiSchemeManager },
{ VGUI_SYSTEM_INTERFACE_VERSION, &g_pVGuiSystem },
{ LOCALIZE_INTERFACE_VERSION, &g_pLocalize },
{ LOCALIZE_INTERFACE_VERSION, &g_pVGuiLocalize },
{ DATACACHE_INTERFACE_VERSION, &g_pDataCache },
{ AVI_INTERFACE_VERSION, &g_pAVI },
{ BIK_INTERFACE_VERSION, &g_pBIK },
{ QUICKTIME_INTERFACE_VERSION, &g_pQuickTime },
{ DMEMAKEFILE_UTILS_INTERFACE_VERSION, &g_pDmeMakefileUtils },
{ SOUNDEMITTERSYSTEM_INTERFACE_VERSION, &g_pSoundEmitterSystem },
{ SOUNDEMITTERSYSTEMS1_INTERFACE_VERSION, &g_pSoundEmitterSystemS1 },
{ MESHSYSTEM_INTERFACE_VERSION, &g_pMeshSystem },
{ MESHUTILS_INTERFACE_VERSION, &g_pMeshUtils },
{ RENDER_DEVICE_INTERFACE_VERSION, &g_pRenderDevice },
{ RENDER_DEVICE_SETUP_INTERFACE_VERSION, &g_pRenderDeviceSetup },
{ RENDER_HARDWARECONFIG_INTERFACE_VERSION, &g_pRenderHardwareConfig },
{ SCENESYSTEM_INTERFACE_VERSION, &g_pSceneSystem },
{ SCENEUTILS_INTERFACE_VERSION, &g_pSceneUtils },
{ WORLD_RENDERER_MGR_INTERFACE_VERSION, &g_pWorldRendererMgr },
{ RENDER_SYSTEM_SURFACE_INTERFACE_VERSION, &g_pVGuiRenderSurface },
{ ASSETSYSTEM_INTERFACE_VERSION, &g_pAssetSystem },
{ ASSETSYSTEMTEST_INTERFACE_VERSION, &g_pAssetSystemTest },
{ PARTICLESYSTEMMGR_INTERFACE_VERSION, &g_pParticleSystemMgr },
{ VSCRIPT_INTERFACE_VERSION, &g_pVScriptService },
{ TOOLSCRIPTMANAGER_INTERFACE_VERSION, &g_pToolScriptManager },
{ PROPERTYEDITORSYSTEM_INTERFACE_VERSION, &g_pPropertyEditorSystem },
{ MODELPROCESSINGSYSTEM_INTERFACE_VERSION, &g_pModelProcessingSystem },
{ MATCHFRAMEWORK_INTERFACE_VERSION, &g_pMatchFramework },
{ PANORAMAUI_INTERFACE_VERSION, &g_pPanoramaUI },
{ TOOLFRAMEWORK2_INTERFACE_VERSION, &g_pToolFramework2 },
{ WORLDRENDERERBUILDER_INTERFACE_VERSION, &g_pWorldRendererBuilderMgr },
{ LIGHTINGBUILDER_INTERFACE_VERSION, &g_pLightingBuilderMgr },
{ PHYSICSBUILDER_INTERFACE_VERSION, &g_pPhysicsBuilderMgr },
{ VISBUILDER_INTERFACE_VERSION, &g_pVisBuilderMgr },
{ ENVIRONMENTBUILDER_INTERFACE_VERSION, &g_pEnvironmentBuilderMgr },
{ BAKEDLODBUILDER_INTERFACE_VERSION, &g_pBakedLODBuilderMgr },
{ HELPSYSTEM_INTERFACE_VERSION, &g_pHelpSystem },
{ TOOLSCENENODEFACTORY_INTERFACE_VERSION, &g_pToolSceneNodeFactory },
{ TOOLGAMESIMULATIONSYSTEM_INTERFACE_VERSION, &g_pToolGameSimulationSystem },
{ TOOLGAMESIMULATIONDISPATCHER_INTERFACE_VERSION, &g_pToolGameSimulationDispatcher },
{ SCHEMATESTEXTERNALTWO_INTERFACE_VERSION, &g_pSchemaTestExternal_Two },
{ SCHEMATESTEXTERNALONE_INTERFACE_VERSION, &g_pSchemaTestExternal_One },
{ ANIMATIONSYSTEM_INTERFACE_VERSION, &g_pAnimationSystem },
{ ANIMATIONSYSTEMUTILS_INTERFACE_VERSION, &g_pAnimationSystemUtils },
{ HAMMERMAPLOADER_INTERFACE_VERSION, &g_pHammerMapLoader },
{ MATERIALUTILS_INTERFACE_VERSION, &g_pMaterialUtils },
{ FONTMANAGER_INTERFACE_VERSION, &g_pFontManager },
{ TEXTLAYOUT_INTERFACE_VERSION, &g_pTextLayout },
{ ASSETPREVIEWSYSTEM_INTERFACE_VERSION, &g_pAssetPreviewSystem },
{ ASSETBROWSERSYSTEM_INTERFACE_VERSION, &g_pAssetBrowserSystem },
{ VCONCOMM_INTERFACE_VERSION, &g_pVConComm },
{ CONFIGURATIONSYSTEM_INTERFACE_VERSION, &g_pConfigurationSystem },
{ NETWORKSYSTEM_INTERFACE_VERSION, &g_pNetworkSystem },
{ NETWORKSYSTEMUTILS_INTERFACE_VERSION, &g_pNetworkSystemUtils },
{ NETWORKMESSAGES_INTERFACE_VERSION, &g_pNetworkMessages },
{ FLATTENEDSERIALIZERS_INTERFACE_VERSION, &g_pFlattenedSerializers },
{ SOURCE2CLIENT_INTERFACE_VERSION, &g_pSource2Client },
{ SOURCE2CLIENTPREDICTION_INTERFACE_VERSION, &g_pSource2ClientPrediction },
{ SOURCE2SERVER_INTERFACE_VERSION, &g_pSource2Server },
{ SOURCE2SERVERCONFIG_INTERFACE_VERSION, &g_pSource2ServerConfig },
{ SOURCE2SERVERSERIALIZERS_INTERFACE_VERSION, &g_pSource2ServerSerializers },
{ SOURCE2HOST_INTERFACE_VERSION, &g_pSource2Host },
{ SOURCE2GAMECLIENTS_INTERFACE_VERSION, &g_pSource2GameClients },
{ SOURCE2GAMEENTITIES_INTERFACE_VERSION, &g_pSource2GameEntities },
{ ENGINESERVICEMGR_INTERFACE_VERSION, &g_pEngineServiceMgr },
{ HOSTSTATEMGR_INTERFACE_VERSION, &g_pHostStateMgr },
{ NETWORKSERVICE_INTERFACE_VERSION, &g_pNetworkService },
{ NETWORKCLIENTSERVICE_INTERFACE_VERSION, &g_pNetworkClientService },
{ NETWORKSERVERSERVICE_INTERFACE_VERSION, &g_pNetworkServerService },
{ TEXTMESSAGEMGR_INTERFACE_VERSION, &g_pTextMessageMgr },
{ TOOLSERVICE_INTERFACE_VERSION, &g_pToolService },
{ RENDERSERVICE_INTERFACE_VERSION, &g_pRenderService },
{ STATSSERVICE_INTERFACE_VERSION, &g_pStatsService },
{ USERINFOCHANGESERVICE_INTERFACE_VERSION, &g_pUserInfoChangeService },
{ VPROFSERVICE_INTERFACE_VERSION, &g_pVProfService },
{ INPUTSERVICE_INTERFACE_VERSION, &g_pInputService },
{ MAPLISTSERVICE_INTERFACE_VERSION, &g_pMapListService },
{ GAMEUISERVICE_INTERFACE_VERSION, &g_pGameUIService },
{ SOUNDSERVICE_INTERFACE_VERSION, &g_pSoundService },
{ BENCHMARKSERVICE_INTERFACE_VERSION, &g_pBenchmarkService },
{ DEBUGSERVICE_INTERFACE_VERSION, &g_pDebugService },
{ KEYVALUECACHE_INTERFACE_VERSION, &g_pKeyValueCache },
{ GAMERESOURCESERVICECLIENT_INTERFACE_VERSION, &g_pGameResourceServiceClient },
{ GAMERESOURCESERVICESERVER_INTERFACE_VERSION, &g_pGameResourceServiceServer },
{ SOURCE2ENGINETOCLIENT_INTERFACE_VERSION, &g_pSource2EngineToClient },
{ SOURCE2ENGINETOSERVER_INTERFACE_VERSION, &g_pSource2EngineToServer },
{ SOURCE2ENGINETOSERVERSTRINGTABLE_INTERFACE_VERSION, &g_pSource2EngineToServerStringTable },
{ SOURCE2ENGINETOCLIENTSTRINGTABLE_INTERFACE_VERSION, &g_pSource2EngineToClientStringTable },
{ SOURCE2ENGINESOUNDSERVER_INTERFACE_VERSION, &g_pSource2EngineSoundServer },
{ SOURCE2ENGINESOUNDCLIENT_INTERFACE_VERSION, &g_pSource2EngineSoundClient },
/*
.data:4C0E39A8 dd offset aVphysics2_inte ; "VPhysics2_Interface_001"
.data:4C0E39B0 dd offset aVphysics2_hand ; "VPhysics2_Handle_Interface_001"
*/
{ SERVERUPLOADGAMESTATS_INTERFACE_VERSION, &g_pServerUploadGameStats },
{ SCALEFORMUI_INTERFACE_VERSION, &g_pScaleformUI },
{ VR_INTERFACE_VERSION, vr }
};
static const int NUM_INTERFACES = sizeof(g_pInterfaceGlobals) / sizeof(InterfaceGlobals_t);
static int s_nConnectionCount;
static int s_nRegistrationCount;
static ConnectionRegistration_t s_pConnectionRegistration[NUM_INTERFACES + 1];
void ReconnectInterface(CreateInterfaceFn factory, char const *pInterfaceName, void **ppGlobal);
void ConnectInterfaces(CreateInterfaceFn *pFactoryList, int nFactoryCount)
{
if (s_nRegistrationCount < 0)
{
//Error("APPSYSTEM: In ConnectInterfaces(), s_nRegistrationCount is %d!\n", s_nRegistrationCount);
Plat_ExitProcess(1);
s_nConnectionCount++;
return;
}
if (s_nRegistrationCount)
{
for (int i = 0; i < nFactoryCount; i++)
{
for (int j = 0; j < NUM_INTERFACES; j++)
{
ReconnectInterface(pFactoryList[i], g_pInterfaceGlobals[j].m_pInterfaceName, (void **)g_pInterfaceGlobals[j].m_ppGlobal);
}
}
s_nConnectionCount++;
return;
}
for (int i = 0; i < nFactoryCount; i++)
{
for (int j = 0; j < NUM_INTERFACES; j++)
{
const InterfaceGlobals_t &iface = g_pInterfaceGlobals[j];
if (!(*(void **)iface.m_ppGlobal))
{
void *ptr = pFactoryList[i](iface.m_pInterfaceName, NULL);
*(void **)iface.m_ppGlobal = ptr;
if (ptr)
{
ConnectionRegistration_t &reg = s_pConnectionRegistration[s_nRegistrationCount++];
reg.m_ppGlobalStorage = iface.m_ppGlobal;
reg.m_nConnectionPhase = s_nConnectionCount;
}
}
}
}
s_nConnectionCount++;
}
void DisconnectInterfaces()
{
if (--s_nConnectionCount >= 0)
{
for (int i = 0; i < s_nRegistrationCount; i++)
{
ConnectionRegistration_t &reg = s_pConnectionRegistration[i];
if (reg.m_nConnectionPhase == s_nConnectionCount)
reg.m_ppGlobalStorage = NULL;
}
}
}
void ReconnectInterface(CreateInterfaceFn factory, char const *pInterfaceName, void **ppGlobal)
{
bool got = false;
*ppGlobal = factory(pInterfaceName, NULL);
for (int i = 0; i < s_nRegistrationCount; i++)
{
if (s_pConnectionRegistration[i].m_ppGlobalStorage == ppGlobal)
{
got = true;
break;
}
}
if ((s_nRegistrationCount <= 0 || !got) && *ppGlobal)
{
ConnectionRegistration_t &reg = s_pConnectionRegistration[s_nRegistrationCount++];
reg.m_ppGlobalStorage = ppGlobal;
reg.m_nConnectionPhase = s_nConnectionCount;
}
}
void ReconnectInterface(CreateInterfaceFn factory, const char *pInterfaceName)
{
for (int i = 0; i < NUM_INTERFACES; i++)
{
const InterfaceGlobals_t &iface = g_pInterfaceGlobals[i];
if (strcmp(iface.m_pInterfaceName, pInterfaceName) == 0)
ReconnectInterface(factory, iface.m_pInterfaceName, (void **)iface.m_ppGlobal);
}
}
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose: A higher level link library for general use in the game and tools.
//
//=============================================================================//
/* This is totally reverse-engineered code and may be wrong */
#include "interfaces/interfaces.h"
#include "tier0/dbg.h"
IApplication *g_pApplication;
ICvar *cvar, *g_pCVar;
IUtlStringTokenSystem *g_pStringTokenSystem;
ITestScriptMgr *g_pTestScriptMgr;
IProcessUtils *g_pProcessUtils;
IFileSystem *g_pFullFileSystem;
IAsyncFileSystem *g_pAsyncFileSystem;
IResourceSystem *g_pResourceSystem;
IResourceManifestRegistry *g_pResourceManifestRegistry;
IResourceHandleUtils *g_pResourceHandleUtils;
ISchemaSystem *g_pSchemaSystem;
IResourceCompilerSystem *g_pResourceCompilerSystem;
IMaterialSystem2 *g_pMaterialSystem2;
IPostProcessingSystem *g_pPostProcessingSystem;
IInputSystem *g_pInputSystem;
IInputStackSystem *g_pInputStackSystem;
IRenderDeviceMgr *g_pRenderDeviceMgr;
IRenderUtils *g_pRenderUtils;
ISoundSystem *g_pSoundSystem;
ISoundOpSystemEdit *g_pSoundOpSystemEdit;
ISoundOpSystem *g_pSoundOpSystem;
ISteamAudio *g_pSteamAudio;
IP4 *g_pP4;
ILocalize *g_pLocalize;
IMediaFoundation *g_pMediaFoundation;
IAvi *g_pAVI;
IBik *g_pBIK;
IMeshSystem *g_pMeshSystem;
IMeshUtils *g_pMeshUtils;
IRenderDevice *g_pRenderDevice;
IRenderDeviceSetup *g_pRenderDeviceSetup;
IRenderHardwareConfig *g_pRenderHardwareConfig;
ISceneSystem *g_pSceneSystem;
IPulseSystem *g_pPulseSystem;
ISceneUtils *g_pSceneUtils;
IWorldRendererMgr *g_pWorldRendererMgr;
IAssetSystem *g_pAssetSystem;
IAssetSystemTest *g_pAssetSystemTest;
IParticleSystemMgr *g_pParticleSystemMgr;
IScriptManager *g_pScriptManager;
IPropertyEditorSystem *g_pPropertyEditorSystem;
IMatchFramework *g_pMatchFramework;
ISource2V8System *g_pV8System;
IPanoramaUIEngine *g_pPanoramaUIEngine;
IPanoramaUIClient *g_pPanoramaUIClient;
panorama::IUITextServices *g_IUITextServices;
IToolFramework2 *g_pToolFramework2;
IMapBuilderMgr *g_pPhysicsBuilderMgr;
IMapBuilderMgr *g_pVisBuilderMgr;
IMapBuilderMgr *g_pBakedLODBuilderMgr;
IHelpSystem *g_pHelpSystem;
IToolSceneNodeFactory *g_pToolSceneNodeFactory;
IEconItemToolModel *g_pEconItemToolModel;
ISchemaTestExternal_Two *g_pSchemaTestExternal_Two;
ISchemaTestExternal_One *g_pSchemaTestExternal_One;
IAnimationSystem *g_pAnimationSystem;
IAnimationSystemUtils *g_pAnimationSystemUtils;
IHammerMapLoader *g_pHammerMapLoader;
IMaterialSystem2Utils *g_pMaterialSystem2Utils;
IFontManager *g_pFontManager;
ITextLayout *g_pTextLayout;
IAssetPreviewSystem *g_pAssetPreviewSystem;
IAssetBrowserSystem *g_pAssetBrowserSystem;
IAssetRenameSystem *g_pAssetRenameSystem;
IVConComm *g_pVConComm;
IModelProcessingServices *g_pModelProcessingServices;
INetworkSystem *g_pNetworkSystem;
INetworkMessages *g_pNetworkMessages;
IFlattenedSerializers *g_pFlattenedSerializers;
ISerializedEntities *g_pSerializedEntities;
IDemoUpconverter *g_pDemoUpconverter;
ISource2Client *g_pSource2Client;
IClientUI *g_pIClientUI;
IPrediction2 *g_pClientSidePrediction;
ISource2Server *g_pSource2Server;
ISource2ServerConfig *g_pSource2ServerConfig;
ISource2Host *g_pSource2Host;
ISource2GameClients *g_pSource2GameClients;
ISource2GameEntities *g_pSource2GameEntities;
IEngineServiceMgr *g_pEngineServiceMgr;
IHostStateMgr *g_pHostStateMgr;
INetworkService *g_pNetworkService;
INetworkClientService *g_pNetworkClientService;
INetworkP2PService *g_pNetworkP2PService;
INetworkServerService *g_pNetworkServerService;
IToolService *g_pToolService;
IRenderService *g_pRenderService;
IStatsService *g_pStatsService;
IVProfService *g_pVProfService;
IInputService *g_pInputService;
IMapListService *g_pMapListService;
IGameUIService *g_pGameUIService;
ISoundService *g_pSoundService;
IBenchmarkService *g_pBenchmarkService;
IKeyValueCache *g_pKeyValueCache;
IGameResourceService *g_pGameResourceServiceClient;
IGameResourceService *g_pGameResourceServiceServer;
IVEngineClient2 *g_pEngineClient;
IVEngineServer2 *g_pEngineServer;
INetworkStringTableContainer *g_pNetworkStringTableServer;
INetworkStringTableContainer *g_pNetworkStringTableClient;
IVPhysics2 *g_pVPhysics2;
VPhys2HandleInterface *g_pVPhys2HandleInterface;
IModelDocUtils *g_pModelDocUtils;
IAnimGraphEditorUtils *g_pAnimGraphEditorUtils;
IExportSystem *g_pExportSystem;
IServerToolsInfo *g_pServerToolsInfo;
IClientToolsInfo *g_pClientToolsInfo;
IVRAD3 *g_pVRAD3;
INavSystem *g_pNavSystem;
INavGameTest *g_pNavGameTest;
struct InterfaceGlobals_t
{
const char *m_pInterfaceName;
void *m_ppGlobal;
};
struct ConnectionRegistration_t
{
void *m_ppGlobalStorage;
int m_nConnectionPhase;
};
static const InterfaceGlobals_t g_pInterfaceGlobals[] =
{
{ APPLICATION_INTERFACE_VERSION, &g_pApplication },
{ CVAR_INTERFACE_VERSION, &cvar },
{ CVAR_INTERFACE_VERSION, &g_pCVar },
{ STRINGTOKENSYSTEM_INTERFACE_VERSION, &g_pStringTokenSystem },
{ TESTSCRIPTMANAGER_INTERFACE_VERSION, &g_pTestScriptMgr },
{ PROCESSUTILS_INTERFACE_VERSION, &g_pProcessUtils },
{ FILESYSTEM_INTERFACE_VERSION, &g_pFullFileSystem },
{ ASYNCFILESYSTEM_INTERFACE_VERSION, &g_pAsyncFileSystem },
{ RESOURCESYSTEM_INTERFACE_VERSION, &g_pResourceSystem },
{ RESOURCEMANIFESTREGISTRY_INTERFACE_VERSION, &g_pResourceManifestRegistry },
{ RESOURCEHANDLEUTILS_INTERFACE_VERSION, &g_pResourceHandleUtils },
{ SCHEMASYSTEM_INTERFACE_VERSION, &g_pSchemaSystem },
{ RESOURCECOMPILERSYSTEM_INTERFACE_VERSION, &g_pResourceCompilerSystem },
{ MATERIAL_SYSTEM2_INTERFACE_VERSION, &g_pMaterialSystem2 },
{ POSTPROCESSINGSYSTEM_INTERFACE_VERSION, &g_pPostProcessingSystem },
{ INPUTSYSTEM_INTERFACE_VERSION, &g_pInputSystem },
{ INPUTSTACKSYSTEM_INTERFACE_VERSION, &g_pInputStackSystem },
{ RENDER_DEVICE_MGR_INTERFACE_VERSION, &g_pRenderDeviceMgr },
{ RENDER_UTILS_INTERFACE_VERSION, &g_pRenderUtils },
{ SOUNDSYSTEM_INTERFACE_VERSION, &g_pSoundSystem },
{ SOUNDOPSYSTEMEDIT_INTERFACE_VERSION, &g_pSoundOpSystemEdit },
{ SOUNDOPSYSTEM_INTERFACE_VERSION, &g_pSoundOpSystem },
{ STEAMAUDIO_INTERFACE_VERSION, &g_pSteamAudio },
{ P4_INTERFACE_VERSION, &g_pP4 },
{ LOCALIZE_INTERFACE_VERSION, &g_pLocalize },
{ MEDIA_FOUNDATION_INTERFACE_VERSION, &g_pMediaFoundation },
{ AVI_INTERFACE_VERSION, &g_pAVI },
{ BIK_INTERFACE_VERSION, &g_pBIK },
{ MESHSYSTEM_INTERFACE_VERSION, &g_pMeshSystem },
{ MESHUTILS_INTERFACE_VERSION, &g_pMeshUtils },
{ RENDER_DEVICE_INTERFACE_VERSION, &g_pRenderDevice },
{ RENDER_DEVICE_SETUP_INTERFACE_VERSION, &g_pRenderDeviceSetup },
{ RENDER_HARDWARECONFIG_INTERFACE_VERSION, &g_pRenderHardwareConfig },
{ SCENESYSTEM_INTERFACE_VERSION, &g_pSceneSystem },
{ PULSESYSTEM_INTERFACE_VERSION, &g_pPulseSystem },
{ SCENEUTILS_INTERFACE_VERSION, &g_pSceneUtils },
{ WORLD_RENDERER_MGR_INTERFACE_VERSION, &g_pWorldRendererMgr },
{ ASSETSYSTEM_INTERFACE_VERSION, &g_pAssetSystem },
{ ASSETSYSTEMTEST_INTERFACE_VERSION, &g_pAssetSystemTest },
{ PARTICLESYSTEMMGR_INTERFACE_VERSION, &g_pParticleSystemMgr },
{ SCRIPTMANAGER_INTERFACE_VERSION, &g_pScriptManager },
{ PROPERTYEDITORSYSTEM_INTERFACE_VERSION, &g_pPropertyEditorSystem },
{ MATCHFRAMEWORK_INTERFACE_VERSION, &g_pMatchFramework },
{ V8SYSTEM_INTERFACE_VERSION, &g_pV8System },
{ PANORAMAUIENGINE_INTERFACE_VERSION, &g_pPanoramaUIEngine },
{ PANORAMAUICLIENT_INTERFACE_VERSION, &g_pPanoramaUIClient },
{ PANORAMATEXTSERVICES_INTERFACE_VERSION, &g_IUITextServices },
{ TOOLFRAMEWORK2_INTERFACE_VERSION, &g_pToolFramework2 },
{ PHYSICSBUILDER_INTERFACE_VERSION, &g_pPhysicsBuilderMgr },
{ VISBUILDER_INTERFACE_VERSION, &g_pVisBuilderMgr },
{ BAKEDLODBUILDER_INTERFACE_VERSION, &g_pBakedLODBuilderMgr },
{ HELPSYSTEM_INTERFACE_VERSION, &g_pHelpSystem },
{ TOOLSCENENODEFACTORY_INTERFACE_VERSION, &g_pToolSceneNodeFactory },
{ ECONITEMTOOLMODEL_INTERFACE_VERSION, &g_pEconItemToolModel },
{ SCHEMATESTEXTERNALTWO_INTERFACE_VERSION, &g_pSchemaTestExternal_Two },
{ SCHEMATESTEXTERNALONE_INTERFACE_VERSION, &g_pSchemaTestExternal_One },
{ ANIMATIONSYSTEM_INTERFACE_VERSION, &g_pAnimationSystem },
{ ANIMATIONSYSTEMUTILS_INTERFACE_VERSION, &g_pAnimationSystemUtils },
{ HAMMERMAPLOADER_INTERFACE_VERSION, &g_pHammerMapLoader },
{ MATERIALUTILS_INTERFACE_VERSION, &g_pMaterialSystem2Utils },
{ FONTMANAGER_INTERFACE_VERSION, &g_pFontManager },
{ TEXTLAYOUT_INTERFACE_VERSION, &g_pTextLayout },
{ ASSETPREVIEWSYSTEM_INTERFACE_VERSION, &g_pAssetPreviewSystem },
{ ASSETBROWSERSYSTEM_INTERFACE_VERSION, &g_pAssetBrowserSystem },
{ ASSETRENAMESYSTEM_INTERFACE_VERSION, &g_pAssetRenameSystem },
{ VCONCOMM_INTERFACE_VERSION, &g_pVConComm },
{ MODELPROCESSINGSERVICES_INTERFACE_VERSION, &g_pModelProcessingServices },
{ NETWORKSYSTEM_INTERFACE_VERSION, &g_pNetworkSystem },
{ NETWORKMESSAGES_INTERFACE_VERSION, &g_pNetworkMessages },
{ FLATTENEDSERIALIZERS_INTERFACE_VERSION, &g_pFlattenedSerializers },
{ SERIALIZEDENTITIES_INTERFACE_VERSION, &g_pSerializedEntities },
{ DEMOUPCONVERTER_INTERFACE_VERSION, &g_pDemoUpconverter },
{ SOURCE2CLIENT_INTERFACE_VERSION, &g_pSource2Client },
{ SOURCE2CLIENTUI_INTERFACE_VERSION, &g_pIClientUI },
{ SOURCE2CLIENTPREDICTION_INTERFACE_VERSION, &g_pClientSidePrediction },
{ SOURCE2SERVER_INTERFACE_VERSION, &g_pSource2Server },
{ SOURCE2HOST_INTERFACE_VERSION, &g_pSource2Host },
{ SOURCE2GAMECLIENTS_INTERFACE_VERSION, &g_pSource2GameClients },
{ SOURCE2GAMEENTITIES_INTERFACE_VERSION, &g_pSource2GameEntities },
{ ENGINESERVICEMGR_INTERFACE_VERSION, &g_pEngineServiceMgr },
{ HOSTSTATEMGR_INTERFACE_VERSION, &g_pHostStateMgr },
{ NETWORKSERVICE_INTERFACE_VERSION, &g_pNetworkService },
{ NETWORKCLIENTSERVICE_INTERFACE_VERSION, &g_pNetworkClientService },
{ NETWORKP2PSERVICE_INTERFACE_VERSION, &g_pNetworkP2PService },
{ NETWORKSERVERSERVICE_INTERFACE_VERSION, &g_pNetworkServerService },
{ TOOLSERVICE_INTERFACE_VERSION, &g_pToolService },
{ RENDERSERVICE_INTERFACE_VERSION, &g_pRenderService },
{ STATSSERVICE_INTERFACE_VERSION, &g_pStatsService },
{ VPROFSERVICE_INTERFACE_VERSION, &g_pVProfService },
{ INPUTSERVICE_INTERFACE_VERSION, &g_pInputService },
{ MAPLISTSERVICE_INTERFACE_VERSION, &g_pMapListService },
{ GAMEUISERVICE_INTERFACE_VERSION, &g_pGameUIService },
{ SOUNDSERVICE_INTERFACE_VERSION, &g_pSoundService },
{ BENCHMARKSERVICE_INTERFACE_VERSION, &g_pBenchmarkService },
{ KEYVALUECACHE_INTERFACE_VERSION, &g_pKeyValueCache },
{ GAMERESOURCESERVICECLIENT_INTERFACE_VERSION, &g_pGameResourceServiceClient },
{ GAMERESOURCESERVICESERVER_INTERFACE_VERSION, &g_pGameResourceServiceServer },
{ SOURCE2ENGINETOCLIENT_INTERFACE_VERSION, &g_pEngineClient },
{ SOURCE2ENGINETOSERVER_INTERFACE_VERSION, &g_pEngineServer },
{ SOURCE2ENGINETOSERVERSTRINGTABLE_INTERFACE_VERSION, &g_pNetworkStringTableServer },
{ SOURCE2ENGINETOCLIENTSTRINGTABLE_INTERFACE_VERSION, &g_pNetworkStringTableClient },
{ VPHYSICS2_INTERFACE_VERSION, &g_pVPhysics2 },
{ VPHYSICS2HANDLE_INTERFACE_VERSION, &g_pVPhys2HandleInterface },
{ MODELDOCUTILS_INTERFACE_VERSION, &g_pModelDocUtils },
{ ANIMGRAPHEDITORUTILS_INTERFACE_VERSION, &g_pAnimGraphEditorUtils },
{ EXPORTSYSTEM_INTERFACE_VERSION, &g_pExportSystem },
{ SERVERTOOLSINFO_INTERFACE_VERSION, &g_pServerToolsInfo },
{ CLIENTTOOLSINFO_INTERFACE_VERSION, &g_pClientToolsInfo },
{ VRAD3_INTERFACE_VERSION, &g_pVRAD3 },
{ NAVSYSTEM_INTERFACE_VERSION, &g_pNavSystem },
{ NAVGAMETEST_INTERFACE_VERSION, &g_pNavGameTest },
};
static const int NUM_INTERFACES = sizeof(g_pInterfaceGlobals) / sizeof(InterfaceGlobals_t);
static int s_nConnectionCount = 0;
static int s_nRegistrationCount = 0;
static ConnectionRegistration_t s_pConnectionRegistration[NUM_INTERFACES + 1] = {};
void ReconnectInterface(CreateInterfaceFn factory, char const *pInterfaceName, void **ppGlobal);
void ConnectInterfaces(CreateInterfaceFn *pFactoryList, int nFactoryCount)
{
if (s_nRegistrationCount < 0)
{
//Error("APPSYSTEM: In ConnectInterfaces(), s_nRegistrationCount is %d!\n", s_nRegistrationCount);
Plat_ExitProcess(1);
s_nConnectionCount++;
return;
}
if (s_nRegistrationCount)
{
for (int i = 0; i < nFactoryCount; i++)
{
for (int j = 0; j < NUM_INTERFACES; j++)
{
ReconnectInterface(pFactoryList[i], g_pInterfaceGlobals[j].m_pInterfaceName, (void **)g_pInterfaceGlobals[j].m_ppGlobal);
}
}
s_nConnectionCount++;
return;
}
for (int i = 0; i < nFactoryCount; i++)
{
for (int j = 0; j < NUM_INTERFACES; j++)
{
const InterfaceGlobals_t &iface = g_pInterfaceGlobals[j];
if (!(*(void **)iface.m_ppGlobal))
{
void *ptr = pFactoryList[i](iface.m_pInterfaceName, NULL);
*(void **)iface.m_ppGlobal = ptr;
if (ptr)
{
ConnectionRegistration_t &reg = s_pConnectionRegistration[s_nRegistrationCount++];
reg.m_ppGlobalStorage = iface.m_ppGlobal;
reg.m_nConnectionPhase = s_nConnectionCount;
}
}
}
}
s_nConnectionCount++;
}
void DisconnectInterfaces()
{
if (--s_nConnectionCount >= 0)
{
for (int i = 0; i < s_nRegistrationCount; i++)
{
ConnectionRegistration_t &reg = s_pConnectionRegistration[i];
if (reg.m_nConnectionPhase == s_nConnectionCount)
reg.m_ppGlobalStorage = NULL;
}
}
}
void ReconnectInterface(CreateInterfaceFn factory, char const *pInterfaceName, void **ppGlobal)
{
bool got = false;
*ppGlobal = factory(pInterfaceName, NULL);
for (int i = 0; i < s_nRegistrationCount; i++)
{
if (s_pConnectionRegistration[i].m_ppGlobalStorage == ppGlobal)
{
got = true;
break;
}
}
if ((s_nRegistrationCount <= 0 || !got) && *ppGlobal)
{
ConnectionRegistration_t &reg = s_pConnectionRegistration[s_nRegistrationCount++];
reg.m_ppGlobalStorage = ppGlobal;
reg.m_nConnectionPhase = s_nConnectionCount;
}
}
void ReconnectInterface(CreateInterfaceFn factory, const char *pInterfaceName)
{
for (int i = 0; i < NUM_INTERFACES; i++)
{
const InterfaceGlobals_t &iface = g_pInterfaceGlobals[i];
if (strcmp(iface.m_pInterfaceName, pInterfaceName) == 0)
ReconnectInterface(factory, iface.m_pInterfaceName, (void **)iface.m_ppGlobal);
}
}
// ------------------------------------------------------------------------------------ //
// InterfaceReg.
// ------------------------------------------------------------------------------------ //
@ -428,4 +390,4 @@ void* CreateInterface(const char *pName, int *pReturnCode)
*pReturnCode = IFACE_FAILED;
}
return NULL;
}
}

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,4 @@
//===== Copyright <20> 2005-2005, Valve Corporation, All rights reserved. ======//
//===== Copyright <20> 2005-2005, Valve Corporation, All rights reserved. ======//
//
// Purpose: A higher level link library for general use in the game and tools.
//
@ -139,93 +139,87 @@ DLL_EXPORT void* CreateInterface(const char *pName, int *pReturnCode);
//-----------------------------------------------------------------------------
// Forward declarations
//-----------------------------------------------------------------------------
class IApplication;
class ICvar;
class IUtlStringTokenSystem;
class ITestScriptMgr;
class IProcessUtils;
class ILocalize;
class IMediaFoundation;
class IVPhysics2;
class IPhysics2ResourceManager;
class IEventSystem;
class VPhys2HandleInterface;
class IModelDocUtils;
class IAnimGraphEditorUtils;
class IExportSystem;
class IServerToolsInfo;
class IClientToolsInfo;
class INavSystem;
class INavGameTest;
class IAsyncFileSystem;
class IColorCorrectionSystem;
class IDebugTextureInfo;
class IBaseFileSystem;
class IFileSystem;
class IRenderHardwareConfig;
class IInputSystem;
class IInputStackSystem;
class IMaterialSystem;
class IMdlLib;
class IMaterialSystem2;
class INetworkSystem;
class INetworkSystemUtils;
class IP4;
class IQueuedLoader;
class IRenderDevice;
class IRenderDeviceSetup;
class IRenderDeviceMgr;
class IRenderUtils;
class IResourceSystem;
class IResourceSystemTools;
class IVBAllocTracker;
class IXboxInstaller;
class IMatchFramework;
class ISource2V8System;
class ISoundSystem;
class IMatSystemSurface;
class IGameUISystemMgr;
class IDataCache;
class IAvi;
class IBik;
class IQuickTime;
class IDmeMakefileUtils;
class ISoundEmitterSystemBase;
class ISoundEmitterSystemBaseS1;
class IVRAD3;
class IMeshSystem;
class IMeshUtils;
class IWorldRendererMgr;
class ISceneSystem;
class IPulseSystem;
class ISceneUtils;
class IVGuiRenderSurface;
class IResourceManifestRegistry;
class IResourceHandleUtils;
class ISchemaSystem;
class IResourceCompilerSystem;
class IPostProcessingSystem;
class ISoundMixGroupSystem;
class ISoundOpSystemEdit;
class ISoundOpSystem;
class ISteamAudio;
class IAssetSystem;
class IAssetSystemTest;
class IParticleSystemMgr;
class IVScriptManager;
class IToolScriptManager;
class IScriptManager;
class IPropertyEditorSystem;
class IModelProcessingSystem;
class IPanoramaUI;
class IToolFramework2;
class IMapBuilderMgr;
class IHelpSystem;
class IToolSceneNodeFactory;
class IToolGameSimulationSystem;
class IToolGameSimulationDispatcher;
class IEconItemToolModel;
class ISchemaTestExternal_Two;
class ISchemaTestExternal_One;
class IAnimationSystem;
class IAnimationSystemUtils;
class IHammerMapLoader;
class IMaterialUtils;
class IMaterialSystem2Utils;
class IFontManager;
class ITextLayout;
class IAssetPreviewSystem;
class IAssetBrowserSystem;
class IAssetRenameSystem;
class IVConComm;
class IConfigurationSystem;
class IModelProcessingServices;
class INetworkMessages;
class IFlattenedSerializers;
class ISerializedEntities;
class IDemoUpconverter;
class ISource2Client;
class ISource2ClientPrediction;
class IClientUI;
class IPrediction2;
class ISource2Server;
class ISource2ServerConfig;
class ISource2ServerSerializers;
class ISource2Host;
class ISource2GameClients;
class ISource2GameEntities;
@ -234,89 +228,58 @@ class IHostStateMgr;
class INetworkService;
class INetworkClientService;
class INetworkServerService;
class ITextMessageMgr;
class INetworkP2PService;
class IToolService;
class IRenderService;
class IStatsService;
class IUserInfoChangeService;
class IVProfService;
class IInputService;
class IMapListService;
class IGameUIService;
class ISoundService;
class IBenchmarkService;
class IDebugService;
class IKeyValueCache;
class IGameResourceServiceClient;
class IGameResourceServiceServer;
class ISource2EngineToClient;
class ISource2EngineToServer;
class ISource2EngineToServerStringTable;
class ISource2EngineToClientStringTable;
class ISource2EngineSoundServer;
class ISource2EngineSoundClient;
class IGameResourceService;
class IVEngineClient2;
class IVEngineServer2;
class INetworkStringTableContainer;
class IServerUploadGameStats;
class IScaleformUI;
class IVR;
class IPanoramaUIEngine;
class IPanoramaUIClient;
namespace vgui
namespace panorama
{
class ISurface;
class IVGui;
class IInput;
class IPanel;
class ILocalize;
class ISchemeManager;
class ISystem;
}
class IUITextServices;
};
//-----------------------------------------------------------------------------
// Fills out global DLL exported interface pointers
//-----------------------------------------------------------------------------
#define APPLICATION_INTERFACE_VERSION "VApplication001"
DECLARE_TIER1_INTERFACE( IApplication, g_pApplication );
#define CVAR_INTERFACE_VERSION "VEngineCvar007"
DECLARE_TIER1_INTERFACE( ICvar, cvar );
DECLARE_TIER1_INTERFACE( ICvar, g_pCVar )
DECLARE_TIER1_INTERFACE( ICvar, g_pCVar );
#define PROCESS_UTILS_INTERFACE_VERSION "VProcessUtils002"
#define STRINGTOKENSYSTEM_INTERFACE_VERSION "VStringTokenSystem001"
DECLARE_TIER1_INTERFACE( IUtlStringTokenSystem, g_pStringTokenSystem );
#define TESTSCRIPTMANAGER_INTERFACE_VERSION "TestScriptMgr001"
DECLARE_TIER1_INTERFACE( ITestScriptMgr, g_pTestScriptMgr );
#define PROCESSUTILS_INTERFACE_VERSION "VProcessUtils002"
DECLARE_TIER1_INTERFACE( IProcessUtils, g_pProcessUtils );
#define VPHYSICS2_INTERFACE_VERSION "VPhysics2_Interface_001"
DECLARE_TIER1_INTERFACE( IVPhysics2, g_pVPhysics2 );
#define VPHYSICS2_RESOURCE_MGR_INTERFACE_VERSION "VPhysX Interface ResourceMgr v0.1"
DECLARE_TIER1_INTERFACE( IPhysics2ResourceManager, g_pPhysics2ResourceManager );
#define EVENTSYSTEM_INTERFACE_VERSION "EventSystem001"
DECLARE_TIER1_INTERFACE( IEventSystem, g_pEventSystem );
#define LOCALIZE_INTERFACE_VERSION "Localize_001"
DECLARE_TIER2_INTERFACE( ILocalize, g_pLocalize );
DECLARE_TIER3_INTERFACE( vgui::ILocalize, g_pVGuiLocalize );
#define RENDER_DEVICE_MGR_INTERFACE_VERSION "RenderDeviceMgr001"
DECLARE_TIER2_INTERFACE( IRenderDeviceMgr, g_pRenderDeviceMgr );
#define RENDER_UTILS_INTERFACE_VERSION "RenderUtils_001"
DECLARE_TIER2_INTERFACE( IRenderUtils, g_pRenderUtils );
#define BASEFILESYSTEM_INTERFACE_VERSION "VBaseFileSystem011"
DECLARE_TIER2_INTERFACE( IBaseFileSystem, g_pBaseFileSystem );
#define FILESYSTEM_INTERFACE_VERSION "VFileSystem017"
DECLARE_TIER2_INTERFACE( IFileSystem, g_pFullFileSystem );
#define ASYNCFILESYSTEM_INTERFACE_VERSION "VNewAsyncFileSystem001"
#define ASYNCFILESYSTEM_INTERFACE_VERSION "VAsyncFileSystem2_001"
DECLARE_TIER2_INTERFACE( IAsyncFileSystem, g_pAsyncFileSystem );
#define RESOURCESYSTEM_INTERFACE_VERSION "ResourceSystem009"
#define RESOURCESYSTEM_INTERFACE_VERSION "ResourceSystem013"
DECLARE_TIER2_INTERFACE( IResourceSystem, g_pResourceSystem );
#define RESOURCESYSTEMTOOLS_INTERFACE_VERSION "ResourceSystemTools001"
DECLARE_TIER2_INTERFACE( IResourceSystemTools, g_pResourceSystemTools );
#define RESOURCEMANIFESTREGISTRY_INTERFACE_VERSION "ResourceManifestRegistry001"
DECLARE_TIER2_INTERFACE( IResourceManifestRegistry, g_pResourceManifestRegistry );
@ -329,87 +292,77 @@ DECLARE_TIER2_INTERFACE( ISchemaSystem, g_pSchemaSystem );
#define RESOURCECOMPILERSYSTEM_INTERFACE_VERSION "ResourceCompilerSystem001"
DECLARE_TIER2_INTERFACE( IResourceCompilerSystem, g_pResourceCompilerSystem );
#define MATERIAL_SYSTEM2_INTERFACE_VERSION "VMaterialSystem2_001"
DECLARE_TIER2_INTERFACE( IMaterialSystem2, g_pMaterialSystem2 );
#define POSTPROCESSINGSYSTEM_INTERFACE_VERSION "PostProcessingSystem_001"
DECLARE_TIER2_INTERFACE( IPostProcessingSystem, g_pPostProcessingSystem );
#define MATERIAL_SYSTEM2_INTERFACE_VERSION "VMaterialSystem2_001"
DECLARE_TIER2_INTERFACE( IMaterialSystem, g_pMaterialSystem );
#define INPUTSYSTEM_INTERFACE_VERSION "InputSystemVersion001"
DECLARE_TIER2_INTERFACE( IInputSystem, g_pInputSystem );
#define INPUTSTACKSYSTEM_INTERFACE_VERSION "InputStackSystemVersion001"
DECLARE_TIER2_INTERFACE( IInputStackSystem, g_pInputStackSystem );
#define NETWORKSYSTEM_INTERFACE_VERSION "NetworkSystemVersion001"
DECLARE_TIER2_INTERFACE( INetworkSystem, g_pNetworkSystem );
#define RENDER_DEVICE_MGR_INTERFACE_VERSION "RenderDeviceMgr001"
DECLARE_TIER2_INTERFACE( IRenderDeviceMgr, g_pRenderDeviceMgr );
#define NETWORKSYSTEMUTILS_INTERFACE_VERSION "NetworkSystemUtilsVersion001"
DECLARE_TIER2_INTERFACE( INetworkSystemUtils, g_pNetworkSystemUtils );
#define NETWORKMESSAGES_INTERFACE_VERSION "NetworkMessagesVersion001"
DECLARE_TIER2_INTERFACE( INetworkMessages, g_pNetworkMessages );
#define DEBUG_TEXTURE_INFO_VERSION "DebugTextureInfo001"
DECLARE_TIER2_INTERFACE( IDebugTextureInfo, g_pMaterialSystemDebugTextureInfo );
#define VB_ALLOC_TRACKER_INTERFACE_VERSION "VBAllocTracker001"
DECLARE_TIER2_INTERFACE( IVBAllocTracker, g_VBAllocTracker );
#define COLORCORRECTION_INTERFACE_VERSION "COLORCORRECTION_VERSION_1"
DECLARE_TIER2_INTERFACE( IColorCorrectionSystem, colorcorrection );
#define P4_INTERFACE_VERSION "VP4003"
DECLARE_TIER2_INTERFACE( IP4, p4 );
#define MDLLIB_INTERFACE_VERSION "VMDLLIB001"
DECLARE_TIER2_INTERFACE( IMdlLib, mdllib );
#define QUEUEDLOADER_INTERFACE_VERSION "QueuedLoaderVersion001"
DECLARE_TIER2_INTERFACE( IQueuedLoader, g_pQueuedLoader );
#if defined( _X360 )
#define XBOXINSTALLER_INTERFACE_VERSION "XboxInstallerVersion001"
DECLARE_TIER2_INTERFACE( IXboxInstaller, g_pXboxInstaller );
#endif
#define MATCHFRAMEWORK_INTERFACE_VERSION "MATCHFRAMEWORK_001"
DECLARE_TIER2_INTERFACE( IMatchFramework, g_pMatchFramework );
//-----------------------------------------------------------------------------
// Not exactly a global, but we're going to keep track of these here anyways
// NOTE: Appframework deals with connecting these bad boys. See materialsystem2app.cpp
//-----------------------------------------------------------------------------
#define RENDER_DEVICE_INTERFACE_VERSION "RenderDevice002"
DECLARE_TIER2_INTERFACE(IRenderDevice, g_pRenderDevice);
#define RENDER_DEVICE_SETUP_INTERFACE_VERSION "VRenderDeviceSetupV001"
DECLARE_TIER2_INTERFACE( IRenderDeviceSetup, g_pRenderDeviceSetup );
#define RENDER_HARDWARECONFIG_INTERFACE_VERSION "RenderHardwareConfig002"
DECLARE_TIER2_INTERFACE( IRenderHardwareConfig, g_pRenderHardwareConfig );
#define RENDER_UTILS_INTERFACE_VERSION "RenderUtils_001"
DECLARE_TIER2_INTERFACE( IRenderUtils, g_pRenderUtils );
#define SOUNDSYSTEM_INTERFACE_VERSION "SoundSystem001"
DECLARE_TIER2_INTERFACE( ISoundSystem, g_pSoundSystem );
#define SOUNDMIXGROUPSYSTEM_INTERFACE_VERSION "SoundMixGroupSystem001"
DECLARE_TIER2_INTERFACE( ISoundMixGroupSystem, g_pSoundMixGroupSystem);
#define SOUNDOPSYSTEMEDIT_INTERFACE_VERSION "SoundOpSystemEdit001"
DECLARE_TIER2_INTERFACE( ISoundOpSystemEdit, g_pSoundOpSystemEdit );
#define SOUNDOPSYSTEM_INTERFACE_VERSION "SoundOpSystem001"
DECLARE_TIER2_INTERFACE( ISoundOpSystem, g_pSoundOpSystem );
#define STEAMAUDIO_INTERFACE_VERSION "SteamAudio001"
DECLARE_TIER2_INTERFACE( ISteamAudio, g_pSteamAudio );
#define P4_INTERFACE_VERSION "VP4003"
DECLARE_TIER2_INTERFACE( IP4, g_pP4 );
#define LOCALIZE_INTERFACE_VERSION "Localize_001"
DECLARE_TIER2_INTERFACE( ILocalize, g_pLocalize );
#define MEDIA_FOUNDATION_INTERFACE_VERSION "VMediaFoundation001"
DECLARE_TIER2_INTERFACE( IMediaFoundation, g_pMediaFoundation );
#define AVI_INTERFACE_VERSION "VAvi001"
DECLARE_TIER3_INTERFACE( IAvi, g_pAVI );
#define BIK_INTERFACE_VERSION "VBik001"
DECLARE_TIER3_INTERFACE( IBik, g_pBIK );
#define MESHSYSTEM_INTERFACE_VERSION "MeshSystem001"
DECLARE_TIER3_INTERFACE( IMeshSystem, g_pMeshSystem );
#define MESHUTILS_INTERFACE_VERSION "MeshUtils001"
DECLARE_TIER3_INTERFACE( IMeshUtils, g_pMeshUtils );
#define RENDER_SYSTEM_SURFACE_INTERFACE_VERSION "RenderSystemSurface001"
DECLARE_TIER3_INTERFACE( IVGuiRenderSurface, g_pVGuiRenderSurface );
#define RENDER_DEVICE_INTERFACE_VERSION "RenderDevice003"
DECLARE_TIER3_INTERFACE( IRenderDevice, g_pRenderDevice );
#define RENDER_DEVICE_SETUP_INTERFACE_VERSION "VRenderDeviceSetupV001"
DECLARE_TIER3_INTERFACE( IRenderDeviceSetup, g_pRenderDeviceSetup );
#define RENDER_HARDWARECONFIG_INTERFACE_VERSION "RenderHardwareConfig002"
DECLARE_TIER3_INTERFACE( IRenderHardwareConfig, g_pRenderHardwareConfig );
#define SCENESYSTEM_INTERFACE_VERSION "SceneSystem_002"
DECLARE_TIER3_INTERFACE( ISceneSystem, g_pSceneSystem );
#define PULSESYSTEM_INTERFACE_VERSION "IPulseSystem_001"
DECLARE_TIER3_INTERFACE( IPulseSystem, g_pPulseSystem );
#define SCENEUTILS_INTERFACE_VERSION "SceneUtils_001"
DECLARE_TIER3_INTERFACE( ISceneUtils, g_pSceneUtils );
#define WORLD_RENDERER_MGR_INTERFACE_VERSION "WorldRendererMgr001"
DECLARE_TIER3_INTERFACE( IWorldRendererMgr, g_pWorldRendererMgr );
#define ASSETSYSTEM_INTERFACE_VERSION "AssetSystem001"
DECLARE_TIER3_INTERFACE( IAssetSystem, g_pAssetSystem );
@ -417,42 +370,39 @@ DECLARE_TIER3_INTERFACE( IAssetSystem, g_pAssetSystem );
#define ASSETSYSTEMTEST_INTERFACE_VERSION "AssetSystemTest001"
DECLARE_TIER3_INTERFACE( IAssetSystemTest, g_pAssetSystemTest );
#define PARTICLESYSTEMMGR_INTERFACE_VERSION "ParticleSystemMgr002"
#define PARTICLESYSTEMMGR_INTERFACE_VERSION "ParticleSystemMgr003"
DECLARE_TIER3_INTERFACE( IParticleSystemMgr, g_pParticleSystemMgr );
#define VSCRIPT_INTERFACE_VERSION "VScriptManager010"
DECLARE_TIER3_INTERFACE( IVScriptManager, g_pVScriptService );
#define TOOLSCRIPTMANAGER_INTERFACE_VERSION "ToolScriptManager001"
DECLARE_TIER3_INTERFACE( IToolScriptManager, g_pToolScriptManager );
#define SCRIPTMANAGER_INTERFACE_VERSION "VScriptManager010"
DECLARE_TIER3_INTERFACE( IScriptManager, g_pScriptManager );
#define PROPERTYEDITORSYSTEM_INTERFACE_VERSION "PropertyEditorSystem_001"
DECLARE_TIER3_INTERFACE( IPropertyEditorSystem, g_pPropertyEditorSystem );
#define MODELPROCESSINGSYSTEM_INTERFACE_VERSION "ModelProcessingSystem001"
DECLARE_TIER3_INTERFACE( IModelProcessingSystem, g_pModelProcessingSystem );
#define MATCHFRAMEWORK_INTERFACE_VERSION "MATCHFRAMEWORK_001"
DECLARE_TIER3_INTERFACE( IMatchFramework, g_pMatchFramework );
#define PANORAMAUI_INTERFACE_VERSION "PanoramaUI001"
DECLARE_TIER3_INTERFACE( IPanoramaUI, g_pPanoramaUI );
#define V8SYSTEM_INTERFACE_VERSION "Source2V8System001"
DECLARE_TIER3_INTERFACE( ISource2V8System, g_pV8System );
#define TOOLFRAMEWORK2_INTERFACE_VERSION "ToolFramework2_001"
#define PANORAMAUIENGINE_INTERFACE_VERSION "PanoramaUIEngine001"
DECLARE_TIER3_INTERFACE( IPanoramaUIEngine, g_pPanoramaUIEngine );
#define PANORAMAUICLIENT_INTERFACE_VERSION "PanoramaUIClient001"
DECLARE_TIER3_INTERFACE( IPanoramaUIClient, g_pPanoramaUIClient );
#define PANORAMATEXTSERVICES_INTERFACE_VERSION "PanoramaTextServices001"
DECLARE_TIER3_INTERFACE( panorama::IUITextServices, g_IUITextServices );
#define TOOLFRAMEWORK2_INTERFACE_VERSION "ToolFramework2_002"
DECLARE_TIER3_INTERFACE( IToolFramework2, g_pToolFramework2 );
#define WORLDRENDERERBUILDER_INTERFACE_VERSION "WorldRendererBuilderMgr001"
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pWorldRendererBuilderMgr );
#define LIGHTINGBUILDER_INTERFACE_VERSION "LightingBuilderMgr001"
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pLightingBuilderMgr );
#define PHYSICSBUILDER_INTERFACE_VERSION "PhysicsBuilderMgr001"
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pPhysicsBuilderMgr );
#define VISBUILDER_INTERFACE_VERSION "VisBuilder_001"
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pVisBuilderMgr );
#define ENVIRONMENTBUILDER_INTERFACE_VERSION "EnvironmentMapBuilder_001"
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pEnvironmentBuilderMgr );
#define BAKEDLODBUILDER_INTERFACE_VERSION "BakedLODBuilderMgr001"
DECLARE_TIER3_INTERFACE( IMapBuilderMgr, g_pBakedLODBuilderMgr );
@ -462,11 +412,8 @@ DECLARE_TIER3_INTERFACE( IHelpSystem, g_pHelpSystem );
#define TOOLSCENENODEFACTORY_INTERFACE_VERSION "ToolSceneNodeFactory_001"
DECLARE_TIER3_INTERFACE( IToolSceneNodeFactory, g_pToolSceneNodeFactory );
#define TOOLGAMESIMULATIONSYSTEM_INTERFACE_VERSION "ToolGameSimulationSystem_001"
DECLARE_TIER3_INTERFACE( IToolGameSimulationSystem, g_pToolGameSimulationSystem );
#define TOOLGAMESIMULATIONDISPATCHER_INTERFACE_VERSION "ToolGameSimulationDispatcher_001"
DECLARE_TIER3_INTERFACE( IToolGameSimulationDispatcher, g_pToolGameSimulationDispatcher );
#define ECONITEMTOOLMODEL_INTERFACE_VERSION "EconItemToolModel_001"
DECLARE_TIER3_INTERFACE( IEconItemToolModel, g_pEconItemToolModel );
#define SCHEMATESTEXTERNALTWO_INTERFACE_VERSION "SchemaTestExternal_Two_001"
DECLARE_TIER3_INTERFACE( ISchemaTestExternal_Two, g_pSchemaTestExternal_Two );
@ -484,7 +431,7 @@ DECLARE_TIER3_INTERFACE( IAnimationSystemUtils, g_pAnimationSystemUtils );
DECLARE_TIER3_INTERFACE( IHammerMapLoader, g_pHammerMapLoader );
#define MATERIALUTILS_INTERFACE_VERSION "MaterialUtils_001"
DECLARE_TIER3_INTERFACE( IMaterialUtils, g_pMaterialUtils );
DECLARE_TIER3_INTERFACE( IMaterialSystem2Utils, g_pMaterialSystem2Utils );
#define FONTMANAGER_INTERFACE_VERSION "FontManager_001"
DECLARE_TIER3_INTERFACE( IFontManager, g_pFontManager );
@ -498,20 +445,38 @@ DECLARE_TIER3_INTERFACE( IAssetPreviewSystem, g_pAssetPreviewSystem );
#define ASSETBROWSERSYSTEM_INTERFACE_VERSION "AssetBrowserSystem_001"
DECLARE_TIER3_INTERFACE( IAssetBrowserSystem, g_pAssetBrowserSystem );
#define ASSETRENAMESYSTEM_INTERFACE_VERSION "AssetRenameSystem_001"
DECLARE_TIER3_INTERFACE( IAssetRenameSystem, g_pAssetRenameSystem );
#define VCONCOMM_INTERFACE_VERSION "VConComm001"
DECLARE_TIER3_INTERFACE( IVConComm, g_pVConComm );
#define CONFIGURATIONSYSTEM_INTERFACE_VERSION "ConfigurationSystem_001"
DECLARE_TIER3_INTERFACE( IConfigurationSystem, g_pConfigurationSystem );
#define MODELPROCESSINGSERVICES_INTERFACE_VERSION "MODEL_PROCESSING_SERVICES_INTERFACE_001"
DECLARE_TIER3_INTERFACE( IModelProcessingServices, g_pModelProcessingServices );
#define NETWORKSYSTEM_INTERFACE_VERSION "NetworkSystemVersion001"
DECLARE_TIER3_INTERFACE( INetworkSystem, g_pNetworkSystem );
#define NETWORKMESSAGES_INTERFACE_VERSION "NetworkMessagesVersion001"
DECLARE_TIER3_INTERFACE( INetworkMessages, g_pNetworkMessages );
#define FLATTENEDSERIALIZERS_INTERFACE_VERSION "FlattenedSerializersVersion001"
DECLARE_TIER3_INTERFACE( IFlattenedSerializers, g_pFlattenedSerializers );
#define SOURCE2CLIENT_INTERFACE_VERSION "Source2Client001"
#define SERIALIZEDENTITIES_INTERFACE_VERSION "SerializedEntitiesVersion001"
DECLARE_TIER3_INTERFACE( ISerializedEntities, g_pSerializedEntities );
#define DEMOUPCONVERTER_INTERFACE_VERSION "DemoUpconverterVersion001"
DECLARE_TIER3_INTERFACE( IDemoUpconverter, g_pDemoUpconverter );
#define SOURCE2CLIENT_INTERFACE_VERSION "Source2Client002"
DECLARE_TIER3_INTERFACE( ISource2Client, g_pSource2Client );
#define SOURCE2CLIENTUI_INTERFACE_VERSION "Source2ClientUI001"
DECLARE_TIER3_INTERFACE( IClientUI, g_pIClientUI );
#define SOURCE2CLIENTPREDICTION_INTERFACE_VERSION "Source2ClientPrediction001"
DECLARE_TIER3_INTERFACE( ISource2ClientPrediction, g_pSource2ClientPrediction );
DECLARE_TIER3_INTERFACE( IPrediction2, g_pClientSidePrediction );
#define SOURCE2SERVER_INTERFACE_VERSION "Source2Server001"
DECLARE_TIER3_INTERFACE( ISource2Server, g_pSource2Server );
@ -519,9 +484,6 @@ DECLARE_TIER3_INTERFACE( ISource2Server, g_pSource2Server );
#define SOURCE2SERVERCONFIG_INTERFACE_VERSION "Source2ServerConfig001"
DECLARE_TIER3_INTERFACE( ISource2ServerConfig, g_pSource2ServerConfig );
#define SOURCE2SERVERSERIALIZERS_INTERFACE_VERSION "Source2ServerSerializers001"
DECLARE_TIER3_INTERFACE( ISource2ServerSerializers, g_pSource2ServerSerializers );
#define SOURCE2HOST_INTERFACE_VERSION "Source2Host001"
DECLARE_TIER3_INTERFACE( ISource2Host, g_pSource2Host );
@ -543,14 +505,14 @@ DECLARE_TIER3_INTERFACE( INetworkService, g_pNetworkService );
#define NETWORKCLIENTSERVICE_INTERFACE_VERSION "NetworkClientService_001"
DECLARE_TIER3_INTERFACE( INetworkClientService, g_pNetworkClientService );
#define NETWORKP2PSERVICE_INTERFACE_VERSION "NetworkP2PService_001"
DECLARE_TIER3_INTERFACE( INetworkP2PService, g_pNetworkP2PService );
#define NETWORKSERVERSERVICE_INTERFACE_VERSION "NetworkServerService_001"
DECLARE_TIER3_INTERFACE( INetworkServerService, g_pNetworkServerService );
#define TEXTMESSAGEMGR_INTERFACE_VERSION "TextMessageMgr_001"
DECLARE_TIER3_INTERFACE( ITextMessageMgr, g_pTextMessageMgr );
#define TOOLSERVICE_INTERFACE_VERSION "ToolService_001"
DECLARE_TIER3_INTERFACE(IToolService, g_pToolService);
DECLARE_TIER3_INTERFACE( IToolService, g_pToolService );
#define RENDERSERVICE_INTERFACE_VERSION "RenderService_001"
DECLARE_TIER3_INTERFACE( IRenderService, g_pRenderService );
@ -558,9 +520,6 @@ DECLARE_TIER3_INTERFACE( IRenderService, g_pRenderService );
#define STATSSERVICE_INTERFACE_VERSION "StatsService_001"
DECLARE_TIER3_INTERFACE( IStatsService, g_pStatsService );
#define USERINFOCHANGESERVICE_INTERFACE_VERSION "UserInfoChangeService_001"
DECLARE_TIER3_INTERFACE( IUserInfoChangeService, g_pUserInfoChangeService );
#define VPROFSERVICE_INTERFACE_VERSION "VProfService_001"
DECLARE_TIER3_INTERFACE( IVProfService, g_pVProfService );
@ -579,94 +538,56 @@ DECLARE_TIER3_INTERFACE( ISoundService, g_pSoundService );
#define BENCHMARKSERVICE_INTERFACE_VERSION "BenchmarkService001"
DECLARE_TIER3_INTERFACE( IBenchmarkService, g_pBenchmarkService );
#define DEBUGSERVICE_INTERFACE_VERSION "VDebugService_001"
DECLARE_TIER3_INTERFACE( IDebugService, g_pDebugService );
#define KEYVALUECACHE_INTERFACE_VERSION "KeyValueCache001"
DECLARE_TIER3_INTERFACE( IKeyValueCache, g_pKeyValueCache );
#define GAMERESOURCESERVICECLIENT_INTERFACE_VERSION "GameResourceServiceClientV001"
DECLARE_TIER3_INTERFACE( IGameResourceServiceClient, g_pGameResourceServiceClient );
DECLARE_TIER3_INTERFACE( IGameResourceService, g_pGameResourceServiceClient );
#define GAMERESOURCESERVICESERVER_INTERFACE_VERSION "GameResourceServiceServerV001"
DECLARE_TIER3_INTERFACE( IGameResourceServiceServer, g_pGameResourceServiceServer );
DECLARE_TIER3_INTERFACE( IGameResourceService, g_pGameResourceServiceServer );
#define SOURCE2ENGINETOCLIENT_INTERFACE_VERSION "Source2EngineToClient001"
DECLARE_TIER3_INTERFACE( ISource2EngineToClient, g_pSource2EngineToClient );
DECLARE_TIER3_INTERFACE( IVEngineClient2, g_pEngineClient );
#define SOURCE2ENGINETOSERVER_INTERFACE_VERSION "Source2EngineToServer001"
DECLARE_TIER3_INTERFACE( ISource2EngineToServer, g_pSource2EngineToServer );
DECLARE_TIER3_INTERFACE( IVEngineServer2, g_pEngineServer );
#define SOURCE2ENGINETOSERVERSTRINGTABLE_INTERFACE_VERSION "Source2EngineToServerStringTable001"
DECLARE_TIER3_INTERFACE( ISource2EngineToServerStringTable, g_pSource2EngineToServerStringTable );
DECLARE_TIER3_INTERFACE( INetworkStringTableContainer, g_pNetworkStringTableServer );
#define SOURCE2ENGINETOCLIENTSTRINGTABLE_INTERFACE_VERSION "Source2EngineToClientStringTable001"
DECLARE_TIER3_INTERFACE( ISource2EngineToClientStringTable, g_pSource2EngineToClientStringTable );
DECLARE_TIER3_INTERFACE( INetworkStringTableContainer, g_pNetworkStringTableClient );
#define SOURCE2ENGINESOUNDSERVER_INTERFACE_VERSION "Source2EngineSoundServer001"
DECLARE_TIER3_INTERFACE( ISource2EngineSoundServer, g_pSource2EngineSoundServer );
#define VPHYSICS2_INTERFACE_VERSION "VPhysics2_Interface_001"
DECLARE_TIER3_INTERFACE( IVPhysics2, g_pVPhysics2 );
#define SOURCE2ENGINESOUNDCLIENT_INTERFACE_VERSION "Source2EngineSoundClient001"
DECLARE_TIER3_INTERFACE( ISource2EngineSoundClient, g_pSource2EngineSoundClient );
#define VPHYSICS2HANDLE_INTERFACE_VERSION "VPhysics2_Handle_Interface_001"
DECLARE_TIER3_INTERFACE( VPhys2HandleInterface, g_pVPhys2HandleInterface );
#define SCALEFORMUI_INTERFACE_VERSION "ScaleformUI001"
DECLARE_TIER3_INTERFACE( IScaleformUI, g_pScaleformUI );
#define MODELDOCUTILS_INTERFACE_VERSION "ModelDocUtils001"
DECLARE_TIER3_INTERFACE( IModelDocUtils, g_pModelDocUtils );
#define SERVERUPLOADGAMESTATS_INTERFACE_VERSION "ServerUploadGameStats001"
DECLARE_TIER3_INTERFACE( IServerUploadGameStats, g_pServerUploadGameStats );
#define ANIMGRAPHEDITORUTILS_INTERFACE_VERSION "AnimGraphEditorUtils001"
DECLARE_TIER3_INTERFACE( IAnimGraphEditorUtils, g_pAnimGraphEditorUtils );
#define SCENESYSTEM_INTERFACE_VERSION "SceneSystem_002"
DECLARE_TIER3_INTERFACE( ISceneSystem, g_pSceneSystem );
#define EXPORTSYSTEM_INTERFACE_VERSION "EXPORTSYSTEM_INTERFACE_VERSION_001"
DECLARE_TIER3_INTERFACE( IExportSystem, g_pExportSystem );
#define SCENEUTILS_INTERFACE_VERSION "SceneUtils_001"
DECLARE_TIER3_INTERFACE( ISceneUtils, g_pSceneUtils );
#define SERVERTOOLSINFO_INTERFACE_VERSION "ServerToolsInfo_001"
DECLARE_TIER3_INTERFACE( IServerToolsInfo, g_pServerToolsInfo );
#define VGUI_SURFACE_INTERFACE_VERSION "VGUI_Surface032"
DECLARE_TIER3_INTERFACE( vgui::ISurface, g_pVGuiSurface );
#define CLIENTTOOLSINFO_INTERFACE_VERSION "ClientToolsInfo_001"
DECLARE_TIER3_INTERFACE( IClientToolsInfo, g_pClientToolsInfo );
#define SCHEME_SURFACE_INTERFACE_VERSION "SchemeSurface001"
#define VRAD3_INTERFACE_VERSION "Vrad3_001"
DECLARE_TIER3_INTERFACE( IVRAD3, g_pVRAD3 );
#define VGUI_INPUT_INTERFACE_VERSION "VGUI_Input005"
DECLARE_TIER3_INTERFACE( vgui::IInput, g_pVGuiInput );
#define NAVSYSTEM_INTERFACE_VERSION "NavSystem001"
DECLARE_TIER3_INTERFACE( INavSystem, g_pNavSystem );
#define VGUI_IVGUI_INTERFACE_VERSION "VGUI_ivgui008"
DECLARE_TIER3_INTERFACE( vgui::IVGui, g_pVGui );
#define VGUI_PANEL_INTERFACE_VERSION "VGUI_Panel010"
DECLARE_TIER3_INTERFACE( vgui::IPanel, g_pVGuiPanel );
#define VGUI_SCHEME_INTERFACE_VERSION "VGUI_Scheme010"
DECLARE_TIER3_INTERFACE( vgui::ISchemeManager, g_pVGuiSchemeManager );
#define VGUI_SYSTEM_INTERFACE_VERSION "VGUI_System010"
DECLARE_TIER3_INTERFACE( vgui::ISystem, g_pVGuiSystem );
#define DATACACHE_INTERFACE_VERSION "VDataCache003"
DECLARE_TIER3_INTERFACE( IDataCache, g_pDataCache ); // FIXME: Should IDataCache be in tier2?
#define AVI_INTERFACE_VERSION "VAvi001"
DECLARE_TIER3_INTERFACE( IAvi, g_pAVI );
#define BIK_INTERFACE_VERSION "VBik001"
DECLARE_TIER3_INTERFACE( IBik, g_pBIK );
#define QUICKTIME_INTERFACE_VERSION "IQuickTime001"
DECLARE_TIER3_INTERFACE( IQuickTime, g_pQuickTime );
#define DMEMAKEFILE_UTILS_INTERFACE_VERSION "VDmeMakeFileUtils001"
DECLARE_TIER3_INTERFACE( IDmeMakefileUtils, g_pDmeMakefileUtils );
#define SOUNDEMITTERSYSTEM_INTERFACE_VERSION "VSoundEmitter003"
DECLARE_TIER3_INTERFACE( ISoundEmitterSystemBase, g_pSoundEmitterSystem );
#define SOUNDEMITTERSYSTEMS1_INTERFACE_VERSION "VSoundEmitterS1_001"
DECLARE_TIER3_INTERFACE( ISoundEmitterSystemBaseS1, g_pSoundEmitterSystemS1 );
#define WORLD_RENDERER_MGR_INTERFACE_VERSION "WorldRendererMgr001"
DECLARE_TIER3_INTERFACE( IWorldRendererMgr, g_pWorldRendererMgr );
#define VR_INTERFACE_VERSION "VR_001"
DECLARE_TIER3_INTERFACE(IVR, vr);
#define NAVGAMETEST_INTERFACE_VERSION "NavGameTest001"
DECLARE_TIER3_INTERFACE( INavGameTest, g_pNavGameTest );
//-----------------------------------------------------------------------------
// Fills out global DLL exported interface pointers