mirror of
https://github.com/alliedmodders/metamod-source.git
synced 2025-01-19 08:52:34 +01:00
Fix linking errors with some compilers when MM:S plugins call function in tier1 interface.h. (#34)
This commit is contained in:
parent
6f2938b46c
commit
e770220590
@ -39,6 +39,10 @@
|
|||||||
#include <ISmmAPI.h>
|
#include <ISmmAPI.h>
|
||||||
#include <ISmmPluginExt.h>
|
#include <ISmmPluginExt.h>
|
||||||
|
|
||||||
|
#ifndef META_NO_HL2SDK
|
||||||
|
#include <tier1/interface.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
class IServerPluginCallbacks;
|
class IServerPluginCallbacks;
|
||||||
|
|
||||||
// Interface return status, binary-compatible with HL2SDK's IFACE_OK and IFACE_FAILED.
|
// 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
|
* you should not pass a pointer to your plugin's
|
||||||
* singleton.
|
* singleton.
|
||||||
*/
|
*/
|
||||||
#define PLUGIN_EXPOSE(name, var) \
|
#ifdef META_NO_HL2SDK
|
||||||
ISmmAPI *g_SMAPI = NULL; \
|
#define PL_EXPOSURE_FUNC(name, var) \
|
||||||
ISmmPlugin *g_PLAPI = NULL; \
|
|
||||||
PluginId g_PLID = (PluginId)0; \
|
|
||||||
SourceHook::ISourceHook *g_SHPtr = NULL; \
|
|
||||||
SMM_API void *PL_EXPOSURE(const char *name, int *code) { \
|
SMM_API void *PL_EXPOSURE(const char *name, int *code) { \
|
||||||
if (name && !strcmp(name, METAMOD_PLAPI_NAME)) { \
|
if (name && !strcmp(name, METAMOD_PLAPI_NAME)) { \
|
||||||
return static_cast<void *>(&var); \
|
return static_cast<void *>(&var); \
|
||||||
@ -451,6 +452,21 @@ using namespace SourceMM;
|
|||||||
return NULL; \
|
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
|
* @brief This should be in one of your header files, if you wish
|
||||||
|
Loading…
x
Reference in New Issue
Block a user