diff options
Diffstat (limited to 'sdk')
| -rw-r--r-- | sdk/smsdk_config.h | 83 | ||||
| -rw-r--r-- | sdk/smsdk_ext.cpp | 465 | ||||
| -rw-r--r-- | sdk/smsdk_ext.h | 339 | 
3 files changed, 0 insertions, 887 deletions
| diff --git a/sdk/smsdk_config.h b/sdk/smsdk_config.h deleted file mode 100644 index 8cefb2e..0000000 --- a/sdk/smsdk_config.h +++ /dev/null @@ -1,83 +0,0 @@ -/** - * vim: set ts=4 : - * ============================================================================= - * SourceMod cURL Extension - * Copyright (C) 2004-2008 AlliedModders LLC.  All rights reserved. - * ============================================================================= - * - * 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$ - */ - -#ifndef _INCLUDE_SOURCEMOD_EXTENSION_CONFIG_H_ -#define _INCLUDE_SOURCEMOD_EXTENSION_CONFIG_H_ - -/** - * @file smsdk_config.h - * @brief Contains macros for configuring basic extension information. - */ - -/* Basic information exposed publicly */ -#define SMEXT_CONF_NAME			"cURL Extension" -#define SMEXT_CONF_DESCRIPTION	"cURL Extension" -#define SMEXT_CONF_VERSION		"1.3.0.0" -#define SMEXT_CONF_AUTHOR		"ben" -#define SMEXT_CONF_URL			"http://www.ZombieX2.net/" -#define SMEXT_CONF_LOGTAG		"cURL" -#define SMEXT_CONF_LICENSE		"GPL" -#define SMEXT_CONF_DATESTRING	__DATE__ - -/**  - * @brief Exposes plugin's main interface. - */ -#define SMEXT_LINK(name) SDKExtension *g_pExtensionIface = name; - -/** - * @brief Sets whether or not this plugin required Metamod. - * NOTE: Uncomment to enable, comment to disable. - */ - -//#define SMEXT_CONF_METAMOD		 - - -/** Enable interfaces you want to use here by uncommenting lines */ -//#define SMEXT_ENABLE_FORWARDSYS -#define SMEXT_ENABLE_HANDLESYS -//#define SMEXT_ENABLE_PLAYERHELPERS -//#define SMEXT_ENABLE_DBMANAGER -//#define SMEXT_ENABLE_GAMECONF -//#define SMEXT_ENABLE_MEMUTILS -//#define SMEXT_ENABLE_GAMEHELPERS -//#define SMEXT_ENABLE_TIMERSYS -#define SMEXT_ENABLE_THREADER -//#define SMEXT_ENABLE_LIBSYS -//#define SMEXT_ENABLE_MENUS -//#define SMEXT_ENABLE_ADTFACTORY -//#define SMEXT_ENABLE_PLUGINSYS -//#define SMEXT_ENABLE_ADMINSYS -//#define SMEXT_ENABLE_TEXTPARSERS -//#define SMEXT_ENABLE_USERMSGS -//#define SMEXT_ENABLE_TRANSLATOR -//#define SMEXT_ENABLE_NINVOKE - -#endif // _INCLUDE_SOURCEMOD_EXTENSION_CONFIG_H_ diff --git a/sdk/smsdk_ext.cpp b/sdk/smsdk_ext.cpp deleted file mode 100644 index d9c49d8..0000000 --- a/sdk/smsdk_ext.cpp +++ /dev/null @@ -1,465 +0,0 @@ -/** - * vim: set ts=4 : - * ============================================================================= - * SourceMod Base Extension Code - * Copyright (C) 2004-2008 AlliedModders LLC.  All rights reserved. - * ============================================================================= - * - * 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$ - */ - -#include <stdio.h> -#include <stdlib.h> -#include "smsdk_ext.h" - -/** - * @file smsdk_ext.cpp - * @brief Contains wrappers for making Extensions easier to write. - */ - -IExtension *myself = NULL;				/**< Ourself */ -IShareSys *g_pShareSys = NULL;			/**< Share system */ -IShareSys *sharesys = NULL;				/**< Share system */ -ISourceMod *g_pSM = NULL;				/**< SourceMod helpers */ -ISourceMod *smutils = NULL;				/**< SourceMod helpers */ - -#if defined SMEXT_ENABLE_FORWARDSYS -IForwardManager *g_pForwards = NULL;	/**< Forward system */ -IForwardManager *forwards = NULL;		/**< Forward system */ -#endif -#if defined SMEXT_ENABLE_HANDLESYS -IHandleSys *g_pHandleSys = NULL;		/**< Handle system */ -IHandleSys *handlesys = NULL;			/**< Handle system */ -#endif -#if defined SMEXT_ENABLE_PLAYERHELPERS -IPlayerManager *playerhelpers = NULL;	/**< Player helpers */ -#endif //SMEXT_ENABLE_PLAYERHELPERS -#if defined SMEXT_ENABLE_DBMANAGER -IDBManager *dbi = NULL;					/**< DB Manager */ -#endif //SMEXT_ENABLE_DBMANAGER -#if defined SMEXT_ENABLE_GAMECONF -IGameConfigManager *gameconfs = NULL;	/**< Game config manager */ -#endif //SMEXT_ENABLE_DBMANAGER -#if defined SMEXT_ENABLE_MEMUTILS -IMemoryUtils *memutils = NULL; -#endif //SMEXT_ENABLE_DBMANAGER -#if defined SMEXT_ENABLE_GAMEHELPERS -IGameHelpers *gamehelpers = NULL; -#endif -#if defined SMEXT_ENABLE_TIMERSYS -ITimerSystem *timersys = NULL; -#endif -#if defined SMEXT_ENABLE_ADTFACTORY -IADTFactory *adtfactory = NULL; -#endif -#if defined SMEXT_ENABLE_THREADER -IThreader *threader = NULL; -#endif -#if defined SMEXT_ENABLE_LIBSYS -ILibrarySys *libsys = NULL; -#endif -#if defined SMEXT_ENABLE_PLUGINSYS -SourceMod::IPluginManager *plsys; -#endif -#if defined SMEXT_ENABLE_MENUS -IMenuManager *menus = NULL; -#endif -#if defined SMEXT_ENABLE_ADMINSYS -IAdminSystem *adminsys = NULL; -#endif -#if defined SMEXT_ENABLE_TEXTPARSERS -ITextParsers *textparsers = NULL; -#endif -#if defined SMEXT_ENABLE_USERMSGS -IUserMessages *usermsgs = NULL; -#endif -#if defined SMEXT_ENABLE_TRANSLATOR -ITranslator *translator = NULL; -#endif -#if defined SMEXT_ENABLE_NINVOKE -INativeInterface *ninvoke = NULL; -#endif - -/** Exports the main interface */ -PLATFORM_EXTERN_C IExtensionInterface *GetSMExtAPI() -{ -	return g_pExtensionIface; -} - -SDKExtension::SDKExtension() -{ -#if defined SMEXT_CONF_METAMOD -	m_SourceMMLoaded = false; -	m_WeAreUnloaded = false; -	m_WeGotPauseChange = false; -#endif -} - -bool SDKExtension::OnExtensionLoad(IExtension *me, IShareSys *sys, char *error, size_t maxlength, bool late) -{ -	g_pShareSys = sharesys = sys; -	myself = me; - -#if defined SMEXT_CONF_METAMOD -	m_WeAreUnloaded = true; - -	if (!m_SourceMMLoaded) -	{ -		if (error) -		{ -			snprintf(error, maxlength, "Metamod attach failed"); -		} -		return false; -	} -#endif -	SM_GET_IFACE(SOURCEMOD, g_pSM); -	smutils = g_pSM; -#if defined SMEXT_ENABLE_HANDLESYS -	SM_GET_IFACE(HANDLESYSTEM, g_pHandleSys); -	handlesys = g_pHandleSys; -#endif -#if defined SMEXT_ENABLE_FORWARDSYS -	SM_GET_IFACE(FORWARDMANAGER, g_pForwards); -	forwards = g_pForwards; -#endif -#if defined SMEXT_ENABLE_PLAYERHELPERS -	SM_GET_IFACE(PLAYERMANAGER, playerhelpers); -#endif -#if defined SMEXT_ENABLE_DBMANAGER -	SM_GET_IFACE(DBI, dbi); -#endif -#if defined SMEXT_ENABLE_GAMECONF -	SM_GET_IFACE(GAMECONFIG, gameconfs); -#endif -#if defined SMEXT_ENABLE_MEMUTILS -	SM_GET_IFACE(MEMORYUTILS, memutils); -#endif -#if defined SMEXT_ENABLE_GAMEHELPERS -	SM_GET_IFACE(GAMEHELPERS, gamehelpers); -#endif -#if defined SMEXT_ENABLE_TIMERSYS -	SM_GET_IFACE(TIMERSYS, timersys); -#endif -#if defined SMEXT_ENABLE_ADTFACTORY -	SM_GET_IFACE(ADTFACTORY, adtfactory); -#endif -#if defined SMEXT_ENABLE_THREADER -	SM_GET_IFACE(THREADER, threader); -#endif -#if defined SMEXT_ENABLE_LIBSYS -	SM_GET_IFACE(LIBRARYSYS, libsys); -#endif -#if defined SMEXT_ENABLE_PLUGINSYS -	SM_GET_IFACE(PLUGINSYSTEM, plsys); -#endif -#if defined SMEXT_ENABLE_MENUS -	SM_GET_IFACE(MENUMANAGER, menus); -#endif -#if defined SMEXT_ENABLE_ADMINSYS -	SM_GET_IFACE(ADMINSYS, adminsys); -#endif -#if defined SMEXT_ENABLE_TEXTPARSERS -	SM_GET_IFACE(TEXTPARSERS, textparsers); -#endif -#if defined SMEXT_ENABLE_USERMSGS -	SM_GET_IFACE(USERMSGS, usermsgs); -#endif -#if defined SMEXT_ENABLE_TRANSLATOR -	SM_GET_IFACE(TRANSLATOR, translator); -#endif - -	if (SDK_OnLoad(error, maxlength, late)) -	{ -#if defined SMEXT_CONF_METAMOD -		m_WeAreUnloaded = true; -#endif -		return true; -	} - -	return false; -} - -bool SDKExtension::IsMetamodExtension() -{ -#if defined SMEXT_CONF_METAMOD -	return true; -#else -	return false; -#endif -} - -void SDKExtension::OnExtensionPauseChange(bool state) -{ -#if defined SMEXT_CONF_METAMOD -	m_WeGotPauseChange = true; -#endif -	SDK_OnPauseChange(state); -} - -void SDKExtension::OnExtensionsAllLoaded() -{ -	SDK_OnAllLoaded(); -} - -void SDKExtension::OnExtensionUnload() -{ -#if defined SMEXT_CONF_METAMOD -	m_WeAreUnloaded = true; -#endif -	SDK_OnUnload(); -} - -const char *SDKExtension::GetExtensionAuthor() -{ -	return SMEXT_CONF_AUTHOR; -} - -const char *SDKExtension::GetExtensionDateString() -{ -	return SMEXT_CONF_DATESTRING; -} - -const char *SDKExtension::GetExtensionDescription() -{ -	return SMEXT_CONF_DESCRIPTION; -} - -const char *SDKExtension::GetExtensionVerString() -{ -	return SMEXT_CONF_VERSION; -} - -const char *SDKExtension::GetExtensionName() -{ -	return SMEXT_CONF_NAME; -} - -const char *SDKExtension::GetExtensionTag() -{ -	return SMEXT_CONF_LOGTAG; -} - -const char *SDKExtension::GetExtensionURL() -{ -	return SMEXT_CONF_URL; -} - -bool SDKExtension::SDK_OnLoad(char *error, size_t maxlength, bool late) -{ -	return true; -} - -void SDKExtension::SDK_OnUnload() -{ -} - -void SDKExtension::SDK_OnPauseChange(bool paused) -{ -} - -void SDKExtension::SDK_OnAllLoaded() -{ -} - -#if defined SMEXT_CONF_METAMOD - -PluginId g_PLID = 0;						/**< Metamod plugin ID */ -ISmmPlugin *g_PLAPI = NULL;					/**< Metamod plugin API */ -SourceHook::ISourceHook *g_SHPtr = NULL;	/**< SourceHook pointer */ -ISmmAPI *g_SMAPI = NULL;					/**< SourceMM API pointer */ - -IVEngineServer *engine = NULL;				/**< IVEngineServer pointer */ -IServerGameDLL *gamedll = NULL;				/**< IServerGameDLL pointer */ - -/** Exposes the extension to Metamod */ -SMM_API void *PL_EXPOSURE(const char *name, int *code) -{ -#if defined METAMOD_PLAPI_VERSION -	if (name && !strcmp(name, METAMOD_PLAPI_NAME)) -#else -	if (name && !strcmp(name, PLAPI_NAME)) -#endif -	{ -		if (code) -		{ -			*code = IFACE_OK; -		} -		return static_cast<void *>(g_pExtensionIface); -	} - -	if (code) -	{ -		*code = IFACE_FAILED; -	} - -	return NULL; -} - -bool SDKExtension::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late) -{ -	PLUGIN_SAVEVARS(); - -#if !defined METAMOD_PLAPI_VERSION -	GET_V_IFACE_ANY(serverFactory, gamedll, IServerGameDLL, INTERFACEVERSION_SERVERGAMEDLL); -	GET_V_IFACE_CURRENT(engineFactory, engine, IVEngineServer, INTERFACEVERSION_VENGINESERVER); -#else -	GET_V_IFACE_ANY(GetServerFactory, gamedll, IServerGameDLL, INTERFACEVERSION_SERVERGAMEDLL); -	GET_V_IFACE_CURRENT(GetEngineFactory, engine, IVEngineServer, INTERFACEVERSION_VENGINESERVER); -#endif - -	m_SourceMMLoaded = true; - -	return SDK_OnMetamodLoad(ismm, error, maxlen, late); -} - -bool SDKExtension::Unload(char *error, size_t maxlen) -{ -	if (!m_WeAreUnloaded) -	{ -		if (error) -		{ -			snprintf(error, maxlen, "This extension must be unloaded by SourceMod."); -		} -		return false; -	} - -	return SDK_OnMetamodUnload(error, maxlen); -} - -bool SDKExtension::Pause(char *error, size_t maxlen) -{ -	if (!m_WeGotPauseChange) -	{ -		if (error) -		{ -			snprintf(error, maxlen, "This extension must be paused by SourceMod."); -		} -		return false; -	} - -	m_WeGotPauseChange = false; - -	return SDK_OnMetamodPauseChange(true, error, maxlen); -} - -bool SDKExtension::Unpause(char *error, size_t maxlen) -{ -	if (!m_WeGotPauseChange) -	{ -		if (error) -		{ -			snprintf(error, maxlen, "This extension must be unpaused by SourceMod."); -		} -		return false; -	} - -	m_WeGotPauseChange = false; - -	return SDK_OnMetamodPauseChange(false, error, maxlen); -} - -const char *SDKExtension::GetAuthor() -{ -	return GetExtensionAuthor(); -} - -const char *SDKExtension::GetDate() -{ -	return GetExtensionDateString(); -} - -const char *SDKExtension::GetDescription() -{ -	return GetExtensionDescription(); -} - -const char *SDKExtension::GetLicense() -{ -	return SMEXT_CONF_LICENSE; -} - -const char *SDKExtension::GetLogTag() -{ -	return GetExtensionTag(); -} - -const char *SDKExtension::GetName() -{ -	return GetExtensionName(); -} - -const char *SDKExtension::GetURL() -{ -	return GetExtensionURL(); -} - -const char *SDKExtension::GetVersion() -{ -	return GetExtensionVerString(); -} - -bool SDKExtension::SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlength, bool late) -{ -	return true; -} - -bool SDKExtension::SDK_OnMetamodUnload(char *error, size_t maxlength) -{ -	return true; -} - -bool SDKExtension::SDK_OnMetamodPauseChange(bool paused, char *error, size_t maxlength) -{ -	return true; -} - -#endif - -/* Overload a few things to prevent libstdc++ linking */ -#if defined __linux__ || defined __APPLE__ -extern "C" void __cxa_pure_virtual(void) -{ -} - -void *operator new(size_t size) -{ -	return malloc(size); -} - -void *operator new[](size_t size)  -{ -	return malloc(size); -} - -void operator delete(void *ptr)  -{ -	free(ptr); -} - -void operator delete[](void * ptr) -{ -	free(ptr); -} -#endif - diff --git a/sdk/smsdk_ext.h b/sdk/smsdk_ext.h deleted file mode 100644 index 210db3a..0000000 --- a/sdk/smsdk_ext.h +++ /dev/null @@ -1,339 +0,0 @@ -/** - * vim: set ts=4 : - * ============================================================================= - * SourceMod Base Extension Code - * Copyright (C) 2004-2008 AlliedModders LLC.  All rights reserved. - * ============================================================================= - * - * 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$ - */ - -#ifndef _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_ -#define _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_ - -/** - * @file smsdk_ext.h - * @brief Contains wrappers for making Extensions easier to write. - */ - -#include "smsdk_config.h" -#include <IExtensionSys.h> -#include <IHandleSys.h> -#include <sp_vm_api.h> -#include <sm_platform.h> -#include <ISourceMod.h> -#if defined SMEXT_ENABLE_FORWARDSYS -#include <IForwardSys.h> -#endif //SMEXT_ENABLE_FORWARDSYS -#if defined SMEXT_ENABLE_PLAYERHELPERS -#include <IPlayerHelpers.h> -#endif //SMEXT_ENABLE_PlAYERHELPERS -#if defined SMEXT_ENABLE_DBMANAGER -#include <IDBDriver.h> -#endif //SMEXT_ENABLE_DBMANAGER -#if defined SMEXT_ENABLE_GAMECONF -#include <IGameConfigs.h> -#endif -#if defined SMEXT_ENABLE_MEMUTILS -#include <IMemoryUtils.h> -#endif -#if defined SMEXT_ENABLE_GAMEHELPERS -#include <IGameHelpers.h> -#endif -#if defined SMEXT_ENABLE_TIMERSYS -#include <ITimerSystem.h> -#endif -#if defined SMEXT_ENABLE_ADTFACTORY -#include <IADTFactory.h> -#endif -#if defined SMEXT_ENABLE_THREADER -#include <IThreader.h> -#endif -#if defined SMEXT_ENABLE_LIBSYS -#include <ILibrarySys.h> -#endif -#if defined SMEXT_ENABLE_PLUGINSYS -#include <IPluginSys.h> -#endif -#if defined SMEXT_ENABLE_MENUS -#include <IMenuManager.h> -#endif -#if defined SMEXT_ENABLE_ADMINSYS -#include <IAdminSystem.h> -#endif -#if defined SMEXT_ENABLE_TEXTPARSERS -#include <ITextParsers.h> -#endif -#if defined SMEXT_ENABLE_USERMSGS -#include <IUserMessages.h> -#endif -#if defined SMEXT_ENABLE_TRANSLATOR -#include <ITranslator.h> -#endif -#if defined SMEXT_ENABLE_NINVOKE -#include <INativeInvoker.h> -#endif - -#if defined SMEXT_CONF_METAMOD -#include <ISmmPlugin.h> -#include <eiface.h> -#endif - -using namespace SourceMod; -using namespace SourcePawn; - -class SDKExtension :  -#if defined SMEXT_CONF_METAMOD -	public ISmmPlugin, -#endif -	public IExtensionInterface -{ -public: -	/** Constructor */ -	SDKExtension(); -public: -	/** -	 * @brief This is called after the initial loading sequence has been processed. -	 * -	 * @param error		Error message buffer. -	 * @param maxlength	Size of error message buffer. -	 * @param late		Whether or not the module was loaded after map load. -	 * @return			True to succeed loading, false to fail. -	 */ -	virtual bool SDK_OnLoad(char *error, size_t maxlength, bool late); -	 -	/** -	 * @brief This is called right before the extension is unloaded. -	 */ -	virtual void SDK_OnUnload(); - -	/** -	 * @brief This is called once all known extensions have been loaded. -	 */ -	virtual void SDK_OnAllLoaded(); - -	/** -	 * @brief Called when the pause state is changed. -	 */ -	virtual void SDK_OnPauseChange(bool paused); - -#if defined SMEXT_CONF_METAMOD -	/** -	 * @brief Called when Metamod is attached, before the extension version is called. -	 * -	 * @param error			Error buffer. -	 * @param maxlength		Maximum size of error buffer. -	 * @param late			Whether or not Metamod considers this a late load. -	 * @return				True to succeed, false to fail. -	 */ -	virtual bool SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlength, bool late); - -	/** -	 * @brief Called when Metamod is detaching, after the extension version is called. -	 * NOTE: By default this is blocked unless sent from SourceMod. -	 * -	 * @param error			Error buffer. -	 * @param maxlength		Maximum size of error buffer. -	 * @return				True to succeed, false to fail. -	 */ -	virtual bool SDK_OnMetamodUnload(char *error, size_t maxlength); - -	/** -	 * @brief Called when Metamod's pause state is changing. -	 * NOTE: By default this is blocked unless sent from SourceMod. -	 * -	 * @param paused		Pause state being set. -	 * @param error			Error buffer. -	 * @param maxlength		Maximum size of error buffer. -	 * @return				True to succeed, false to fail. -	 */ -	virtual bool SDK_OnMetamodPauseChange(bool paused, char *error, size_t maxlength); -#endif - -public: //IExtensionInterface -	virtual bool OnExtensionLoad(IExtension *me, IShareSys *sys, char *error, size_t maxlength, bool late); -	virtual void OnExtensionUnload(); -	virtual void OnExtensionsAllLoaded(); - -	/** Returns whether or not this is a Metamod-based extension */ -	virtual bool IsMetamodExtension(); - -	/** -	 * @brief Called when the pause state changes. -	 *  -	 * @param state			True if being paused, false if being unpaused. -	 */ -	virtual void OnExtensionPauseChange(bool state); - -	/** Returns name */ -	virtual const char *GetExtensionName(); -	/** Returns URL */ -	virtual const char *GetExtensionURL(); -	/** Returns log tag */ -	virtual const char *GetExtensionTag(); -	/** Returns author */ -	virtual const char *GetExtensionAuthor(); -	/** Returns version string */ -	virtual const char *GetExtensionVerString(); -	/** Returns description string */ -	virtual const char *GetExtensionDescription(); -	/** Returns date string */ -	virtual const char *GetExtensionDateString(); -#if defined SMEXT_CONF_METAMOD -public: //ISmmPlugin -	/** Called when the extension is attached to Metamod. */ -	virtual bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlength, bool late); -	/** Returns the author to MM */ -	virtual const char *GetAuthor(); -	/** Returns the name to MM */ -	virtual const char *GetName(); -	/** Returns the description to MM */ -	virtual const char *GetDescription(); -	/** Returns the URL to MM */ -	virtual const char *GetURL(); -	/** Returns the license to MM */ -	virtual const char *GetLicense(); -	/** Returns the version string to MM */ -	virtual const char *GetVersion(); -	/** Returns the date string to MM */ -	virtual const char *GetDate(); -	/** Returns the logtag to MM */ -	virtual const char *GetLogTag(); -	/** Called on unload */ -	virtual bool Unload(char *error, size_t maxlength); -	/** Called on pause */ -	virtual bool Pause(char *error, size_t maxlength); -	/** Called on unpause */ -	virtual bool Unpause(char *error, size_t maxlength); -private: -	bool m_SourceMMLoaded; -	bool m_WeAreUnloaded; -	bool m_WeGotPauseChange; -#endif -}; - -extern SDKExtension *g_pExtensionIface; -extern IExtension *myself; - -extern IShareSys *g_pShareSys; -extern IShareSys *sharesys;				/* Note: Newer name */ -extern ISourceMod *g_pSM; -extern ISourceMod *smutils;				/* Note: Newer name */ - -/* Optional interfaces are below */ -#if defined SMEXT_ENABLE_FORWARDSYS -extern IForwardManager *g_pForwards; -extern IForwardManager *forwards;		/* Note: Newer name */ -#endif //SMEXT_ENABLE_FORWARDSYS -#if defined SMEXT_ENABLE_HANDLESYS -extern IHandleSys *g_pHandleSys; -extern IHandleSys *handlesys;			/* Note: Newer name */ -#endif //SMEXT_ENABLE_HANDLESYS -#if defined SMEXT_ENABLE_PLAYERHELPERS -extern IPlayerManager *playerhelpers; -#endif //SMEXT_ENABLE_PLAYERHELPERS -#if defined SMEXT_ENABLE_DBMANAGER -extern IDBManager *dbi; -#endif //SMEXT_ENABLE_DBMANAGER -#if defined SMEXT_ENABLE_GAMECONF -extern IGameConfigManager *gameconfs; -#endif //SMEXT_ENABLE_DBMANAGER -#if defined SMEXT_ENABLE_MEMUTILS -extern IMemoryUtils *memutils; -#endif -#if defined SMEXT_ENABLE_GAMEHELPERS -extern IGameHelpers *gamehelpers; -#endif -#if defined SMEXT_ENABLE_TIMERSYS -extern ITimerSystem *timersys; -#endif -#if defined SMEXT_ENABLE_ADTFACTORY -extern IADTFactory *adtfactory; -#endif -#if defined SMEXT_ENABLE_THREADER -extern IThreader *threader; -#endif -#if defined SMEXT_ENABLE_LIBSYS -extern ILibrarySys *libsys; -#endif -#if defined SMEXT_ENABLE_PLUGINSYS -extern SourceMod::IPluginManager *plsys; -#endif -#if defined SMEXT_ENABLE_MENUS -extern IMenuManager *menus; -#endif -#if defined SMEXT_ENABLE_ADMINSYS -extern IAdminSystem *adminsys; -#endif -#if defined SMEXT_ENABLE_USERMSGS -extern IUserMessages *usermsgs; -#endif -#if defined SMEXT_ENABLE_TRANSLATOR -extern ITranslator *translator; -#endif -#if defined SMEXT_ENABLE_NINVOKE -extern INativeInterface *ninvoke; -#endif - -#if defined SMEXT_CONF_METAMOD -PLUGIN_GLOBALVARS(); -extern IVEngineServer *engine; -extern IServerGameDLL *gamedll; -#endif - -/** Creates a SourceMod interface macro pair */ -#define SM_MKIFACE(name) SMINTERFACE_##name##_NAME, SMINTERFACE_##name##_VERSION -/** Automates retrieving SourceMod interfaces */ -#define SM_GET_IFACE(prefix, addr) \ -	if (!g_pShareSys->RequestInterface(SM_MKIFACE(prefix), myself, (SMInterface **)&addr)) \ -	{ \ -		if (error != NULL && maxlength) \ -		{ \ -			size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ -			if (len >= maxlength) \ -			{ \ -				error[maxlength - 1] = '\0'; \ -			} \ -		} \ -		return false; \ -	} -/** Automates retrieving SourceMod interfaces when needed outside of SDK_OnLoad() */ -#define SM_GET_LATE_IFACE(prefix, addr) \ -	g_pShareSys->RequestInterface(SM_MKIFACE(prefix), myself, (SMInterface **)&addr) -/** Validates a SourceMod interface pointer */ -#define SM_CHECK_IFACE(prefix, addr) \ -	if (!addr) \ -	{ \ -		if (error != NULL && maxlength) \ -		{ \ -			size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ -			if (len >= maxlength) \ -			{ \ -				error[maxlength - 1] = '\0'; \ -			} \ -		} \ -		return false; \ -	} - -#endif // _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_ | 
