/// Delete the army void CvArmyAI::Kill() { CvAssert(GetOwner() != NO_PLAYER); CvAssertMsg(GetID() != -1, "GetID() is not expected to be equal with -1"); int iUnitID; iUnitID = GetFirstUnitID(); while(iUnitID != ARMYSLOT_NO_UNIT) { UnitHandle pThisUnit = GET_PLAYER(GetOwner()).getUnit(iUnitID); if(pThisUnit) { pThisUnit->setArmyID(-1); #if defined(MOD_BALANCE_CORE) pThisUnit->AI_setUnitAIType(pThisUnit->getUnitInfo().GetDefaultUnitAIType()); #endif } iUnitID = GetNextUnitID(); } m_FormationEntries.clear(); CvAIOperation* pOperation = GET_PLAYER(GetOwner()).getAIOperation(m_iOperationID); if (pOperation) pOperation->DeleteArmyAI(m_iID); GET_PLAYER(GetOwner()).deleteArmyAI(m_iID); }
/// Retrieve units from the army - first call (UnitHandle version) UnitHandle CvArmyAI::GetFirstUnit() { UnitHandle pRtnValue; int iUnitID = GetFirstUnitID(); if(iUnitID != ARMYSLOT_NO_UNIT) { pRtnValue = UnitHandle(GET_PLAYER(m_eOwner).getUnit(iUnitID)); FAssertMsg(pRtnValue, "Bogus unit in army - tell Ed"); } return pRtnValue; }
// UNIT STRENGTH ACCESSORS /// Total unit power int CvArmyAI::GetTotalPower() { int iRtnValue = 0; int iUnitID; iUnitID = GetFirstUnitID(); while(iUnitID != ARMYSLOT_NO_UNIT) { UnitHandle pThisUnit = GET_PLAYER(GetOwner()).getUnit(iUnitID); if(pThisUnit) { iRtnValue += pThisUnit->GetPower(); } iUnitID = GetNextUnitID(); } return iRtnValue; }
/// Delete the army void CvArmyAI::Kill() { CvAssert(GetOwner() != NO_PLAYER); CvAssertMsg(GetID() != FFreeList::INVALID_INDEX, "GetID() is not expected to be equal with FFreeList::INVALID_INDEX"); int iUnitID; iUnitID = GetFirstUnitID(); while(iUnitID != ARMY_NO_UNIT) { UnitHandle pThisUnit = GET_PLAYER(GetOwner()).getUnit(iUnitID); if(pThisUnit) { pThisUnit->setArmyID(FFreeList::INVALID_INDEX); } iUnitID = GetNextUnitID(); } m_FormationEntries.clear(); }