123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- /**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod Extension Code for Metamod:Source
- * 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 "smsdk_config.h"
- using namespace SourceMod;
- bool SM_AcquireInterfaces(char *error, size_t maxlength)
- {
- SM_FIND_IFACE_OR_FAIL(SOURCEMOD, sm_main, error, maxlength);
- #if defined SMEXT_ENABLE_FORWARDSYS
- SM_FIND_IFACE_OR_FAIL(FORWARDMANAGER, sm_forwards, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_HANDLESYS
- SM_FIND_IFACE_OR_FAIL(HANDLESYSTEM, sm_handlesys, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_PLAYERHELPERS
- SM_FIND_IFACE_OR_FAIL(PLAYERMANAGER, sm_players, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_DBMANAGER
- SM_FIND_IFACE_OR_FAIL(DBI, sm_dbi, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_GAMECONF
- SM_FIND_IFACE_OR_FAIL(GAMECONFIG, sm_gameconfs, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_MEMUTILS
- SM_FIND_IFACE_OR_FAIL(MEMORYUTILS, sm_memutils, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_GAMEHELPERS
- SM_FIND_IFACE_OR_FAIL(GAMEHELPERS, sm_gamehelpers, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_TIMERSYS
- SM_FIND_IFACE_OR_FAIL(TIMERSYS, sm_timersys, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_THREADER
- SM_FIND_IFACE_OR_FAIL(THREADER, sm_threader, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_LIBSYS
- SM_FIND_IFACE_OR_FAIL(LIBRARYSYS, sm_libsys, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_PLUGINSYS
- SM_FIND_IFACE_OR_FAIL(PLUGINSYSTEM, sm_plsys, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_MENUS
- SM_FIND_IFACE_OR_FAIL(MENUMANAGER, sm_menus, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_ADMINSYS
- SM_FIND_IFACE_OR_FAIL(ADMINSYS, sm_adminsys, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_TEXTPARSERS
- SM_FIND_IFACE_OR_FAIL(TEXTPARSERS, sm_text, error, maxlength);
- #endif
- #if defined SMEXT_ENABLE_TRANSLATOR
- SM_FIND_IFACE_OR_FAIL(TRANSLATOR, sm_translator, error, maxlength);
- #endif
- return true;
- }
- void SM_UnsetInterfaces()
- {
- myself = NULL;
- smexts = NULL;
- sharesys = NULL;
- sm_main = NULL;
- #if defined SMEXT_ENABLE_FORWARDSYS
- sm_forwards = NULL;
- #endif
- #if defined SMEXT_ENABLE_HANDLESYS
- sm_handlesys = NULL;
- #endif
- #if defined SMEXT_ENABLE_PLAYERHELPERS
- sm_players = NULL;
- #endif
- #if defined SMEXT_ENABLE_DBMANAGER
- sm_dbi = NULL;
- #endif
- #if defined SMEXT_ENABLE_GAMECONF
- sm_gameconfs = NULL;
- #endif
- #if defined SMEXT_ENABLE_MEMUTILS
- sm_memutils = NULL;
- #endif
- #if defined SMEXT_ENABLE_GAMEHELPERS
- sm_gamehelpers = NULL;
- #endif
- #if defined SMEXT_ENABLE_TIMERSYS
- sm_timersys = NULL;
- #endif
- #if defined SMEXT_ENABLE_THREADER
- sm_threader = NULL;
- #endif
- #if defined SMEXT_ENABLE_LIBSYS
- sm_libsys = NULL;
- #endif
- #if defined SMEXT_ENABLE_PLUGINSYS
- sm_plsys = NULL;
- #endif
- #if defined SMEXT_ENABLE_MENUS
- sm_menus = NULL;
- #endif
- #if defined SMEXT_ENABLE_ADMINSYS
- sm_adminsys = NULL;
- #endif
- #if defined SMEXT_ENABLE_TEXTPARSERS
- sm_text = NULL;
- #endif
- #if defined SMEXT_ENABLE_TRANSLATOR
- sm_translator = NULL;
- #endif
- }
- IExtension *myself = NULL;
- IExtensionManager *smexts = NULL;
- IShareSys *sharesys = NULL;
- SourceMod::ISourceMod *sm_main = NULL;
- #if defined SMEXT_ENABLE_FORWARDSYS
- SourceMod::IForwardManager *sm_forwards = NULL;
- #endif
- #if defined SMEXT_ENABLE_HANDLESYS
- SourceMod::IHandleSys *sm_handlesys = NULL;
- #endif
- #if defined SMEXT_ENABLE_PLAYERHELPERS
- SourceMod::IPlayerManager *sm_players = NULL;
- #endif
- #if defined SMEXT_ENABLE_DBMANAGER
- SourceMod::IDBManager *sm_dbi = NULL;
- #endif
- #if defined SMEXT_ENABLE_GAMECONF
- SourceMod::IGameConfigManager *sm_gameconfs = NULL;
- #endif
- #if defined SMEXT_ENABLE_MEMUTILS
- SourceMod::IMemoryUtils *sm_memutils = NULL;
- #endif
- #if defined SMEXT_ENABLE_GAMEHELPERS
- SourceMod::IGameHelpers *sm_gamehelpers = NULL;
- #endif
- #if defined SMEXT_ENABLE_TIMERSYS
- SourceMod::ITimerSystem *sm_timersys = NULL;
- #endif
- #if defined SMEXT_ENABLE_THREADER
- SourceMod::IThreader *sm_threader = NULL;
- #endif
- #if defined SMEXT_ENABLE_LIBSYS
- SourceMod::ILibrarySys *sm_libsys = NULL;
- #endif
- #if defined SMEXT_ENABLE_PLUGINSYS
- SourceMod::IPluginManager *sm_plsys = NULL;
- #endif
- #if defined SMEXT_ENABLE_MENUS
- SourceMod::IMenuManager *sm_menus = NULL;
- #endif
- #if defined SMEXT_ENABLE_ADMINSYS
- SourceMod::IAdminSystem *sm_adminsys = NULL;
- #endif
- #if defined SMEXT_ENABLE_TEXTPARSERS
- SourceMod::ITextParsers *sm_text = NULL;
- #endif
- #if defined SMEXT_ENABLE_TRANSLATOR
- SourceMod::ITranslator *sm_translator = NULL;
- #endif
|