1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /**
- * 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_SOURCE_ENGINE_WRAPPERS_
- #define _INCLUDE_SOURCE_ENGINE_WRAPPERS_
- #include <eiface.h>
- extern IVEngineServer *engine;
- extern CGlobalVars *gpGlobals;
- #if SOURCE_ENGINE == SE_EPISODEONE && defined METAMOD_PLAPI_VERSION
- #error "Metamod:Source 1.6 API is not supported on the old engine."
- #endif
- #define ENGINE_CALL(func) SH_CALL(engine, &IVEngineServer::func)
- /**
- * Wrap some API calls for legacy MM:S.
- */
- #if !defined METAMOD_PLAPI_VERSION
- #define GetEngineFactory engineFactory
- #define GetServerFactory serverFactory
- #define MM_Format snprintf
- #define GetCGlobals pGlobals
- #else
- #define MM_Format g_SMAPI->Format
- #endif
- #if SOURCE_ENGINE <= SE_DARKMESSIAH
- /**
- * Wrap the CCommand class so our code looks the same on all engines.
- */
- class CCommand
- {
- public:
- const char *ArgS()
- {
- return engine->Cmd_Args();
- }
- int ArgC()
- {
- return engine->Cmd_Argc();
- }
- const char *Arg(int index)
- {
- return engine->Cmd_Argv(index);
- }
- };
- #define CVAR_INTERFACE_VERSION VENGINE_CVAR_INTERFACE_VERSION
- #endif
- /**
- * Left 4 Dead engine removed these from IVEngineServer.
- */
- #if SOURCE_ENGINE >= SE_LEFT4DEAD
- inline int IndexOfEdict(const edict_t *pEdict)
- {
- return (int)(pEdict - gpGlobals->pEdicts);
- }
- inline edict_t *PEntityOfEntIndex(int iEntIndex)
- {
- if (iEntIndex >= 0 && iEntIndex < gpGlobals->maxEntities)
- {
- return (edict_t *)(gpGlobals->pEdicts + iEntIndex);
- }
- return NULL;
- }
- #else
- inline int IndexOfEdict(const edict_t *pEdict)
- {
- return engine->IndexOfEdict(pEdict);
- }
- inline edict_t *PEntityOfEntIndex(int iEntIndex)
- {
- return engine->PEntityOfEntIndex(iEntIndex);
- }
- #endif
- #endif //_INCLUDE_SOURCE_ENGINE_WRAPPERS_
|