Bazaar developer reference

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

Called by