dvander@370: /** ds@653: * vim: set ts=4 : dvander@370: * =============================================================== dvander@370: * SourceMod (C)2004-2007 AlliedModders LLC. All rights reserved. dvander@370: * =============================================================== dvander@370: * dvander@370: * This file is not open source and may not be copied without explicit dvander@370: * written permission of AlliedModders LLC. This file may not be redistributed dvander@370: * in whole or significant part. dvander@370: * For information, see LICENSE.txt or http://www.sourcemod.net/license.php dvander@370: * dvander@370: * Version: $Id$ dvander@370: */ dvander@370: dvander@145: #ifndef _INCLUDE_SOURCEMOD_MM_API_H_ dvander@145: #define _INCLUDE_SOURCEMOD_MM_API_H_ dvander@145: ds@457: #include "convar_sm.h" dvander@145: #include dvander@209: #include dvander@453: #include dvander@644: #include dvander@530: #include faluco@654: #include faluco@656: #include dvander@145: dvander@162: /** dvander@162: * @file Contains wrappers around required Metamod:Source API exports dvander@162: */ dvander@162: ds@675: class SourceMod_Core : ds@675: public ISmmPlugin, ds@675: public IMetamodListener dvander@145: { dvander@145: public: dvander@145: bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late); dvander@145: bool Unload(char *error, size_t maxlen); dvander@145: bool Pause(char *error, size_t maxlen); dvander@145: bool Unpause(char *error, size_t maxlen); dvander@145: void AllPluginsLoaded(); dvander@145: public: dvander@145: const char *GetAuthor(); dvander@145: const char *GetName(); dvander@145: const char *GetDescription(); dvander@145: const char *GetURL(); dvander@145: const char *GetLicense(); dvander@145: const char *GetVersion(); dvander@145: const char *GetDate(); dvander@145: const char *GetLogTag(); ds@675: public: ds@675: void OnVSPListening(IServerPluginCallbacks *iface); dvander@145: }; dvander@145: dvander@160: extern SourceMod_Core g_SourceMod_Core; dvander@209: extern IVEngineServer *engine; dvander@209: extern IServerGameDLL *gamedll; faluco@226: extern IServerGameClients *serverClients; ds@457: extern ICvar *icvar; dvander@304: extern ISmmPluginManager *g_pMMPlugins; dvander@448: extern CGlobalVars *gpGlobals; dvander@453: extern IGameEventManager2 *gameevents; dvander@496: extern SourceHook::CallClass *enginePatch; dvander@532: extern SourceHook::CallClass *gamedllPatch; dvander@530: extern IUniformRandomStream *engrandom; dvander@644: extern IPlayerInfoManager *playerinfo; faluco@654: extern IBaseFileSystem *basefilesystem; faluco@656: extern IEngineSound *enginesound; faluco@659: extern IServerPluginHelpers *serverpluginhelpers; dvander@496: dvander@496: #define ENGINE_CALL(func) SH_CALL(enginePatch, &IVEngineServer::func) dvander@532: #define SERVER_CALL(func) SH_CALL(gamedllPatch, &IServerGameDLL::func) dvander@145: dvander@145: PLUGIN_GLOBALVARS(); dvander@145: dvander@145: #endif //_INCLUDE_SOURCEMOD_MM_API_H_