Bazaar developer reference

CvHomelandAI::PlotWorkerMoves(bool)

Defined in
CvHomelandAI.cpp, line 1306
Class
CvHomelandAI
Hook name
CivHooks::CvHomelandAI_PlotWorkerMoves

Hooks

static bool BeforeCvHomelandAI_PlotWorkerMoves(CvHomelandAI* self, bool bSecondary);static void AfterCvHomelandAI_PlotWorkerMoves(CvHomelandAI* self, bool bSecondary);static void ReplaceCvHomelandAI_PlotWorkerMoves(void (*original)(CvHomelandAI*, bool), CvHomelandAI* self, bool bSecondary);CivRegisterBefore<CivHooks::CvHomelandAI_PlotWorkerMoves>(host, &BeforeCvHomelandAI_PlotWorkerMoves);CivRegisterAfter<CivHooks::CvHomelandAI_PlotWorkerMoves>(host, &AfterCvHomelandAI_PlotWorkerMoves);CivRegisterReplace<CivHooks::CvHomelandAI_PlotWorkerMoves>(host, &ReplaceCvHomelandAI_PlotWorkerMoves);

Code

1304/// Find something for all workers to do1305#if defined(MOD_AI_SECONDARY_WORKERS)1306void CvHomelandAI::PlotWorkerMoves(bool bSecondary)1307#else1308void CvHomelandAI::PlotWorkerMoves()1309#endif1310{1311	ClearCurrentMoveUnits();13121313	// Loop through all recruited units1314	for(list<int>::iterator it = m_CurrentTurnUnits.begin(); it != m_CurrentTurnUnits.end(); ++it)1315	{1316		UnitHandle pUnit = m_pPlayer->getUnit(*it);1317		if(pUnit)1318		{1319#if defined(MOD_AI_SECONDARY_WORKERS)1320			bool bUsePrimaryUnit = (pUnit->AI_getUnitAIType() == UNITAI_WORKER || pUnit->IsAutomated() && pUnit->getDomainType() == DOMAIN_LAND && pUnit->GetAutomateType() == AUTOMATE_BUILD);1321			bool bUseSecondaryUnit = (pUnit->AI_getUnitAIType() != UNITAI_WORKER && (pUnit->getUnitInfo().GetUnitAIType(UNITAI_WORKER) || pUnit->getUnitInfo().GetUnitAIType(UNITAI_WORKER_SEA)) && pUnit->getDomainType() == DOMAIN_LAND);13221323			if((!bSecondary && bUsePrimaryUnit) || (bSecondary && bUseSecondaryUnit))1324#else1325			if(pUnit->AI_getUnitAIType() == UNITAI_WORKER  ||1326			        pUnit->IsAutomated() && pUnit->getDomainType() == DOMAIN_LAND && pUnit->GetAutomateType() == AUTOMATE_BUILD)1327#endif1328			{1329				CvHomelandUnit unit;1330				unit.SetID(pUnit->GetID());1331				m_CurrentMoveUnits.push_back(unit);1332			}1333		}1334	}13351336	if(m_CurrentMoveUnits.size() > 0)1337	{1338#if defined(MOD_AI_SECONDARY_WORKERS)1339		ExecuteWorkerMoves(bSecondary);1340#else1341		ExecuteWorkerMoves();1342#endif1343	}1344}

Calls

Called by