/** * vim: set ts=4 sw=4 tw=99 noet : * ====================================================== * Metamod:Source Stub 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 stub plugin is public domain. */ #ifndef _INCLUDE_METAMOD_SOURCE_CASSANDRA_PLUGIN_H_ #define _INCLUDE_METAMOD_SOURCE_CASSANDRA_PLUGIN_H_ #include #include "engine_wrappers.h" #include #include #include #include #include #if defined WIN32 && !defined snprintf #define snprintf _snprintf #endif class Cassandra : public ISmmPlugin { public: bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late); bool Unload(char *error, size_t maxlen); 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(); public: bool LevelInit(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background); void OnGameFrame(bool simulating); public: void InstallSignalHandler(void); void RemoveSignalHandler(void); void Hooped(void); void TakeStackTrace(const char *pInput); private: int m_iGameFrameHook; int m_iLevelInitHook; unsigned m_iCounter; }; extern Cassandra g_Cassandra; PLUGIN_GLOBALVARS(); void SignalAction(int sig, siginfo_t *pInfo, void *pData); int RecvFrom(int s, char *buf, int len, int flags, struct sockaddr *from, int *fromlen); #endif //_INCLUDE_METAMOD_SOURCE_CASSANDRA_PLUGIN_H_