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}