Bazaar developer reference

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

Called by