Created
February 13, 2013 07:27
-
-
Save dtuominen/4942881 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * vim: set ts=4 sw=4 tw=99 noet : | |
| * ====================================================== | |
| * 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. | |
| */ | |
| #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" | |
| #if defined WIN32 && !defined snprintf | |
| #define snprintf _snprintf | |
| #endif | |
| class SamplePlugin : 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 SOURCE_ENGINE >= SE_ORANGEBOX | |
| 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(); | |
| }; | |
| extern SamplePlugin g_SamplePlugin; | |
| PLUGIN_GLOBALVARS(); | |
| #endif //_INCLUDE_METAMOD_SOURCE_STUB_PLUGIN_H_ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment