void GetResourceEntity() { g_ResourceEntity.Term(); #if SOURCE_ENGINE >= SE_ORANGEBOX const char *classname = g_pGameConf->GetKeyValue("ResourceEntityClassname"); if (classname != NULL) { for (CBaseEntity *pEntity = (CBaseEntity *)servertools->FirstEntity(); pEntity; pEntity = (CBaseEntity *)servertools->NextEntity(pEntity)) { if (!strcmp(gamehelpers->GetEntityClassname(pEntity), classname)) { g_ResourceEntity = ((IHandleEntity *)pEntity)->GetRefEHandle(); break; } } } else #endif { int edictCount = gpGlobals->maxEntities; for (int i=0; i<edictCount; i++) { edict_t *pEdict = PEntityOfEntIndex(i); if (!pEdict || pEdict->IsFree()) { continue; } if (!pEdict->GetNetworkable()) { continue; } IHandleEntity *pHandleEnt = pEdict->GetNetworkable()->GetEntityHandle(); if (!pHandleEnt) { continue; } ServerClass *pClass = pEdict->GetNetworkable()->GetServerClass(); if (FindNestedDataTable(pClass->m_pTable, "DT_PlayerResource")) { g_ResourceEntity = pHandleEnt->GetRefEHandle(); break; } } } }