added more "remote extension" stuff
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401661
This commit is contained in:
parent
11c5ce6996
commit
e425558f3f
@ -33,6 +33,7 @@
|
|||||||
#include "sourcemm_api.h"
|
#include "sourcemm_api.h"
|
||||||
#include "sm_version.h"
|
#include "sm_version.h"
|
||||||
#include "Logger.h"
|
#include "Logger.h"
|
||||||
|
#include "ExtensionSys.h"
|
||||||
#include "concmd_cleaner.h"
|
#include "concmd_cleaner.h"
|
||||||
#include "compat_wrappers.h"
|
#include "compat_wrappers.h"
|
||||||
|
|
||||||
@ -219,3 +220,21 @@ void SourceMod_Core::OnPluginUnload(PluginId id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void *SourceMod_Core::OnMetamodQuery(const char *iface, int *ret)
|
||||||
|
{
|
||||||
|
void *ptr = NULL;
|
||||||
|
|
||||||
|
if (strcmp(iface, SOURCEMOD_INTERFACE_EXTENSIONS) == 0)
|
||||||
|
{
|
||||||
|
ptr = (IExtensionManager *)&g_Extensions;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret != NULL)
|
||||||
|
{
|
||||||
|
*ret = (ptr == NULL) ? IFACE_FAILED : IFACE_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -79,6 +79,7 @@ public:
|
|||||||
#else
|
#else
|
||||||
void OnPluginUnload(PluginId id);
|
void OnPluginUnload(PluginId id);
|
||||||
#endif
|
#endif
|
||||||
|
void *OnMetamodQuery(const char *iface, int *ret);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern SourceMod_Core g_SourceMod_Core;
|
extern SourceMod_Core g_SourceMod_Core;
|
||||||
@ -105,3 +106,4 @@ extern int vsp_version;
|
|||||||
PLUGIN_GLOBALVARS();
|
PLUGIN_GLOBALVARS();
|
||||||
|
|
||||||
#endif //_INCLUDE_SOURCEMOD_MM_API_H_
|
#endif //_INCLUDE_SOURCEMOD_MM_API_H_
|
||||||
|
|
||||||
|
@ -406,6 +406,9 @@ void SourceModBase::DoGlobalPluginLoads()
|
|||||||
/* Load any auto extensions */
|
/* Load any auto extensions */
|
||||||
g_Extensions.TryAutoload();
|
g_Extensions.TryAutoload();
|
||||||
|
|
||||||
|
/* Fire the extensions ready message */
|
||||||
|
g_SMAPI->MetaFactory(SOURCEMOD_NOTICE_EXTENSIONS, NULL, NULL);
|
||||||
|
|
||||||
/* Load any game extension */
|
/* Load any game extension */
|
||||||
const char *game_ext;
|
const char *game_ext;
|
||||||
if ((game_ext = g_pGameConf->GetKeyValue("GameExtension")) != NULL)
|
if ((game_ext = g_pGameConf->GetKeyValue("GameExtension")) != NULL)
|
||||||
|
@ -288,6 +288,24 @@ namespace SourceMod
|
|||||||
virtual const char *GetExtensionDateString() =0;
|
virtual const char *GetExtensionDateString() =0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returned via OnMetamodQuery() to get an IExtensionManager pointer.
|
||||||
|
*/
|
||||||
|
#define SOURCEMOD_INTERFACE_EXTENSIONS "SM_ExtensionManager"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Fired through OnMetamodQuery() to notify plugins that SourceMod is
|
||||||
|
* loaded.
|
||||||
|
*
|
||||||
|
* Plugins should not return an interface pointer or IFACE_OK, instead,
|
||||||
|
* they should attach as needed by searching for SOURCEMOD_INTERFACE_EXTENSIONS.
|
||||||
|
*
|
||||||
|
* This may be fired more than once; if already attached, an extension should
|
||||||
|
* not attempt to re-attach. The purpose of this is to notify Metamod:Source
|
||||||
|
* plugins which load after SourceMod loads.
|
||||||
|
*/
|
||||||
|
#define SOURCEMOD_NOTICE_EXTENSIONS "SM_ExtensionsAttachable"
|
||||||
|
|
||||||
#define SMINTERFACE_EXTENSIONMANAGER_NAME "IExtensionManager"
|
#define SMINTERFACE_EXTENSIONMANAGER_NAME "IExtensionManager"
|
||||||
#define SMINTERFACE_EXTENSIONMANAGER_VERSION 2
|
#define SMINTERFACE_EXTENSIONMANAGER_VERSION 2
|
||||||
|
|
||||||
@ -389,7 +407,8 @@ namespace SourceMod
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define SM_FIND_IFACE(prefix, variable) \
|
#define SM_FIND_IFACE(prefix, variable) \
|
||||||
sharesys->RequestInterface(SM_IFACEPAIR(prefix), myself, (SMInterface **)&variable));
|
sharesys->RequestInterface(SM_IFACEPAIR(prefix), myself, (SMInterface **)&variable);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif //_INCLUDE_SOURCEMOD_MODULE_INTERFACE_H_
|
#endif //_INCLUDE_SOURCEMOD_MODULE_INTERFACE_H_
|
||||||
|
`
|
||||||
|
Loading…
Reference in New Issue
Block a user