Bazaar developer reference

CvAIOperation::CommitToBuildNextUnit(int, int, CvCity *)

Defined in
CvAIOperation.cpp, line 381
Class
CvAIOperation
Hook name
CivHooks::CvAIOperation_CommitToBuildNextUnit

Hooks

static bool BeforeCvAIOperation_CommitToBuildNextUnit(CvAIOperation* self, int iAreaID, int iTurns, CvCity* pCity, OperationSlot& result);static void AfterCvAIOperation_CommitToBuildNextUnit(CvAIOperation* self, int iAreaID, int iTurns, CvCity* pCity, OperationSlot& result);static OperationSlot ReplaceCvAIOperation_CommitToBuildNextUnit(OperationSlot (*original)(CvAIOperation*, int, int, CvCity*), CvAIOperation* self, int iAreaID, int iTurns, CvCity* pCity);CivRegisterBefore<CivHooks::CvAIOperation_CommitToBuildNextUnit>(host, &BeforeCvAIOperation_CommitToBuildNextUnit);CivRegisterAfter<CivHooks::CvAIOperation_CommitToBuildNextUnit>(host, &AfterCvAIOperation_CommitToBuildNextUnit);CivRegisterReplace<CivHooks::CvAIOperation_CommitToBuildNextUnit>(host, &ReplaceCvAIOperation_CommitToBuildNextUnit);

Code

380/// Called by a city when it decides to build a unit381OperationSlot CvAIOperation::CommitToBuildNextUnit(int iAreaID, int iTurns, CvCity* pCity)382{383	OperationSlot thisSlot;384	if(iAreaID == m_iDefaultArea && !m_viListOfUnitsWeStillNeedToBuild.empty())385	{386		thisSlot = m_viListOfUnitsWeStillNeedToBuild.back();387		m_viListOfUnitsWeStillNeedToBuild.pop_back();388		m_viListOfUnitsCitiesHaveCommittedToBuild.push_back(thisSlot);389390		CvArmyAI* pArmy = GET_PLAYER(m_eOwner).getArmyAI(thisSlot.m_iArmyID);391		if(pArmy)392		{393			int iTurnsFromCityToMusterGuess;394			iTurnsFromCityToMusterGuess = plotDistance(pCity->getX(), pCity->getY(), pArmy->GetX(), pArmy->GetY()) / 2;395			pArmy->SetEstimatedTurn(thisSlot.m_iSlotID, iTurns + iTurnsFromCityToMusterGuess);396		}397	}398	return thisSlot;399}

Calls

Called by