CvHomelandAI::PlotFirstTurnSettlerMoves()
- Defined in
- CvHomelandAI.cpp, line 874
- Class
- CvHomelandAI
- Hook name
CivHooks::CvHomelandAI_PlotFirstTurnSettlerMoves
Hooks
static bool BeforeCvHomelandAI_PlotFirstTurnSettlerMoves(CvHomelandAI* self);static void AfterCvHomelandAI_PlotFirstTurnSettlerMoves(CvHomelandAI* self);static void ReplaceCvHomelandAI_PlotFirstTurnSettlerMoves(void (*original)(CvHomelandAI*), CvHomelandAI* self);CivRegisterBefore<CivHooks::CvHomelandAI_PlotFirstTurnSettlerMoves>(host, &BeforeCvHomelandAI_PlotFirstTurnSettlerMoves);CivRegisterAfter<CivHooks::CvHomelandAI_PlotFirstTurnSettlerMoves>(host, &AfterCvHomelandAI_PlotFirstTurnSettlerMoves);CivRegisterReplace<CivHooks::CvHomelandAI_PlotFirstTurnSettlerMoves>(host, &ReplaceCvHomelandAI_PlotFirstTurnSettlerMoves);
Code
873/// Get our first city built874void CvHomelandAI::PlotFirstTurnSettlerMoves()875{876 ClearCurrentMoveUnits();877878 // Loop through all recruited units879 for(list<int>::iterator it = m_CurrentTurnUnits.begin(); it != m_CurrentTurnUnits.end(); ++it)880 {881 bool bGoingToSettle = false;882 UnitHandle pUnit = m_pPlayer->getUnit(*it);883 if(pUnit && !pUnit->isHuman())884 {885 if(m_pPlayer->getNumCities() == 0 && m_CurrentMoveUnits.size() == 0)886 {887 if(pUnit->canFound(pUnit->plot()))888 {889 CvHomelandUnit unit;890 unit.SetID(pUnit->GetID());891 m_CurrentMoveUnits.push_back(unit);892 bGoingToSettle = true;893 }894 }895 }896897 // If we find a settler that isn't in an operation, let's keep him in place898#if defined(MOD_AI_SMART_V3)899 if(pUnit && (MOD_AI_SMART_V3 && !pUnit->isHuman()) &&900 !bGoingToSettle && pUnit->isFound() && pUnit->getArmyID() == FFreeList::INVALID_INDEX)901#else902 if(!bGoingToSettle && pUnit->isFound() && pUnit->getArmyID() == FFreeList::INVALID_INDEX)903#endif904 {905 pUnit->PushMission(CvTypes::getMISSION_SKIP());906 pUnit->finishMoves();907 }908 }909910 if(!m_CurrentMoveUnits.empty())911 {912 ExecuteFirstTurnSettlerMoves();913 }914}
Calls
BaseVector::emptyBaseVector::size- CustomMods::isAI_SMART_V3()
- CvHomelandAI::ClearCurrentMoveUnits()
- CvHomelandAI::ExecuteFirstTurnSettlerMoves()
- CvHomelandUnit::CvHomelandUnit()
- CvHomelandUnit::SetID(int)
- CvPlayer::getNumCities() const
- CvPlayer::getUnit(int)
- CvTypes::getMISSION_SKIP()
- CvUnit::canFound(const CvPlot *, bool) const
- CvUnit::finishMoves()
- CvUnit::getArmyID() const
- CvUnit::GetID() const
- CvUnit::isFound() const
- CvUnit::isHuman() const
- CvUnit::plot() const
- CvUnit::PushMission(MissionTypes, int, int, int, bool, bool, MissionAITypes, CvPlot *, CvUnit *)
FObjectHandle::FObjectHandleFObjectHandle::operator boolFObjectHandle::operator->FStaticVector::push_backstd::list::_Const_iterator::operator!=std::list::_Iterator::operator*std::list::_Iterator::operator++std::list::beginstd::list::end