const char *CHalfLife2::GetEntityClassname(CBaseEntity *pEntity) { static int offset = -1; if (offset == -1) { CBaseEntity *pGetterEnt = ReferenceToEntity(0); if (pGetterEnt == NULL) { // If we don't have a world entity yet, we'll have to rely on the given entity pGetterEnt = pEntity; } datamap_t *pMap = GetDataMap(pGetterEnt); sm_datatable_info_t info; if (!FindDataMapInfo(pMap, "m_iClassname", &info)) { return NULL; } offset = info.actual_offset; } return *(const char **)(((unsigned char *)pEntity) + offset); }
cell_t CHalfLife2::IndexToReference(int entIndex) { CBaseEntity *pEnt = ReferenceToEntity(entIndex); if (!pEnt) { return INVALID_EHANDLE_INDEX; } return EntityToReference(pEnt); }
const char *CHalfLife2::GetEntityClassname(CBaseEntity *pEntity) { static int offset = -1; if (offset == -1) { CBaseEntity *pGetterEnt = ReferenceToEntity(0); datamap_t *pMap = GetDataMap(pGetterEnt); sm_datatable_info_t info; if (!FindDataMapInfo(pMap, "m_iClassname", &info)) { return NULL; } offset = info.actual_offset; } return *(const char **)(((unsigned char *)pEntity) + offset); }