CGameEntitySystem* Interfaces::GameEntitySystem()
{
if ( !g_pGameEntitySystem )
{
/*
STR -> "Searching for entities with class/target name containing substrings:"
v33 = &CDefaultTypedEntityInstanceFilter<C_BaseEntity>::`vftable';
v36 = sub_182E02C50(v32); ppGameEntitySystem
*/
auto ppGameEntitySystem = reinterpret_cast<uintptr_t>( FindPattern( CLIENT_DLL , XorStr( "48 8B ? ? ? ? ? 48 85 C0 0F 84 ? ? ? ? 48 8B 09 48 85 C9 74 06 48 8B 41 58 EB 16 80 7B 10 00 75 09 48 8B 80 10 02 00 00 EB 07 48 8B 80 30 02 00 00" ) ) );
if ( !ppGameEntitySystem )
return nullptr;
GetGameEntitySystemPointer:;
g_pGameEntitySystem = *GetPtrAddress<CGameEntitySystem**>( ppGameEntitySystem );
if ( !g_pGameEntitySystem )
{
Sleep( 500 );
goto GetGameEntitySystemPointer;
}
}
return g_pGameEntitySystem;
}