int CAICallback::GetFriendlyUnits(int *unitIds, const float3& pos, float radius, int unitIds_max) { verify(); vector<CUnit*> unit = qf->GetUnitsExact(pos, radius); vector<CUnit*>::iterator ui; int a = 0; for (ui = unit.begin(); ui != unit.end(); ++ui) { CUnit* u = *ui; if (teamHandler->Ally(u->allyteam, teamHandler->AllyTeam(team))) { // IsUnitNeutral does a LOS check, but inconsequential // since we can always see friendly units anyway if (!IsUnitNeutral(u->id)) { unitIds[a++] = u->id; if (a >= unitIds_max) { break; } } } } return a; }
int CAICallback::GetNeutralUnits(int* unitIds) { verify(); int a = 0; for (std::list<CUnit*>::iterator ui = uh->activeUnits.begin(); ui != uh->activeUnits.end(); ++ui) { CUnit* u = *ui; // IsUnitNeutral does the LOS check if (IsUnitNeutral(u->id)) { unitIds[a++] = u->id; } } return a; }
int CAICheats::GetNeutralUnits(int* unitIds, int unitIds_max) { int a = 0; for (std::list<CUnit*>::iterator ui = uh->activeUnits.begin(); ui != uh->activeUnits.end(); ++ui) { CUnit* u = *ui; if (IsUnitNeutral(u->id)) { unitIds[a++] = u->id; if (a >= unitIds_max) { break; } } } return a; }
int CAICallback::GetEnemyUnitsInRadarAndLos(int* unitIds) { verify(); std::list<CUnit*>::iterator ui; int a = 0; for (std::list<CUnit*>::iterator ui = uh->activeUnits.begin(); ui != uh->activeUnits.end(); ++ui) { CUnit* u = *ui; if (!gs->Ally(u->allyteam, gs->AllyTeam(team)) && (u->losStatus[gs->AllyTeam(team)] & (LOS_INLOS | LOS_INRADAR))) { if (!IsUnitNeutral(u->id)) { unitIds[a++] = u->id; } } } return a; }
int CAICallback::GetNeutralUnits(int* unitIds, const float3& pos, float radius) { verify(); vector<CUnit*> unit = qf->GetUnitsExact(pos, radius); vector<CUnit*>::iterator ui; int a = 0; for (ui = unit.begin(); ui != unit.end(); ++ui) { CUnit* u = *ui; // IsUnitNeutral does the LOS check if (IsUnitNeutral(u->id)) { unitIds[a] = u->id; ++a; } } return a; }
int CAICallback::GetFriendlyUnits(int *unitIds) { verify(); int a = 0; for (std::list<CUnit*>::iterator ui = uh->activeUnits.begin(); ui != uh->activeUnits.end(); ++ui) { CUnit* u = *ui; if (gs->Ally(u->allyteam, gs->AllyTeam(team))) { // IsUnitNeutral does a LOS check, but inconsequential // since we can always see friendly units anyway if (!IsUnitNeutral(u->id)) { unitIds[a++] = u->id; } } } return a; }
int CAICheats::GetNeutralUnits(int* unitIds, const float3& pos, float radius, int unitIds_max) { std::vector<CUnit*> unit = qf->GetUnitsExact(pos, radius); std::vector<CUnit*>::iterator ui; int a = 0; for (ui = unit.begin(); ui != unit.end(); ++ui) { CUnit* u = *ui; if (IsUnitNeutral(u->id)) { unitIds[a++] = u->id; if (a >= unitIds_max) { break; } } } return a; }
int CAICallback::GetEnemyUnits(int* unitIds, const float3& pos, float radius) { verify(); vector<CUnit*> unit = qf->GetUnitsExact(pos, radius); vector<CUnit*>::iterator ui; int a = 0; for (ui = unit.begin(); ui != unit.end(); ++ui) { CUnit* u = *ui; if (!gs->Ally(u->allyteam, gs->AllyTeam(team)) && (u->losStatus[gs->AllyTeam(team)] & LOS_INLOS)) { if (!IsUnitNeutral(u->id)) { unitIds[a] = u->id; ++a; } } } return a; }
int CAICheats::GetEnemyUnits(int* unitIds, int unitIds_max) { std::list<CUnit*>::iterator ui; int a = 0; for (std::list<CUnit*>::iterator ui = uh->activeUnits.begin(); ui != uh->activeUnits.end(); ++ui) { CUnit* u = *ui; if (!teamHandler->Ally(u->allyteam, teamHandler->AllyTeam(ai->GetTeamId()))) { if (!IsUnitNeutral(u->id)) { unitIds[a++] = u->id; if (a >= unitIds_max) { break; } } } } return a; }
int CAICheats::GetEnemyUnits(int* unitIds, const float3& pos, float radius, int unitIds_max) { std::vector<CUnit*> unit = qf->GetUnitsExact(pos, radius); std::vector<CUnit*>::iterator ui; int a = 0; for (ui = unit.begin(); ui != unit.end(); ++ui) { CUnit* u = *ui; if (!teamHandler->Ally(u->allyteam, teamHandler->AllyTeam(ai->GetTeamId()))) { if (!IsUnitNeutral(u->id)) { unitIds[a++] = u->id; if (a >= unitIds_max) { break; } } } } return a; }
int CAICallback::GetEnemyUnits(int* unitIds, int unitIds_max) { verify(); std::list<CUnit*>::iterator ui; int a = 0; for (std::list<CUnit*>::iterator ui = uh->activeUnits.begin(); ui != uh->activeUnits.end(); ++ui) { CUnit* u = *ui; if (!teamHandler->Ally(u->allyteam, teamHandler->AllyTeam(team)) && (u->losStatus[teamHandler->AllyTeam(team)] & LOS_INLOS)) { if (!IsUnitNeutral(u->id)) { unitIds[a++] = u->id; if (a >= unitIds_max) { break; } } } } return a; }