CvEconomicAI::DisbandExtraArchaeologists()
- Defined in
- CvEconomicAI.cpp, line 2497
- Class
- CvEconomicAI
- Hook name
CivHooks::CvEconomicAI_DisbandExtraArchaeologists
Hooks
static bool BeforeCvEconomicAI_DisbandExtraArchaeologists(CvEconomicAI* self);static void AfterCvEconomicAI_DisbandExtraArchaeologists(CvEconomicAI* self);static void ReplaceCvEconomicAI_DisbandExtraArchaeologists(void (*original)(CvEconomicAI*), CvEconomicAI* self);CivRegisterBefore<CivHooks::CvEconomicAI_DisbandExtraArchaeologists>(host, &BeforeCvEconomicAI_DisbandExtraArchaeologists);CivRegisterAfter<CivHooks::CvEconomicAI_DisbandExtraArchaeologists>(host, &AfterCvEconomicAI_DisbandExtraArchaeologists);CivRegisterReplace<CivHooks::CvEconomicAI_DisbandExtraArchaeologists>(host, &ReplaceCvEconomicAI_DisbandExtraArchaeologists);
Code
2497void CvEconomicAI::DisbandExtraArchaeologists(){2498 int iNumSites = GC.getGame().GetNumArchaeologySites();2499 double dMaxRatio = .5; //Ratio of archaeologists to sites2500 int iNumArchaeologists = m_pPlayer->GetNumUnitsWithUnitAI(UNITAI_ARCHAEOLOGIST, true);2501 PolicyTypes eExpFinisher = (PolicyTypes) GC.getInfoTypeForString("POLICY_EXPLORATION_FINISHER", true /*bHideAssert*/);2502 if (eExpFinisher != NO_POLICY) 2503 {2504 if (m_pPlayer->GetPlayerPolicies()->HasPolicy(eExpFinisher))2505 {2506 iNumSites += GC.getGame().GetNumHiddenArchaeologySites();2507 }2508 }2509 2510 CvUnit* pUnit;2511#if defined(MOD_BUGFIX_UNITCLASS_NOT_UNIT)2512 UnitTypes eArch = m_pPlayer->GetSpecificUnitType("UNITCLASS_ARCHAEOLOGIST", true);2513#else2514 UnitTypes eArch = (UnitTypes) GC.getInfoTypeForString("UNIT_ARCHAEOLOGIST", true /*bHideAssert*/);2515#endif2516 if(eArch == NO_UNIT){2517 return;2518 }2519 if ((double)iNumSites * dMaxRatio + 1 < iNumArchaeologists ){2520 pUnit = FindArchaeologistToScrap();2521 2522 if(!pUnit)2523 {2524 return;2525 }2526 2527 pUnit->scrap();2528 LogScrapUnit(pUnit, iNumArchaeologists, iNumSites, 0, 0);2529 }2530}
Calls
- CvEconomicAI::FindArchaeologistToScrap()
- CvEconomicAI::LogScrapUnit(UnitHandle, int, int, int, int)
- CvGame::GetNumArchaeologySites() const
- CvGame::GetNumHiddenArchaeologySites() const
- CvGlobals::getGame()
- CvGlobals::getInfoTypeForString(const char *, bool) const
- CvPlayer::GetNumUnitsWithUnitAI(UnitAITypes, bool, bool)
- CvPlayer::GetPlayerPolicies() const
- CvPlayer::GetSpecificUnitType(const char *, bool)
- CvPlayerPolicies::HasPolicy(PolicyTypes) const
- CvUnit::scrap()
FObjectHandle::FObjectHandle