summaryrefslogtreecommitdiff
path: root/game/shared/precache_register.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/shared/precache_register.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/shared/precache_register.h')
-rw-r--r--game/shared/precache_register.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/game/shared/precache_register.h b/game/shared/precache_register.h
new file mode 100644
index 0000000..379949f
--- /dev/null
+++ b/game/shared/precache_register.h
@@ -0,0 +1,38 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef PRECACHE_REGISTER_H
+#define PRECACHE_REGISTER_H
+#pragma once
+
+
+// Use these macros to register something to be precached.
+#define PRECACHE_REGISTER_FN(functionName) static CPrecacheRegister precache_function_##functionName(functionName, 0);
+#define PRECACHE_WEAPON_REGISTER(className) static CPrecacheRegister precache_weapon_##className(&CPrecacheRegister::PrecacheFn_Other, #className)
+#define PRECACHE_REGISTER(className) static CPrecacheRegister precache_other_##className( &CPrecacheRegister::PrecacheFn_Other, #className)
+
+class CPrecacheRegister
+{
+public:
+
+ typedef void (*PrecacheFn)(void *pUser); // Prototype for a custom precache function.
+
+ CPrecacheRegister(PrecacheFn fn, const void *pUser);
+
+ PrecacheFn m_Fn;
+ void *m_pUser;
+ CPrecacheRegister *m_pNext;
+
+ static void Precache(); // Calls everything that has registered to precache.
+
+// Don't call these.
+public:
+ static void PrecacheFn_Other(void *pUser);
+};
+
+
+#endif // PRECACHE_REGISTER_H