void GameCommander::setScoutUnits() { // if we haven't set a scout unit, do it if (m_scoutUnits.empty() && !m_initialScoutSet) { // if it exists if (shouldSendInitialScout()) { // grab the closest worker to the supply provider to send to scout UnitTag workerScoutTag = m_bot.Workers().getClosestMineralWorkerTo(m_bot.GetStartLocation()); const sc2::Unit * workerScout = m_bot.GetUnit(workerScoutTag); // if we find a worker (which we should) add it to the scout units if (workerScout) { m_scoutManager.setWorkerScout(workerScoutTag); assignUnit(workerScoutTag, m_scoutUnits); m_initialScoutSet = true; } else { } } } }
// sets combat units to be passed to CombatCommander void GameCommander::setCombatUnits() { for (auto & unitTag : m_validUnits) { const sc2::Unit * unit = m_bot.GetUnit(unitTag); BOT_ASSERT(unit, "Have a null unit in our valid units\n"); if (!isAssigned(unitTag) && Util::IsCombatUnitType(unit->unit_type, m_bot)) { assignUnit(unitTag, m_combatUnits); } } }
void Commander::checkNoSquadUnits() { Agentset agents = AgentManager::getInstance()->getAgents(); for (auto &a : agents) { bool notAssigned = true; if (!a->isAlive()) notAssigned = false; if (a->getUnitType().isWorker()) notAssigned = false; if (a->isOfType(UnitTypes::Zerg_Overlord)) notAssigned = false; if (a->getUnitType().isBuilding()) notAssigned = false; if (a->getUnitType().isAddon()) notAssigned = false; if (a->getSquadID() != -1) notAssigned = false; if (notAssigned) { assignUnit(a); } } }
void Commander::checkNoSquadUnits() { vector<BaseAgent*> agents = AgentManager::getInstance()->getAgents(); for (int i = 0; i < (int)agents.size(); i++) { BaseAgent* agent = agents.at(i); bool notAssigned = true; if (!agent->isAlive()) notAssigned = false; if (agent->getUnitType().isWorker()) notAssigned = false; if (!agent->getUnit()->exists()) notAssigned = false; if (agent->isOfType(UnitTypes::Zerg_Overlord)) notAssigned = false; if (agent->getUnitType().isBuilding()) notAssigned = false; if (agent->getUnitType().isAddon()) notAssigned = false; if (agent->getSquadID() != -1) notAssigned = false; if (notAssigned) { assignUnit(agent); } } }
GLint TextureUnit::unitNumber() { if (!_assigned) { assignUnit(); } return _number; }
GLenum TextureUnit::glEnum() { if (!_assigned) { assignUnit(); } return _glEnum; }
void TextureUnit::activate() { if (!_assigned) { assignUnit(); } glActiveTexture(_glEnum); }
GLint TextureUnit::getUnitNumber() const { if (!assigned_) assignUnit(); return number_; }
GLint TextureUnit::getEnum() const { if (!assigned_) assignUnit(); return glEnum_; }
void TextureUnit::activate() const { if (!assigned_) assignUnit(); glActiveTexture(getEnum()); }