CBaseEntity* CLegitBot::GetClosestEnemy(CBaseEntity* pLocal, int type) {
float closestDistance = FLT_MAX;
int closestPlayerIndex = -1;
auto* viewAngles = pLocal->GetLocalPlayer()->GetViewAngles();
for (int i = 0; i < I::Globals->nMaxClients; ++i)
{
Vector delta{};
//Get entity
CBaseEntity* pEntity = I::ClientEntityList->Get<CBaseEntity>(i);
if (pEntity == nullptr || !pEntity->IsPlayer() || pEntity->IsDormant() || !pEntity->IsAlive() || pEntity->HasImmunity())
continue;
Vector playerHeadPosition = pEntity->GetEyePosition();
GetDistance(playerHeadPosition,pLocal->GetLocalPlayer()->GetEyePosition(), delta);
float yaw = atan2(delta.y, delta.x) * (180 / static_cast<float>(M_PI));
float yawDistance = fabs(yaw - viewAngles->y);
if (yawDistance < closestDistance) {
closestDistance = yawDistance;
closestPlayerIndex = i;
}
}
if (closestPlayerIndex == -1 || I::ClientEntityList->Get<CBaseEntity>(closestPlayerIndex)->IsDormant())
{
return nullptr;
}
return I::ClientEntityList->Get<CBaseEntity>(closestPlayerIndex);
}