Bazaar developer reference

CvEconomicAI::FindWorkerToScrap()

Defined in
CvEconomicAI.cpp, line 2844
Class
CvEconomicAI
Hook name
CivHooks::CvEconomicAI_FindWorkerToScrap

Hooks

static bool BeforeCvEconomicAI_FindWorkerToScrap(CvEconomicAI* self, CvUnit*& result);static void AfterCvEconomicAI_FindWorkerToScrap(CvEconomicAI* self, CvUnit*& result);static CvUnit* ReplaceCvEconomicAI_FindWorkerToScrap(CvUnit* (*original)(CvEconomicAI*), CvEconomicAI* self);CivRegisterBefore<CivHooks::CvEconomicAI_FindWorkerToScrap>(host, &BeforeCvEconomicAI_FindWorkerToScrap);CivRegisterAfter<CivHooks::CvEconomicAI_FindWorkerToScrap>(host, &AfterCvEconomicAI_FindWorkerToScrap);CivRegisterReplace<CivHooks::CvEconomicAI_FindWorkerToScrap>(host, &ReplaceCvEconomicAI_FindWorkerToScrap);

Code

2844CvUnit* CvEconomicAI::FindWorkerToScrap()2845{2846	CvUnit* pLoopUnit = NULL;2847	int iUnitLoop = 0;28482849	// Look at map for loose workers2850	for(pLoopUnit = m_pPlayer->firstUnit(&iUnitLoop); pLoopUnit != NULL; pLoopUnit = m_pPlayer->nextUnit(&iUnitLoop))2851	{2852		if(!pLoopUnit)2853		{2854			continue;2855		}2856#if defined(MOD_BUGFIX_UNITCLASS_NOT_UNIT)2857		UnitTypes eWorker = m_pPlayer->GetSpecificUnitType("UNITCLASS_WORKER");2858#else2859		UnitTypes eWorker = (UnitTypes) GC.getInfoTypeForString("UNIT_WORKER");2860#endif2861		if(pLoopUnit->getDomainType() == DOMAIN_LAND && pLoopUnit->getUnitType() == eWorker && !pLoopUnit->IsCombatUnit() && pLoopUnit->getSpecialUnitType() == NO_SPECIALUNIT)2862		{2863			return pLoopUnit;2864		}2865	}28662867	return NULL;2868}

Calls

Called by