if (Cvars::aim)
{
IEntityIt* pEntityIt = gEnv->pEntitySystem->GetEntityIterator();
while (IEntity * pExp = pEntityIt->Next())
{
IEntityClass* pEntClass = pExp->GetClass();
if (!pEntClass) continue;
const char* ClassName = pEntClass->GetName();
const char* Name = pExp->GetName();
if (!_strcmp(ClassName, "Dummy")) continue;
IEntityRenderProxy* pRenderProxy = pExp->GetRenderProxy();
if (!pRenderProxy) continue;
uint32 RenderFlags = pRenderProxy->GetFlags();
if (RenderFlags == 386)
{
if (_strstr(Name, "laymore") || _strstr(Name, "apsule") || _strstr(Name, "smartmine") || _strstr(Name, "spidermine") || _strstr(Name, "mine") || _strstr(Name, "heavydroid_rocket"))
{
AABB aabb;
pExp->GetWorldBounds(aabb);
Vec3 vBonePos = aabb.GetCenter();
Vec3 Out;
if (_strstr(Name, "laymore") || _strstr(Name, "apsule") || _strstr(Name, "smartmine") || _strstr(Name, "spidermine") || _strstr(Name, "mine") || _strstr(Name, "heavydroid_rocket"))
{
gRender->ProjectToScreen(aabb.GetCenter(), Out);
if (IsAim(Name, ClassName, pExp, vBonePos) || is_Visible(aabb.GetCenter(), 2.0f) && Priority(vBonePos))
{
Aim(pWeaponPTR, Name, ClassName, m_pActor, m_pItem, aabb.GetCenter());
}
continue;
}
continue;
}
}
if (IActor * pActor = pFramework->GetIActorSystem()->GetActor(pExp->GetId()))
{
if (pActor->IsDead() || pActor == m_pActor || pActor->IsDead() || IsMyTeam(m_pActor, pActor)) continue;
Vec3 vBonePos = ZERO;
Vec3 Out;
gRender->ProjectToScreen(vBonePos, Out);
if (IsAim(Name, ClassName, pExp, vBonePos) || is_Visible(vBonePos, 0.0f) && Priority(vBonePos))
{
Aim(pWeaponPTR, Name, ClassName, m_pActor, m_pItem, vBonePos);
}
}
}
}