1
0
mirror of https://github.com/alliedmodders/metamod-source.git synced 2024-11-29 11:24:19 +01:00
HLMetaModOfficial/sample_mm/sample_mm.h
David Anderson ffb560abea initial import of unfinished new sample plugin
this one is more based on valve's sample...

--HG--
extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/trunk%40464
2007-10-07 03:12:19 +00:00

79 lines
2.3 KiB
C++

/**
* vim: set ts=4 :
* ======================================================
* Metamod:Source Sample Plugin
* Written by AlliedModders LLC.
* ======================================================
*
* This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from
* the use of this software.
*
* This sample plugin is public domain.
*
* Version: $Id$
*/
#ifndef _INCLUDE_METAMOD_SOURCE_STUB_PLUGIN_H_
#define _INCLUDE_METAMOD_SOURCE_STUB_PLUGIN_H_
#include <ISmmPlugin.h>
#include <igameevents.h>
#include <iplayerinfo.h>
#include <sh_vector.h>
#include "engine_wrappers.h"
class StubPlugin : public ISmmPlugin, public IMetamodListener
{
public:
bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late);
bool Unload(char *error, size_t maxlen);
bool Pause(char *error, size_t maxlen);
bool Unpause(char *error, size_t maxlen);
void AllPluginsLoaded();
public: //IMetamodListener stuff
void OnVSPListening(IServerPluginCallbacks *iface);
public: //hooks
void Hook_ServerActivate(edict_t *pEdictList, int edictCount, int clientMax);
bool Hook_LevelInit(const char *pMapName,
char const *pMapEntities,
char const *pOldLevel,
char const *pLandmarkName,
bool loadGame,
bool background);
void Hook_GameFrame(bool simulating);
void Hook_LevelShutdown(void);
void Hook_ClientActive(edict_t *pEntity, bool bLoadGame);
void Hook_ClientDisconnect(edict_t *pEntity);
void Hook_ClientPutInServer(edict_t *pEntity, char const *playername);
void Hook_SetCommandClient(int index);
void Hook_ClientSettingsChanged(edict_t *pEdict);
bool Hook_ClientConnect(edict_t *pEntity,
const char *pszName,
const char *pszAddress,
char *reject,
int maxrejectlen);
#if defined ORANGEBOX_BUILD
void Hook_ClientCommand(edict_t *pEntity, const CCommand &args);
#else
void Hook_ClientCommand(edict_t *pEntity);
#endif
public:
const char *GetAuthor();
const char *GetName();
const char *GetDescription();
const char *GetURL();
const char *GetLicense();
const char *GetVersion();
const char *GetDate();
const char *GetLogTag();
private:
SourceHook::CVector<int> m_hooks;
};
extern StubPlugin g_StubPlugin;
PLUGIN_GLOBALVARS();
#endif //_INCLUDE_METAMOD_SOURCE_STUB_PLUGIN_H_