SourceMod SDK
1.7
|
Defines the interface for loading/unloading/managing extensions. More...
Go to the source code of this file.
Classes | |
class | SourceMod::IExtension |
Encapsulates an IExtensionInterface and its dependencies. More... | |
class | SourceMod::IExtensionInterface |
The interface an extension must expose. More... | |
class | SourceMod::IExtensionManager |
Manages the loading/unloading of extensions. More... | |
Macros | |
#define | SMINTERFACE_EXTENSIONAPI_VERSION 8 |
Version code of the IExtensionInterface API itself. More... | |
#define | SOURCEMOD_INTERFACE_EXTENSIONS "SM_ExtensionManager" |
Returned via OnMetamodQuery() to get an IExtensionManager pointer. | |
#define | SOURCEMOD_NOTICE_EXTENSIONS "SM_ExtensionsAttachable" |
Fired through OnMetamodQuery() to notify plugins that SourceMod is loaded. More... | |
#define | SMINTERFACE_EXTENSIONMANAGER_NAME "IExtensionManager" |
#define | SMINTERFACE_EXTENSIONMANAGER_VERSION 2 |
#define | SM_IFACEPAIR(name) SMINTERFACE_##name##_NAME, SMINTERFACE_##name##_VERSION |
#define | SM_FIND_IFACE_OR_FAIL(prefix, variable, errbuf, errsize) |
#define | SM_FIND_IFACE(prefix, variable) sharesys->RequestInterface(SM_IFACEPAIR(prefix), myself, (SMInterface **)&variable); |
Typedefs | |
typedef void * | SourceMod::ITERATOR |
Defines the interface for loading/unloading/managing extensions.
SourceMod
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3.0, as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
As a special exception, AlliedModders LLC gives you permission to link the code of this program (as well as its derivative works) to "Half-Life 2," the "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software by the Valve Corporation. You must obey the GNU General Public License in all respects for all other code used. Additionally, AlliedModders LLC grants this exception to all derivative works. AlliedModders LLC defines further exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007), or http://www.sourcemod.net/license.php.
Version: $Id$
#define SM_FIND_IFACE_OR_FAIL | ( | prefix, | |
variable, | |||
errbuf, | |||
errsize | |||
) |
#define SMINTERFACE_EXTENSIONAPI_VERSION 8 |
Version code of the IExtensionInterface API itself.
Note: This is bumped when IShareSys is changed, because IShareSys itself is not versioned.
V6 - added TestFeature() to IShareSys. V7 - added OnDependenciesDropped() to IExtensionInterface. V8 - added OnCoreMapEnd() to IExtensionInterface.
#define SOURCEMOD_NOTICE_EXTENSIONS "SM_ExtensionsAttachable" |
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.