CvAIOperation::BuyFinalUnit()
- Defined in
- CvAIOperation.cpp, line 1103
- Class
- CvAIOperation
- Hook name
CivHooks::CvAIOperation_BuyFinalUnit
Hooks
static bool BeforeCvAIOperation_BuyFinalUnit(CvAIOperation* self, bool& result);static void AfterCvAIOperation_BuyFinalUnit(CvAIOperation* self, bool& result);static bool ReplaceCvAIOperation_BuyFinalUnit(bool (*original)(CvAIOperation*), CvAIOperation* self);CivRegisterBefore<CivHooks::CvAIOperation_BuyFinalUnit>(host, &BeforeCvAIOperation_BuyFinalUnit);CivRegisterAfter<CivHooks::CvAIOperation_BuyFinalUnit>(host, &AfterCvAIOperation_BuyFinalUnit);CivRegisterReplace<CivHooks::CvAIOperation_BuyFinalUnit>(host, &ReplaceCvAIOperation_BuyFinalUnit);
Code
1103bool CvAIOperation::BuyFinalUnit()1104{1105 CvCity* pCity = GetOperationStartCity();11061107 if(!m_viListOfUnitsWeStillNeedToBuild.empty() && pCity != NULL && pCity->getOwner() == m_eOwner)1108 {1109 OperationSlot thisSlot = m_viListOfUnitsWeStillNeedToBuild.back();1110 CvArmyAI* pArmy = GET_PLAYER(m_eOwner).getArmyAI(thisSlot.m_iArmyID);1111 CvMultiUnitFormationInfo* thisFormation = GC.getMultiUnitFormationInfo(pArmy->GetFormationIndex());1112 const CvFormationSlotEntry& thisSlotEntry = thisFormation->getFormationSlotEntry(thisSlot.m_iSlotID);11131114 CvUnit* pUnit = GET_PLAYER(m_eOwner).GetMilitaryAI()->BuyEmergencyUnit((UnitAITypes)thisSlotEntry.m_primaryUnitType, pCity);1115 if(pUnit != NULL)1116 {1117 pArmy->AddUnit(pUnit->GetID(), thisSlot.m_iSlotID);1118 m_viListOfUnitsWeStillNeedToBuild.pop_back();1119 if (m_viListOfUnitsWeStillNeedToBuild.size() == 0 && m_viListOfUnitsCitiesHaveCommittedToBuild.size() == 0 && m_eCurrentState == AI_OPERATION_STATE_RECRUITING_UNITS)1120 {1121 m_eCurrentState = AI_OPERATION_STATE_GATHERING_FORCES;1122 for(unsigned int uiI = 0; uiI < m_viArmyIDs.size(); uiI++)1123 {1124 CvArmyAI* pThisArmy = GET_PLAYER(m_eOwner).getArmyAI(m_viArmyIDs[uiI]);1125 if(pThisArmy)1126 {1127 pThisArmy->SetArmyAIState(ARMYAISTATE_WAITING_FOR_UNITS_TO_CATCH_UP);1128 }1129 }1130 }1131 return true;1132 }1133 }11341135 return false;1136}
Calls
- CvAIOperation::GetOperationStartCity() const
- CvArmyAI::AddUnit(int, int)
- CvArmyAI::GetFormationIndex() const
- CvArmyAI::SetArmyAIState(ArmyAIState)
- CvCity::getOwner() const
- CvGlobals::getMultiUnitFormationInfo(int)
- CvMilitaryAI::BuyEmergencyUnit(UnitAITypes, CvCity *)
- CvMultiUnitFormationInfo::getFormationSlotEntry(int) const
- CvPlayer::getArmyAI(int)
- CvPlayer::GetMilitaryAI() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvUnit::GetID() const
OperationSlot::OperationSlotstd::vector::backstd::vector::emptystd::vector::operator[]std::vector::pop_backstd::vector::sizestd::vector::size