core/sourcemm_api.h
author Phong Dang <teame06@gmail.com>
Sun Jul 29 19:20:42 2007 +0000 (2007-07-29)
changeset 1211 990912ee1e1e
parent 1145 f12e19245c7a
child 1231 17badaf66ce4
permissions -rw-r--r--
Added amb<536> requested for using sm_kick without putting quotes around reason.
dvander@370
     1
/**
ds@653
     2
 * vim: set ts=4 :
dvander@370
     3
 * ===============================================================
dvander@370
     4
 * SourceMod (C)2004-2007 AlliedModders LLC.  All rights reserved.
dvander@370
     5
 * ===============================================================
dvander@370
     6
 *
dvander@370
     7
 * This file is not open source and may not be copied without explicit
dvander@370
     8
 * written permission of AlliedModders LLC.  This file may not be redistributed 
dvander@370
     9
 * in whole or significant part.
dvander@370
    10
 * For information, see LICENSE.txt or http://www.sourcemod.net/license.php
dvander@370
    11
 *
dvander@370
    12
 * Version: $Id$
dvander@370
    13
 */
dvander@370
    14
dvander@145
    15
#ifndef _INCLUDE_SOURCEMOD_MM_API_H_
dvander@145
    16
#define _INCLUDE_SOURCEMOD_MM_API_H_
dvander@145
    17
ds@457
    18
#include "convar_sm.h"
dvander@145
    19
#include <ISmmPlugin.h>
dvander@209
    20
#include <eiface.h>
dvander@453
    21
#include <igameevents.h>
dvander@644
    22
#include <iplayerinfo.h>
dvander@530
    23
#include <random.h>
faluco@654
    24
#include <filesystem.h>
faluco@656
    25
#include <IEngineSound.h>
dvander@145
    26
dvander@162
    27
/**
dvander@162
    28
 * @file Contains wrappers around required Metamod:Source API exports
dvander@162
    29
 */
dvander@162
    30
ds@675
    31
class SourceMod_Core : 
ds@675
    32
	public ISmmPlugin,
ds@675
    33
	public IMetamodListener
dvander@145
    34
{
dvander@145
    35
public:
dvander@145
    36
	bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late);
dvander@145
    37
	bool Unload(char *error, size_t maxlen);
dvander@145
    38
	bool Pause(char *error, size_t maxlen);
dvander@145
    39
	bool Unpause(char *error, size_t maxlen);
dvander@145
    40
	void AllPluginsLoaded();
dvander@145
    41
public:
dvander@145
    42
	const char *GetAuthor();
dvander@145
    43
	const char *GetName();
dvander@145
    44
	const char *GetDescription();
dvander@145
    45
	const char *GetURL();
dvander@145
    46
	const char *GetLicense();
dvander@145
    47
	const char *GetVersion();
dvander@145
    48
	const char *GetDate();
dvander@145
    49
	const char *GetLogTag();
ds@675
    50
public:
ds@675
    51
	void OnVSPListening(IServerPluginCallbacks *iface);
ds@1145
    52
#if PLAPI_VERSION >= 12
ds@1145
    53
	void OnUnlinkConCommandBase(PluginId id, ConCommandBase *pCommand);
ds@1145
    54
#else
ds@1145
    55
	void OnPluginUnload(PluginId id);
ds@1145
    56
#endif
dvander@145
    57
};
dvander@145
    58
dvander@160
    59
extern SourceMod_Core g_SourceMod_Core;
dvander@209
    60
extern IVEngineServer *engine;
dvander@209
    61
extern IServerGameDLL *gamedll;
faluco@226
    62
extern IServerGameClients *serverClients;
ds@457
    63
extern ICvar *icvar;
dvander@304
    64
extern ISmmPluginManager *g_pMMPlugins;
dvander@448
    65
extern CGlobalVars *gpGlobals;
dvander@453
    66
extern IGameEventManager2 *gameevents;
dvander@496
    67
extern SourceHook::CallClass<IVEngineServer> *enginePatch;
dvander@532
    68
extern SourceHook::CallClass<IServerGameDLL> *gamedllPatch;
dvander@530
    69
extern IUniformRandomStream *engrandom;
dvander@644
    70
extern IPlayerInfoManager *playerinfo;
faluco@654
    71
extern IBaseFileSystem *basefilesystem;
faluco@656
    72
extern IEngineSound *enginesound;
faluco@659
    73
extern IServerPluginHelpers *serverpluginhelpers;
dvander@496
    74
dvander@496
    75
#define ENGINE_CALL(func)		SH_CALL(enginePatch, &IVEngineServer::func)
dvander@532
    76
#define SERVER_CALL(func)		SH_CALL(gamedllPatch, &IServerGameDLL::func)
dvander@145
    77
dvander@145
    78
PLUGIN_GLOBALVARS();
dvander@145
    79
dvander@145
    80
#endif //_INCLUDE_SOURCEMOD_MM_API_H_