summaryrefslogtreecommitdiff
path: root/common/staticlink/system.h
blob: 2eac5ae0b8202904702fecc3c3db272e41758fd0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: static link master include
//
// $NoKeywords: $
//=============================================================================//

#ifndef SYSTEM_H
#define SYSTEM_H

#pragma once

#define UID_PREFIX generated_id_
#define UID_CAT1(a,c) a ## c
#define UID_CAT2(a,c) UID_CAT1(a,c)
#define EXPAND_CONCAT(a,c) UID_CAT1(a,c)
#define UNIQUE_ID UID_CAT2(UID_PREFIX,__LINE__)

// helper atom macros - force preprocessor symbol expansion
#define SYMBOL_TO_STRING(token1)		#token1
#define EXPAND_SYMBOL_TO_STRING(token1)	SYMBOL_TO_STRING(token1)
#define EXPAND_SYMBOL(token)			token

#if defined(_STATIC_LINKED)
// for platforms built with static linking, the dll interface gets spoofed

// Contains each published subsystem's 'CreateInterface'
typedef void* (*createFn)(const char *pName, int *pReturnCode);
class DynamicLibraryList
{
public:
	DynamicLibraryList(const char* subSystemName, createFn createFunction);

	const char					*m_subSystemName;
	createFn					m_createFn;
	DynamicLibraryList			*m_next;
	static DynamicLibraryList	*s_DynamicLibraryList;
};

// creates the unique dll subsystem class symbol
// class constructor handles the list population
#define MAKE_DLL_CLASS(subSystem)			static DynamicLibraryList __g_##subSystem##_DynamicLibrary(EXPAND_SYMBOL_TO_STRING(_SUBSYSTEM), CreateInterface);

#if defined(_SUBSYSTEM)
#define PUBLISH_DLL_SUBSYSTEM()				MAKE_DLL_CLASS(_SUBSYSTEM)
#else
// must define _SUBSYSTEM
#define PUBLISH_DLL_SUBSYSTEM()				Project error ... Missing _SUBSYSTEM=<name>
#endif

#endif

#if !defined(_STATIC_LINKED) && !defined(PUBLISH_DLL_SUBSYSTEM)
// for platforms built with dynamic linking, the dll interface does not need spoofing
#define PUBLISH_DLL_SUBSYSTEM()
#endif

#if defined(_STATIC_LINKED)
#define PRIVATE static
#else
#define PRIVATE
#endif

#define MAKE_NAME_UNIQUE(identifier)	EXPAND_CONCAT(EXPAND_CONCAT(_SUBSYSTEM,_),identifier)

// the low tech solution
#if defined(_STATIC_LINKED)

#define ActivityDataOps							MAKE_NAME_UNIQUE(ActivityDataOps)
#define ActivityList_Free						MAKE_NAME_UNIQUE(ActivityList_Free)
#define ActivityList_IndexForName				MAKE_NAME_UNIQUE(ActivityList_IndexForName)
#define ActivityList_Init						MAKE_NAME_UNIQUE(ActivityList_Init)
#define ActivityList_NameForIndex				MAKE_NAME_UNIQUE(ActivityList_NameForIndex)
#define ActivityList_RegisterPrivateActivity	MAKE_NAME_UNIQUE(ActivityList_RegisterPrivateActivity)
#define ActivityList_RegisterSharedActivities	MAKE_NAME_UNIQUE(ActivityList_RegisterSharedActivities)
#define ActivityList_RegisterSharedActivity		MAKE_NAME_UNIQUE(ActivityList_RegisterSharedActivity)
#define activitylist_t							MAKE_NAME_UNIQUE(activitylist_t)
#define AddSurfacepropFile						MAKE_NAME_UNIQUE(AddSurfacepropFile)
#define AllocateStringHelper					MAKE_NAME_UNIQUE(AllocateStringHelper)
#define AllocateStringHelper2					MAKE_NAME_UNIQUE(AllocateStringHelper2)
#define AllocateUniqueDataTableName				MAKE_NAME_UNIQUE(AllocateUniqueDataTableName)
#define andomVector								MAKE_NAME_UNIQUE(andomVector)
#define ApplyMultiDamage						MAKE_NAME_UNIQUE(ApplyMultiDamage)
#define BlendBones								MAKE_NAME_UNIQUE(BlendBones)
#define BreakModelList							MAKE_NAME_UNIQUE(BreakModelList)
#define BuildAllAnimationEventIndexes			MAKE_NAME_UNIQUE(BuildAllAnimationEventIndexes)
#define BuildBoneChain							MAKE_NAME_UNIQUE(BuildBoneChain)
#define CActivityDataOps						MAKE_NAME_UNIQUE(CActivityDataOps)
#define CalcBoneAdj								MAKE_NAME_UNIQUE(CalcBoneAdj)
#define CalcBoneDerivatives						MAKE_NAME_UNIQUE(CalcBoneDerivatives)
#define CalcBonePosition						MAKE_NAME_UNIQUE(CalcBonePosition)
#define CalcBoneQuaternion						MAKE_NAME_UNIQUE(CalcBoneQuaternion)
#define CalcBoneVelocityFromDerivative			MAKE_NAME_UNIQUE(CalcBoneVelocityFromDerivative)
#define CalcPoseSingle							MAKE_NAME_UNIQUE(CalcPoseSingle)
#define CalcProceduralBone						MAKE_NAME_UNIQUE(CalcProceduralBone)
#define CalcRopeStartingConditions				MAKE_NAME_UNIQUE(CalcRopeStartingConditions)
#define CAmmoDef								MAKE_NAME_UNIQUE(CAmmoDef)
#define CAutoGameSystem							MAKE_NAME_UNIQUE(CAutoGameSystem)
#define CAutoGameSystemPerFrame					MAKE_NAME_UNIQUE(CAutoGameSystemPerFrame)
#define CBaseEntityList							MAKE_NAME_UNIQUE(CBaseEntityList)
#define CBaseGameSystem							MAKE_NAME_UNIQUE(CBaseGameSystem)
#define CBaseGameSystemPerFrame					MAKE_NAME_UNIQUE(CBaseGameSystemPerFrame)
#define CBaseHandle								MAKE_NAME_UNIQUE(CBaseHandle)
#define CBasePanel								MAKE_NAME_UNIQUE(CBasePanel)
#define CBasePlayerAnimState					MAKE_NAME_UNIQUE(CBasePlayerAnimState)
#define CBaseRopePhysics						MAKE_NAME_UNIQUE(CBaseRopePhysics)
#define CBoneCache								MAKE_NAME_UNIQUE(CBoneCache)
#define CCollisionEvent							MAKE_NAME_UNIQUE(CCollisionEvent)
#define CCollisionProperty						MAKE_NAME_UNIQUE(CCollisionProperty)
#define CCopyRecipientFilter					MAKE_NAME_UNIQUE(CCopyRecipientFilter)
#define CPASFilter								MAKE_NAME_UNIQUE(CPASFilter)
#define CPVSFilter								MAKE_NAME_UNIQUE(CPVSFilter)
#define CPASAttenuationFilter					MAKE_NAME_UNIQUE(CPASAttenuationFilter)
#define CDataObjectAccessSystem					MAKE_NAME_UNIQUE(CDataObjectAccessSystem)
#define CDecalEmitterSystem						MAKE_NAME_UNIQUE(CDecalEmitterSystem)
#define CDirtySpatialPartitionEntityList		MAKE_NAME_UNIQUE(CDirtySpatialPartitionEntityList)
#define CEntInfo								MAKE_NAME_UNIQUE(CEntInfo)
#define CEntityMapData							MAKE_NAME_UNIQUE(CEntityMapData)
#define CEntitySaveRestoreBlockHandler			MAKE_NAME_UNIQUE(CEntitySaveRestoreBlockHandler)
#define CEntitySaveUtils						MAKE_NAME_UNIQUE(CEntitySaveUtils)
#define CEntitySphereQuery						MAKE_NAME_UNIQUE(CEntitySphereQuery)
#define CEnvHeadcrabCanisterShared				MAKE_NAME_UNIQUE(CEnvHeadcrabCanisterShared)
#define CEnvWindShared							MAKE_NAME_UNIQUE(CEnvWindShared)
#define CFlaggedEntitiesEnum					MAKE_NAME_UNIQUE(CFlaggedEntitiesEnum)
#define CFlexSceneFileManager					MAKE_NAME_UNIQUE(CFlexSceneFileManager)
#define CGameMovement							MAKE_NAME_UNIQUE(CGameMovement)
#define CGameRulesRegister						MAKE_NAME_UNIQUE(CGameRulesRegister)
#define CGameSaveRestoreInfo					MAKE_NAME_UNIQUE(CGameSaveRestoreInfo)
#define CGameStringPool							MAKE_NAME_UNIQUE(CGameStringPool)
#define CGameTrace								MAKE_NAME_UNIQUE(CGameTrace)
#define CGameUI									MAKE_NAME_UNIQUE(CGameUI)
#define CGameWeaponManager						MAKE_NAME_UNIQUE(CGameWeaponManager)
#define CHL2GameMovement						MAKE_NAME_UNIQUE(CHL2GameMovement)
#define CIKContext								MAKE_NAME_UNIQUE(CIKContext)
#define CIKTarget								MAKE_NAME_UNIQUE(CIKTarget)
#define CIterativeSheetSimulator				MAKE_NAME_UNIQUE(CIterativeSheetSimulator)
#define ClearMultiDamage						MAKE_NAME_UNIQUE(ClearMultiDamage)
#define CMessage								MAKE_NAME_UNIQUE(CMessage)
#define CMultiDamage							MAKE_NAME_UNIQUE(CMultiDamage)
#define CObjectsFileLoad						MAKE_NAME_UNIQUE(CObjectsFileLoad)
#define ComputeSurroundingBox					MAKE_NAME_UNIQUE(ComputeSurroundingBox)
#define CountdownTimer							MAKE_NAME_UNIQUE(CountdownTimer)
#define CPhysicsGameTrace						MAKE_NAME_UNIQUE(CPhysicsGameTrace)
#define CPhysicsSpring							MAKE_NAME_UNIQUE(CPhysicsSpring)
#define CPhysObjSaveRestoreOps					MAKE_NAME_UNIQUE(CPhysObjSaveRestoreOps)
#define CPhysSaveRestoreBlockHandler			MAKE_NAME_UNIQUE(CPhysSaveRestoreBlockHandler)
#define CPlayerLocalData						MAKE_NAME_UNIQUE(CPlayerLocalData)
#define CPlayerState							MAKE_NAME_UNIQUE(CPlayerState)
#define CPositionWatcherList					MAKE_NAME_UNIQUE(CPositionWatcherList)
#define CPrecacheRegister						MAKE_NAME_UNIQUE(CPrecacheRegister)
#define CPredictableId							MAKE_NAME_UNIQUE(CPredictableId)
#define CPredictableList						MAKE_NAME_UNIQUE(CPredictableList)
#define CPropData								MAKE_NAME_UNIQUE(CPropData)
#define CRagdollLowViolenceManager				MAKE_NAME_UNIQUE(CRagdollLowViolenceManager)
#define CRagdollLRURetirement					MAKE_NAME_UNIQUE(CRagdollLRURetirement)
#define CreateInterface							MAKE_NAME_UNIQUE(CreateInterface)
#define CRestore								MAKE_NAME_UNIQUE(CRestore)
#define CSave									MAKE_NAME_UNIQUE(CSave)
#define CSaveRestoreBlockSet					MAKE_NAME_UNIQUE(CSaveRestoreBlockSet)
#define CSaveRestoreData						MAKE_NAME_UNIQUE(CSaveRestoreData)
#define CSaveRestoreSegment						MAKE_NAME_UNIQUE(CSaveRestoreSegment)
#define CSceneTokenProcessor					MAKE_NAME_UNIQUE(CSceneTokenProcessor)
#define CSheetSimulator							MAKE_NAME_UNIQUE(CSheetSimulator)
#define CSimplePhysics							MAKE_NAME_UNIQUE(CSimplePhysics)
#define CSolidSetDefaults						MAKE_NAME_UNIQUE(CSolidSetDefaults)
#define CSoundControllerImp						MAKE_NAME_UNIQUE(CSoundControllerImp)
#define CSoundEmitterSystem						MAKE_NAME_UNIQUE(CSoundEmitterSystem)
#define CSoundEmitterSystemBase					MAKE_NAME_UNIQUE(CSoundEmitterSystemBase)
#define CSoundEnvelope							MAKE_NAME_UNIQUE(CSoundEnvelope)
#define CSoundEnvelopeController				MAKE_NAME_UNIQUE(CSoundEnvelopeController)
#define CSoundPatch								MAKE_NAME_UNIQUE(CSoundPatch)
#define CSoundPatchSaveRestoreOps				MAKE_NAME_UNIQUE(CSoundPatchSaveRestoreOps)
#define CStudioBoneCache						MAKE_NAME_UNIQUE(CStudioBoneCache)
#define CStudioHdr								MAKE_NAME_UNIQUE(CStudioHdr)
#define CTakeDamageInfo							MAKE_NAME_UNIQUE(CTakeDamageInfo)
#define CTraceFilterEntity						MAKE_NAME_UNIQUE(CTraceFilterEntity)
#define CTraceFilterEntityIgnoreOther			MAKE_NAME_UNIQUE(CTraceFilterEntityIgnoreOther)
#define CTraceFilterLOS							MAKE_NAME_UNIQUE(CTraceFilterLOS)
#define CTraceFilterNoNPCsOrPlayer				MAKE_NAME_UNIQUE(CTraceFilterNoNPCsOrPlayer)
#define CTraceFilterOnlyNPCsAndPlayer			MAKE_NAME_UNIQUE(CTraceFilterOnlyNPCsAndPlayer)
#define CTraceFilterSimple						MAKE_NAME_UNIQUE(CTraceFilterSimple)
#define CTraceFilterSimpleList					MAKE_NAME_UNIQUE(CTraceFilterSimpleList)
#define CTraceFilterSkipNPCs					MAKE_NAME_UNIQUE(CTraceFilterSkipNPCs)
#define CTraceFilterSkipTwoEntities				MAKE_NAME_UNIQUE(CTraceFilterSkipTwoEntities)
#define CurrentViewOrigin						MAKE_NAME_UNIQUE(CurrentViewOrigin)
#define CurrentViewForward						MAKE_NAME_UNIQUE(CurrentViewForward)
#define CurrentViewRight						MAKE_NAME_UNIQUE(CurrentViewRight)
#define CurrentViewUp							MAKE_NAME_UNIQUE(CurrentViewUp)
#define CUserMessages							MAKE_NAME_UNIQUE(CUserMessages)
#define cvar									MAKE_NAME_UNIQUE(cvar)
#define datacache								MAKE_NAME_UNIQUE(datacache)
#define DataTableRecvProxy_LengthProxy			MAKE_NAME_UNIQUE(DataTableRecvProxy_LengthProxy)
#define DebugDrawLine							MAKE_NAME_UNIQUE(DebugDrawLine)
#define debugoverlay							MAKE_NAME_UNIQUE(debugoverlay)
#define decalsystem								MAKE_NAME_UNIQUE(decalsystem)
#define DispatchEffect							MAKE_NAME_UNIQUE(DispatchEffect)
#define DoAxisInterpBone						MAKE_NAME_UNIQUE(DoAxisInterpBone)
#define DoQuatInterpBone						MAKE_NAME_UNIQUE(DoQuatInterpBone)
#define engine									MAKE_NAME_UNIQUE(engine)
#define engineCache								MAKE_NAME_UNIQUE(engineCache)
#define enginesound								MAKE_NAME_UNIQUE(enginesound)
#define enginetrace								MAKE_NAME_UNIQUE(enginetrace)
#define enginevgui								MAKE_NAME_UNIQUE(enginevgui)
#define EntityFromEntityHandle					MAKE_NAME_UNIQUE(EntityFromEntityHandle)
#define EntityParticleTrailInfo_t				MAKE_NAME_UNIQUE(EntityParticleTrailInfo_t)
#define entitytable_t							MAKE_NAME_UNIQUE(entitytable_t)
#define EventList_AddEventEntry					MAKE_NAME_UNIQUE(EventList_AddEventEntry)
#define EventList_Free							MAKE_NAME_UNIQUE(EventList_Free)
#define EventList_GetEventType					MAKE_NAME_UNIQUE(EventList_GetEventType)
#define EventList_IndexForName					MAKE_NAME_UNIQUE(EventList_IndexForName)
#define EventList_Init							MAKE_NAME_UNIQUE(EventList_Init)
#define EventList_NameForIndex					MAKE_NAME_UNIQUE(EventList_NameForIndex)
#define EventList_RegisterPrivateEvent			MAKE_NAME_UNIQUE(EventList_RegisterPrivateEvent)
#define EventList_RegisterSharedEvent			MAKE_NAME_UNIQUE(EventList_RegisterSharedEvent)
#define EventList_RegisterSharedEvents			MAKE_NAME_UNIQUE(EventList_RegisterSharedEvents)
#define ExtractAnimValue						MAKE_NAME_UNIQUE(ExtractAnimValue)
#define ExtractBbox								MAKE_NAME_UNIQUE(ExtractBbox)
#define FactoryList_Retrieve					MAKE_NAME_UNIQUE(FactoryList_Retrieve)
#define FactoryList_Store						MAKE_NAME_UNIQUE(FactoryList_Store)
#define FileSystem_LoadModule					MAKE_NAME_UNIQUE(FileSystem_LoadModule)
#define FileSystem_Shutdown						MAKE_NAME_UNIQUE(FileSystem_Shutdown)
#define FileSystem_UnloadModule					MAKE_NAME_UNIQUE(FileSystem_UnloadModule)
#define FileWeaponInfo_t						MAKE_NAME_UNIQUE(FileWeaponInfo_t)
#define FindBodygroupByName						MAKE_NAME_UNIQUE(FindBodygroupByName)
#define FindHitboxSetByName						MAKE_NAME_UNIQUE(FindHitboxSetByName)
#define FindTransitionSequence					MAKE_NAME_UNIQUE(FindTransitionSequence)
#define fluidevent_t							MAKE_NAME_UNIQUE(fluidevent_t)
#define g_ActivityStrings						MAKE_NAME_UNIQUE(g_ActivityStrings)
#define g_bMovementOptimizations				MAKE_NAME_UNIQUE(g_bMovementOptimizations)
#define g_bTextMode								MAKE_NAME_UNIQUE(g_bTextMode)
#define g_bUsedWeaponSlots						MAKE_NAME_UNIQUE(g_bUsedWeaponSlots)
#define g_EntityCollisionHash					MAKE_NAME_UNIQUE(g_EntityCollisionHash)
#define g_EventList								MAKE_NAME_UNIQUE(g_EventList)
#define g_EventStrings							MAKE_NAME_UNIQUE(g_EventStrings)
#define g_FileSystemFactory						MAKE_NAME_UNIQUE(g_FileSystemFactory)
#define g_flLastBodyPitch						MAKE_NAME_UNIQUE(g_flLastBodyPitch)
#define g_flLastBodyYaw							MAKE_NAME_UNIQUE(g_flLastBodyYaw)
#define g_lateralBob							MAKE_NAME_UNIQUE(g_lateralBob)
#define g_nActivityListVersion					MAKE_NAME_UNIQUE(g_nActivityListVersion)
#define g_nEventListVersion						MAKE_NAME_UNIQUE(g_nEventListVersion)
#define g_pDataCache							MAKE_NAME_UNIQUE(g_pDataCache)
#define g_pEffects								MAKE_NAME_UNIQUE(g_pEffects)
#define g_pFileSystem							MAKE_NAME_UNIQUE(g_pFileSystem)
#define g_pGameMovement							MAKE_NAME_UNIQUE(g_pGameMovement)
#define g_pGameSaveRestoreBlockSet				MAKE_NAME_UNIQUE(g_pGameSaveRestoreBlockSet)
#define g_PhysDefaultObjectParams				MAKE_NAME_UNIQUE(g_PhysDefaultObjectParams)
#define g_PhysGameTrace							MAKE_NAME_UNIQUE(g_PhysGameTrace)
#define g_PhysObjSaveRestoreOps					MAKE_NAME_UNIQUE(g_PhysObjSaveRestoreOps)
#define g_PhysSaveRestoreBlockHandler			MAKE_NAME_UNIQUE(g_PhysSaveRestoreBlockHandler)
#define g_PhysWorldObject						MAKE_NAME_UNIQUE(g_PhysWorldObject)
#define g_pMaterialSystemHardwareConfig			MAKE_NAME_UNIQUE(g_pMaterialSystemHardwareConfig)
#define g_pMatSystemSurface						MAKE_NAME_UNIQUE(g_pMatSystemSurface)
#define g_pMDLCache								MAKE_NAME_UNIQUE(g_pMDLCache)
#define g_pModelNameLaser						MAKE_NAME_UNIQUE(g_pModelNameLaser)
#define g_pMoveData								MAKE_NAME_UNIQUE(g_pMoveData)
#define g_pPhysSaveRestoreManager				MAKE_NAME_UNIQUE(g_pPhysSaveRestoreManager)
#define g_pPredictionSystems					MAKE_NAME_UNIQUE(g_pPredictionSystems)
#define g_pShaderUtil							MAKE_NAME_UNIQUE(g_pShaderUtil)
#define g_pStringTableClientSideChoreoScenes	MAKE_NAME_UNIQUE(g_pStringTableClientSideChoreoScenes)
#define g_pStringTableInfoPanel					MAKE_NAME_UNIQUE(g_pStringTableInfoPanel)
#define g_pStringTableMaterials					MAKE_NAME_UNIQUE(g_pStringTableMaterials)
#define g_sModelIndexBloodDrop					MAKE_NAME_UNIQUE(g_sModelIndexBloodDrop)
#define g_sModelIndexBloodSpray					MAKE_NAME_UNIQUE(g_sModelIndexBloodSpray)
#define g_sModelIndexBubbles					MAKE_NAME_UNIQUE(g_sModelIndexBubbles)
#define g_sModelIndexFireball					MAKE_NAME_UNIQUE(g_sModelIndexFireball)
#define g_sModelIndexLaser						MAKE_NAME_UNIQUE(g_sModelIndexLaser)
#define g_sModelIndexLaserDot					MAKE_NAME_UNIQUE(g_sModelIndexLaserDot)
#define g_sModelIndexSmoke						MAKE_NAME_UNIQUE(g_sModelIndexSmoke)
#define g_sModelIndexWExplosion					MAKE_NAME_UNIQUE(g_sModelIndexWExplosion)
#define g_SolidSetup							MAKE_NAME_UNIQUE(g_SolidSetup)
#define g_StringTableGameRules					MAKE_NAME_UNIQUE(g_StringTableGameRules)
#define g_verticalBob							MAKE_NAME_UNIQUE(g_verticalBob)
#define gameeventmanager						MAKE_NAME_UNIQUE(gameeventmanager)
#define GameStringSystem						MAKE_NAME_UNIQUE(GameStringSystem)
#define gameuifuncs								MAKE_NAME_UNIQUE(gameuifuncs)
#define GetAnimationEvent						MAKE_NAME_UNIQUE(GetAnimationEvent)
#define GetAttachmentLocalSpace					MAKE_NAME_UNIQUE(GetAttachmentLocalSpace)
#define GetBodygroup							MAKE_NAME_UNIQUE(GetBodygroup)
#define GetBodygroupCount						MAKE_NAME_UNIQUE(GetBodygroupCount)
#define GetBodygroupName						MAKE_NAME_UNIQUE(GetBodygroupName)
#define GetEntitySaveRestoreBlockHandler		MAKE_NAME_UNIQUE(GetEntitySaveRestoreBlockHandler)
#define GetEntitySaveUtils						MAKE_NAME_UNIQUE(GetEntitySaveUtils)
#define GetEventIndexForSequence				MAKE_NAME_UNIQUE(GetEventIndexForSequence)
#define GetEyePosition							MAKE_NAME_UNIQUE(GetEyePosition)
#define GetHitboxSetCount						MAKE_NAME_UNIQUE(GetHitboxSetCount)
#define GetHitboxSetName						MAKE_NAME_UNIQUE(GetHitboxSetName)
#define GetInvalidWeaponInfoHandle				MAKE_NAME_UNIQUE(GetInvalidWeaponInfoHandle)
#define GetMaterialIndex						MAKE_NAME_UNIQUE(GetMaterialIndex)
#define GetMaterialNameFromIndex				MAKE_NAME_UNIQUE(GetMaterialNameFromIndex)
#define GetNumBodyGroups						MAKE_NAME_UNIQUE(GetNumBodyGroups)
#define GetPhysObjSaveRestoreOps				MAKE_NAME_UNIQUE(GetPhysObjSaveRestoreOps)
#define GetPhysSaveRestoreBlockHandler			MAKE_NAME_UNIQUE(GetPhysSaveRestoreBlockHandler)
#define GetSequenceActivity						MAKE_NAME_UNIQUE(GetSequenceActivity)
#define GetSequenceActivityName					MAKE_NAME_UNIQUE(GetSequenceActivityName)
#define GetSequenceFlags						MAKE_NAME_UNIQUE(GetSequenceFlags)
#define GetSequenceLinearMotion					MAKE_NAME_UNIQUE(GetSequenceLinearMotion)
#define GetSequenceName							MAKE_NAME_UNIQUE(GetSequenceName)
#define GetSoundSaveRestoreOps					MAKE_NAME_UNIQUE(GetSoundSaveRestoreOps)
#define GetWindspeedAtTime						MAKE_NAME_UNIQUE(GetWindspeedAtTime)
#define groundlinksallocated					MAKE_NAME_UNIQUE(groundlinksallocated)
#define HasAnimationEventOfType					MAKE_NAME_UNIQUE(HasAnimationEventOfType)
#define IGameSystem								MAKE_NAME_UNIQUE(IGameSystem)
#define IGameSystemPerFrame						MAKE_NAME_UNIQUE(IGameSystemPerFrame)
#define ik										MAKE_NAME_UNIQUE(ik)
#define IMoveHelper								MAKE_NAME_UNIQUE(IMoveHelper)
#define ImpulseScale							MAKE_NAME_UNIQUE(ImpulseScale)
#define IndexModelSequences						MAKE_NAME_UNIQUE(IndexModelSequences)
#define InitPose								MAKE_NAME_UNIQUE(InitPose)
#define InterfaceReg							MAKE_NAME_UNIQUE(InterfaceReg)
#define IntervalDistance						MAKE_NAME_UNIQUE(IntervalDistance)
#define IntervalTimer							MAKE_NAME_UNIQUE(IntervalTimer)
#define IsInPrediction							MAKE_NAME_UNIQUE(IsInPrediction)
#define IsValidEntityPointer					MAKE_NAME_UNIQUE(IsValidEntityPointer)
#define linksallocated							MAKE_NAME_UNIQUE(linksallocated)
#define LookupActivity							MAKE_NAME_UNIQUE(LookupActivity)
#define LookupSequence							MAKE_NAME_UNIQUE(LookupSequence)
#define LookupWeaponInfoSlot					MAKE_NAME_UNIQUE(LookupWeaponInfoSlot)
#define m_flLastMoveYaw							MAKE_NAME_UNIQUE(m_flLastMoveYaw)
#define MainViewOrigin							MAKE_NAME_UNIQUE(MainViewOrigin)
#define MainViewForward							MAKE_NAME_UNIQUE(MainViewForward)
#define MainViewRight							MAKE_NAME_UNIQUE(MainViewRight)
#define MainViewUp								MAKE_NAME_UNIQUE(MainViewUp)
#if !defined(_SHARED_LIB)
#define materials								MAKE_NAME_UNIQUE(materials)
#else
#define materials								VguiMatSurface_materials // shared lib has no materials of own
#endif
#define mdlcache								MAKE_NAME_UNIQUE(mdlcache)
#define modelinfo								MAKE_NAME_UNIQUE(modelinfo)
#define modelrender								MAKE_NAME_UNIQUE(modelrender)
#define mstudioanimdesc_t						MAKE_NAME_UNIQUE(mstudioanimdesc_t)
#define mstudiomodel_t							MAKE_NAME_UNIQUE(mstudiomodel_t)
#define NDebugOverlay							MAKE_NAME_UNIQUE(NDebugOverlay)
#define networkstringtable						MAKE_NAME_UNIQUE(networkstringtable)
#define nexttoken								MAKE_NAME_UNIQUE(nexttoken)
#define partition								MAKE_NAME_UNIQUE(partition)
#define PassServerEntityFilter					MAKE_NAME_UNIQUE(PassServerEntityFilter)
#define PhysBlockHeader_t						MAKE_NAME_UNIQUE(PhysBlockHeader_t)
#define physcollision							MAKE_NAME_UNIQUE(physcollision)
#define PhysComputeSlideDirection				MAKE_NAME_UNIQUE(PhysComputeSlideDirection)
#define PhysCreateBbox							MAKE_NAME_UNIQUE(PhysCreateBbox)
#define PhysDisableEntityCollisions				MAKE_NAME_UNIQUE(PhysDisableEntityCollisions)
#define PhysDisableObjectCollisions				MAKE_NAME_UNIQUE(PhysDisableObjectCollisions)
#define PhysEnableEntityCollisions				MAKE_NAME_UNIQUE(PhysEnableEntityCollisions)
#define PhysEnableObjectCollisions				MAKE_NAME_UNIQUE(PhysEnableObjectCollisions)
#define physenv									MAKE_NAME_UNIQUE(physenv)
#define PhysForceClearVelocity					MAKE_NAME_UNIQUE(PhysForceClearVelocity)
#define PhysFrictionEffect						MAKE_NAME_UNIQUE(PhysFrictionEffect)
#define physgametrace							MAKE_NAME_UNIQUE(physgametrace)
#define PhysGetDefaultAABBSolid					MAKE_NAME_UNIQUE(PhysGetDefaultAABBSolid)
#define PhysHasContactWithOtherInDirection		MAKE_NAME_UNIQUE(PhysHasContactWithOtherInDirection)
#define physics									MAKE_NAME_UNIQUE(physics)
#define PhysicsGameSystem						MAKE_NAME_UNIQUE(PhysicsGameSystem)
#define physicssound							MAKE_NAME_UNIQUE(physicssound)
#define PhysObjectHeader_t						MAKE_NAME_UNIQUE(PhysObjectHeader_t)
#define PhysParseSurfaceData					MAKE_NAME_UNIQUE(PhysParseSurfaceData)
#define physprops								MAKE_NAME_UNIQUE(physprops)
#define PhysRecheckObjectPair					MAKE_NAME_UNIQUE(PhysRecheckObjectPair)
#define PrecacheFileWeaponInfoDatabase			MAKE_NAME_UNIQUE(PrecacheFileWeaponInfoDatabase)
#define PrecacheMaterial						MAKE_NAME_UNIQUE(PrecacheMaterial)
#define predictables							MAKE_NAME_UNIQUE(predictables)
#define QuaternionAccumulate					MAKE_NAME_UNIQUE(QuaternionAccumulate)
#define QuaternionMA							MAKE_NAME_UNIQUE(QuaternionMA)
#define QuaternionSM							MAKE_NAME_UNIQUE(QuaternionSM)
#define RagdollActivate							MAKE_NAME_UNIQUE(RagdollActivate)
#define RagdollApplyAnimationAsVelocity			MAKE_NAME_UNIQUE(RagdollApplyAnimationAsVelocity)
#define RagdollComputeExactBbox					MAKE_NAME_UNIQUE(RagdollComputeExactBbox)
#define RagdollCreate							MAKE_NAME_UNIQUE(RagdollCreate)
#define RagdollDestroy							MAKE_NAME_UNIQUE(RagdollDestroy)
#define RagdollExtractBoneIndices				MAKE_NAME_UNIQUE(RagdollExtractBoneIndices)
#define RagdollGetBoneMatrix					MAKE_NAME_UNIQUE(RagdollGetBoneMatrix)
#define RagdollIsAsleep							MAKE_NAME_UNIQUE(RagdollIsAsleep)
#define RagdollSetupAnimatedFriction			MAKE_NAME_UNIQUE(RagdollSetupAnimatedFriction)
#define RagdollSetupCollisions					MAKE_NAME_UNIQUE(RagdollSetupCollisions)
#define CopyPackedAnimatedFriction				MAKE_NAME_UNIQUE(CopyPackedAnimatedFriction)
#define random									MAKE_NAME_UNIQUE(random)
#define RandomInterval							MAKE_NAME_UNIQUE(RandomInterval)
#define ReadEncryptedKVFile						MAKE_NAME_UNIQUE(ReadEncryptedKVFile)
#define ReadInterval							MAKE_NAME_UNIQUE(ReadInterval)
#define ReadUsercmd								MAKE_NAME_UNIQUE(ReadUsercmd)
#define ReadWeaponDataFromFileForSlot			MAKE_NAME_UNIQUE(ReadWeaponDataFromFileForSlot)
#define RecvPropUtlVector						MAKE_NAME_UNIQUE(RecvPropUtlVector)
#define RecvProxy_UtlVectorElement				MAKE_NAME_UNIQUE(RecvProxy_UtlVectorElement)
#define RecvProxy_UtlVectorElement_DataTable	MAKE_NAME_UNIQUE(RecvProxy_UtlVectorElement_DataTable)
#define RecvProxy_UtlVectorLength				MAKE_NAME_UNIQUE(RecvProxy_UtlVectorLength)
#define RegisterUserMessages					MAKE_NAME_UNIQUE(RegisterUserMessages)
#define RemapAngleRange							MAKE_NAME_UNIQUE(RemapAngleRange)
#define ResetActivityIndexes					MAKE_NAME_UNIQUE(ResetActivityIndexes)
#define ResetEventIndexes						MAKE_NAME_UNIQUE(ResetEventIndexes)
#define ResetWindspeed							MAKE_NAME_UNIQUE(ResetWindspeed)
#define s_pInterfaceRegs						MAKE_NAME_UNIQUE(s_pInterfaceRegs)
#define SaveInit								MAKE_NAME_UNIQUE(SaveInit)
#define SaveRestoreBlockHeader_t				MAKE_NAME_UNIQUE(SaveRestoreBlockHeader_t)
#define ScaleBones								MAKE_NAME_UNIQUE(ScaleBones)
#define Scene_Printf							MAKE_NAME_UNIQUE(Scene_Printf)
#define SelectHeaviestSequence					MAKE_NAME_UNIQUE(SelectHeaviestSequence)
#define SelectWeightedSequence					MAKE_NAME_UNIQUE(SelectWeightedSequence)
#define SendPropUtlVector						MAKE_NAME_UNIQUE(SendPropUtlVector)
#define SendProxy_LengthTable					MAKE_NAME_UNIQUE(SendProxy_LengthTable)
#define SendProxy_UtlVectorElement				MAKE_NAME_UNIQUE(SendProxy_UtlVectorElement)
#define SendProxy_UtlVectorElement_DataTable	MAKE_NAME_UNIQUE(SendProxy_UtlVectorElement_DataTable)
#define SendProxy_UtlVectorLength				MAKE_NAME_UNIQUE(SendProxy_UtlVectorLength)
#define SENTENCEG_Lookup						MAKE_NAME_UNIQUE(SENTENCEG_Lookup)
#define SetActivityForSequence					MAKE_NAME_UNIQUE(SetActivityForSequence)
#define SetBodygroup							MAKE_NAME_UNIQUE(SetBodygroup)
#define SetEventIndexForSequence				MAKE_NAME_UNIQUE(SetEventIndexForSequence)
#define SetupSingleBoneMatrix					MAKE_NAME_UNIQUE(SetupSingleBoneMatrix)
#define SharedRandomAngle						MAKE_NAME_UNIQUE(SharedRandomAngle)
#define SharedRandomFloat						MAKE_NAME_UNIQUE(SharedRandomFloat)
#define SharedRandomInt							MAKE_NAME_UNIQUE(SharedRandomInt)
#define SharedRandomVector						MAKE_NAME_UNIQUE(SharedRandomVector)
#define SlerpBones								MAKE_NAME_UNIQUE(SlerpBones)
#define SolveBone								MAKE_NAME_UNIQUE(SolveBone)
#define SoundCommand_t							MAKE_NAME_UNIQUE(SoundCommand_t)
#define soundemitterbase						MAKE_NAME_UNIQUE(soundemitterbase)
#define SpawnBlood								MAKE_NAME_UNIQUE(SpawnBlood)
#define StandardFilterRules						MAKE_NAME_UNIQUE(StandardFilterRules)
#define Studio_AlignIKMatrix					MAKE_NAME_UNIQUE(Studio_AlignIKMatrix)
#define Studio_AnimMovement						MAKE_NAME_UNIQUE(Studio_AnimMovement)
#define Studio_AnimPosition						MAKE_NAME_UNIQUE(Studio_AnimPosition)
#define Studio_AnimVelocity						MAKE_NAME_UNIQUE(Studio_AnimVelocity)
#define Studio_BoneIndexByName					MAKE_NAME_UNIQUE(Studio_BoneIndexByName)
#define Studio_BuildMatrices					MAKE_NAME_UNIQUE(Studio_BuildMatrices)
#define Studio_CalcBoneToBoneTransform			MAKE_NAME_UNIQUE(Studio_CalcBoneToBoneTransform)
#define Studio_CPS								MAKE_NAME_UNIQUE(Studio_CPS)
#define Studio_CreateBoneCache					MAKE_NAME_UNIQUE(Studio_CreateBoneCache)
#define Studio_DestroyBoneCache					MAKE_NAME_UNIQUE(Studio_DestroyBoneCache)
#define Studio_Duration							MAKE_NAME_UNIQUE(Studio_Duration)
#define Studio_FindAnimDistance					MAKE_NAME_UNIQUE(Studio_FindAnimDistance)
#define Studio_FindAttachment					MAKE_NAME_UNIQUE(Studio_FindAttachment)
#define Studio_FindRandomAttachment				MAKE_NAME_UNIQUE(Studio_FindRandomAttachment)
#define Studio_FindSeqDistance					MAKE_NAME_UNIQUE(Studio_FindSeqDistance)
#define Studio_FPS								MAKE_NAME_UNIQUE(Studio_FPS)
#define Studio_GetController					MAKE_NAME_UNIQUE(Studio_GetController)
#define Studio_GetDefaultSurfaceProps			MAKE_NAME_UNIQUE(Studio_GetDefaultSurfaceProps)
#define Studio_GetKeyValueText					MAKE_NAME_UNIQUE(Studio_GetKeyValueText)
#define Studio_GetMass							MAKE_NAME_UNIQUE(Studio_GetMass)
#define Studio_GetPoseParameter					MAKE_NAME_UNIQUE(Studio_GetPoseParameter)
#define Studio_IKRuleWeight						MAKE_NAME_UNIQUE(Studio_IKRuleWeight)
#define Studio_IKShouldLatch					MAKE_NAME_UNIQUE(Studio_IKShouldLatch)
#define Studio_IKTail							MAKE_NAME_UNIQUE(Studio_IKTail)
#define Studio_InvalidateBoneCache				MAKE_NAME_UNIQUE(Studio_InvalidateBoneCache)
#define Studio_LocalPoseParameter				MAKE_NAME_UNIQUE(Studio_LocalPoseParameter)
#define Studio_MaxFrame							MAKE_NAME_UNIQUE(Studio_MaxFrame)
#define Studio_SeqMovement						MAKE_NAME_UNIQUE(Studio_SeqMovement)
#define Studio_SeqVelocity						MAKE_NAME_UNIQUE(Studio_SeqVelocity)
#define Studio_SetController					MAKE_NAME_UNIQUE(Studio_SetController)
#define Studio_SetPoseParameter					MAKE_NAME_UNIQUE(Studio_SetPoseParameter)
#define Studio_SolveIK							MAKE_NAME_UNIQUE(Studio_SolveIK)
#define studiohdr_t								MAKE_NAME_UNIQUE(studiohdr_t)
#define SURFACEPROP_MANIFEST_FILE				MAKE_NAME_UNIQUE(SURFACEPROP_MANIFEST_FILE)
#define Sys_GetFactory							MAKE_NAME_UNIQUE(Sys_GetFactory)
#define Sys_GetFactoryThis						MAKE_NAME_UNIQUE(Sys_GetFactoryThis)
#define Sys_LoadInterface						MAKE_NAME_UNIQUE(Sys_LoadInterface)
#define Sys_LoadModule							MAKE_NAME_UNIQUE(Sys_LoadModule)
#define Sys_UnloadModule						MAKE_NAME_UNIQUE(Sys_UnloadModule)
#define te										MAKE_NAME_UNIQUE(te)
#define TE_ArmorRicochet						MAKE_NAME_UNIQUE(TE_ArmorRicochet)
#define TE_BeamEntPoint							MAKE_NAME_UNIQUE(TE_BeamEntPoint)
#define TE_BeamEnts								MAKE_NAME_UNIQUE(TE_BeamEnts)
#define TE_BeamFollow							MAKE_NAME_UNIQUE(TE_BeamFollow)
#define TE_BeamLaser							MAKE_NAME_UNIQUE(TE_BeamLaser)
#define TE_BeamPoints							MAKE_NAME_UNIQUE(TE_BeamPoints)
#define TE_BeamRing								MAKE_NAME_UNIQUE(TE_BeamRing)
#define TE_BeamRingPoint						MAKE_NAME_UNIQUE(TE_BeamRingPoint)
#define TE_BeamSpline							MAKE_NAME_UNIQUE(TE_BeamSpline)
#define TE_BloodSprite							MAKE_NAME_UNIQUE(TE_BloodSprite)
#define TE_BloodStream							MAKE_NAME_UNIQUE(TE_BloodStream)
#define TE_BreakModel							MAKE_NAME_UNIQUE(TE_BreakModel)
#define TE_BSPDecal								MAKE_NAME_UNIQUE(TE_BSPDecal)
#define TE_Bubbles								MAKE_NAME_UNIQUE(TE_Bubbles)
#define TE_BubbleTrail							MAKE_NAME_UNIQUE(TE_BubbleTrail)
#define TE_Decal								MAKE_NAME_UNIQUE(TE_Decal)
#define TE_DispatchEffect						MAKE_NAME_UNIQUE(TE_DispatchEffect)
#define TE_Dust									MAKE_NAME_UNIQUE(TE_Dust)
#define TE_DynamicLight							MAKE_NAME_UNIQUE(TE_DynamicLight)
#define TE_EnergySplash							MAKE_NAME_UNIQUE(TE_EnergySplash)
#define TE_Explosion							MAKE_NAME_UNIQUE(TE_Explosion)
#define TE_FootprintDecal						MAKE_NAME_UNIQUE(TE_FootprintDecal)
#define TE_GaussExplosion						MAKE_NAME_UNIQUE(TE_GaussExplosion)
#define TE_GlowSprite							MAKE_NAME_UNIQUE(TE_GlowSprite)
#define TE_KillPlayerAttachments				MAKE_NAME_UNIQUE(TE_KillPlayerAttachments)
#define TE_LargeFunnel							MAKE_NAME_UNIQUE(TE_LargeFunnel)
#define TE_MetalSparks							MAKE_NAME_UNIQUE(TE_MetalSparks)
#define TE_MuzzleFlash							MAKE_NAME_UNIQUE(TE_MuzzleFlash)
#define TE_PlayerDecal							MAKE_NAME_UNIQUE(TE_PlayerDecal)
#define TE_ProjectDecal							MAKE_NAME_UNIQUE(TE_ProjectDecal)
#define TE_ShatterSurface						MAKE_NAME_UNIQUE(TE_ShatterSurface)
#define TE_ShowLine								MAKE_NAME_UNIQUE(TE_ShowLine)
#define TE_Smoke								MAKE_NAME_UNIQUE(TE_Smoke)
#define TE_Sparks								MAKE_NAME_UNIQUE(TE_Sparks)
#define TE_Sprite								MAKE_NAME_UNIQUE(TE_Sprite)
#define TE_SpriteSpray							MAKE_NAME_UNIQUE(TE_SpriteSpray)
#define TE_WorldDecal							MAKE_NAME_UNIQUE(TE_WorldDecal)
#define TempCreateInterface						MAKE_NAME_UNIQUE(TempCreateInterface)
#define touchevent_t							MAKE_NAME_UNIQUE(touchevent_t)
#define touchlink_t								MAKE_NAME_UNIQUE(touchlink_t)
#define UTIL_AngleDiff							MAKE_NAME_UNIQUE(UTIL_AngleDiff)
#define UTIL_BloodDrips							MAKE_NAME_UNIQUE(UTIL_BloodDrips)
#define UTIL_BloodImpact						MAKE_NAME_UNIQUE(UTIL_BloodImpact)
#define UTIL_Bubbles							MAKE_NAME_UNIQUE(UTIL_Bubbles)
#define UTIL_EmitAmbientSound					MAKE_NAME_UNIQUE(UTIL_EmitAmbientSound)
#define UTIL_FreeFile							MAKE_NAME_UNIQUE(UTIL_FreeFile)
#define UTIL_FunctionFromName					MAKE_NAME_UNIQUE(UTIL_FunctionFromName)
#define UTIL_FunctionToName						MAKE_NAME_UNIQUE(UTIL_FunctionToName)
#define UTIL_IsLowViolence						MAKE_NAME_UNIQUE(UTIL_IsLowViolence)
#define UTIL_LoadActivityRemapFile				MAKE_NAME_UNIQUE(UTIL_LoadActivityRemapFile)
#define UTIL_LoadFileForMe						MAKE_NAME_UNIQUE(UTIL_LoadFileForMe)
#define UTIL_PrecacheDecal						MAKE_NAME_UNIQUE(UTIL_PrecacheDecal)
#define UTIL_ScreenShake						MAKE_NAME_UNIQUE(UTIL_ScreenShake)
#define UTIL_ShouldShowBlood					MAKE_NAME_UNIQUE(UTIL_ShouldShowBlood)
#define UTIL_Smoke								MAKE_NAME_UNIQUE(UTIL_Smoke)
#define UTIL_StringToColor32					MAKE_NAME_UNIQUE(UTIL_StringToColor32)
#define UTIL_StringToFloatArray					MAKE_NAME_UNIQUE(UTIL_StringToFloatArray)
#define UTIL_StringToIntArray					MAKE_NAME_UNIQUE(UTIL_StringToIntArray)
#define UTIL_StringToVector						MAKE_NAME_UNIQUE(UTIL_StringToVector)
#define UTIL_Tracer								MAKE_NAME_UNIQUE(UTIL_Tracer)
#define UTIL_TranslateSoundName					MAKE_NAME_UNIQUE(UTIL_TranslateSoundName)
#define UTIL_VecToPitch							MAKE_NAME_UNIQUE(UTIL_VecToPitch)
#define UTIL_VecToYaw							MAKE_NAME_UNIQUE(UTIL_VecToYaw)
#define UTIL_WaterLevel							MAKE_NAME_UNIQUE(UTIL_WaterLevel)
#define UTIL_YawToVector						MAKE_NAME_UNIQUE(UTIL_YawToVector)
#define VerifySequenceIndex						MAKE_NAME_UNIQUE(VerifySequenceIndex)
#define VGui_CreateGlobalPanels					MAKE_NAME_UNIQUE(VGui_CreateGlobalPanels)
#define VGui_PostInit							MAKE_NAME_UNIQUE(VGui_PostInit)
#define VGui_Shutdown							MAKE_NAME_UNIQUE(VGui_Shutdown)
#define VGui_Startup							MAKE_NAME_UNIQUE(VGui_Startup)
#define W_Precache								MAKE_NAME_UNIQUE(W_Precache)
#define WriteUsercmd							MAKE_NAME_UNIQUE(WriteUsercmd)

#endif

#if defined(_STATIC_LINKED) && defined(_VGUI_DLL)
// unique these overloaded symbols to avoid static linking clash
// ensures locality to vguidll lib
#define scheme		vguidll_scheme
#define surface		vguidll_surface
#define system		vguidll_system
#define ivgui		vguidll_ivgui
#define filesystem	vguidll_filesystem
#define localize	vguidll_localize
#define ipanel		vguidll_ipanel
#endif

#endif