Fixed crash in EntProp natives (bug 5297, r=psychonic).

This commit is contained in:
Kyle Sanderson
2012-08-28 16:20:15 -04:00
parent 4f800fbd00
commit e8058912b8
4 changed files with 63 additions and 67 deletions
+35
View File
@@ -1009,3 +1009,38 @@ int CHalfLife2::GetSendPropOffset(SendProp *prop)
return prop->GetOffset();
}
const char *CHalfLife2::GetEntityClassname(edict_t * pEdict)
{
if (pEdict == NULL || pEdict->IsFree())
{
return NULL;
}
IServerUnknown *pUnk = pEdict->GetUnknown();
if (pUnk == NULL)
{
return NULL;
}
CBaseEntity * pEntity = pUnk->GetBaseEntity();
if (pEntity == NULL)
{
return NULL;
}
return GetEntityClassname(pEntity);
}
const char *CHalfLife2::GetEntityClassname(CBaseEntity *pEntity)
{
static int offset = -1;
if (offset == -1)
{
datamap_t *pMap = GetDataMap(pEntity);
typedescription_t *pDesc = FindInDataMap(pMap, "m_iClassname");
offset = GetTypeDescOffs(pDesc);
}
return *(const char **)(((unsigned char *)pEntity) + offset);
}