//===== Copyright � 1996-2005, Valve Corporation, All rights reserved. ======// // // Purpose: // //===========================================================================// #include "core/stdafx.h" #include "util_shared.h" #ifndef CLIENT_DLL #include "game/server/player.h" #include "game/server/gameinterface.h" #endif // !CLIENT_DLL #ifndef CLIENT_DLL //----------------------------------------------------------------------------- // Purpose: returns the player instance by edict //----------------------------------------------------------------------------- CPlayer* UTIL_PlayerByIndex(int nIndex) { if (nIndex < 1 || nIndex >(*g_pGlobals)->m_nMaxClients || nIndex == FL_EDICT_INVALID) { assert(0); return nullptr; } // !TODO: Improve this!!! CPlayer* pPlayer = reinterpret_cast((*g_pGlobals)->m_pEdicts[nIndex + 0x7808]); return pPlayer; } #endif // CLIENT_DLL //----------------------------------------------------------------------------- // Purpose: returns the class name, script name, and edict of the entity // returns "<>" on NULL entity //----------------------------------------------------------------------------- const char* UTIL_GetEntityScriptInfo(CBaseEntity* pEnt) { assert(pEnt != nullptr); return v_UTIL_GetEntityScriptInfo(pEnt); } CTraceFilterSimple::CTraceFilterSimple(const IHandleEntity* pPassEntity, int collisionGroup, ShouldHitFunc_t pExtraShouldHitCheckFn) { void** pVTable = reinterpret_cast(&*this); // Assign vftable pointer to the implementation supplied by the engine. *pVTable = reinterpret_cast(g_pTraceFilterSimpleVFTable); m_collisionGroup = collisionGroup; m_pPassEntity = pPassEntity; m_traceType = 0; m_pExtraShouldHitCheckFunction = pExtraShouldHitCheckFn; }