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
- CvArmyAI::GetX() const
- CvArmyAI::GetY() const
- CvArmyAI::SetEstimatedTurn(int, int)
- CvCity::getX() const
- CvCity::getY() const
- CvPlayer::getArmyAI(int)
- CvPlayerAI::getPlayer(PlayerTypes)
OperationSlot::OperationSlot- OperationSlot::OperationSlot()
OperationSlot::operator=- plotDistance(int, int, int, int)
std::vector::backstd::vector::emptystd::vector::pop_backstd::vector::push_back