diff --git a/core/ISmmPlugin.h b/core/ISmmPlugin.h index a6fb061..a738929 100644 --- a/core/ISmmPlugin.h +++ b/core/ISmmPlugin.h @@ -39,6 +39,10 @@ #include #include +#ifndef META_NO_HL2SDK +#include +#endif + class IServerPluginCallbacks; // Interface return status, binary-compatible with HL2SDK's IFACE_OK and IFACE_FAILED. @@ -439,11 +443,8 @@ using namespace SourceMM; * you should not pass a pointer to your plugin's * singleton. */ -#define PLUGIN_EXPOSE(name, var) \ - ISmmAPI *g_SMAPI = NULL; \ - ISmmPlugin *g_PLAPI = NULL; \ - PluginId g_PLID = (PluginId)0; \ - SourceHook::ISourceHook *g_SHPtr = NULL; \ +#ifdef META_NO_HL2SDK +#define PL_EXPOSURE_FUNC(name, var) \ SMM_API void *PL_EXPOSURE(const char *name, int *code) { \ if (name && !strcmp(name, METAMOD_PLAPI_NAME)) { \ return static_cast(&var); \ @@ -451,6 +452,21 @@ using namespace SourceMM; return NULL; \ } +#else +// First param should be actual classname, not iface name, but we don't have that and it doesn't matter here. +#define PL_EXPOSURE_FUNC(name, var) EXPOSE_SINGLE_INTERFACE_GLOBALVAR(ISmmPlugin, ISmmPlugin, METAMOD_PLAPI_NAME, var); +#endif + +#define PLUGIN_EXPOSE(name, var) \ + ISmmAPI *g_SMAPI = NULL; \ + ISmmPlugin *g_PLAPI = NULL; \ + PluginId g_PLID = (PluginId)0; \ + SourceHook::ISourceHook *g_SHPtr = NULL; \ + PL_EXPOSURE_FUNC(name, var) + + + + /** * @brief This should be in one of your header files, if you wish