CvBuilderTaskingAI::Init(CvPlayer *)
- Defined in
- CvBuilderTaskingAI.cpp, line 38
- Class
- CvBuilderTaskingAI
- Hook name
CivHooks::CvBuilderTaskingAI_Init
Hooks
static bool BeforeCvBuilderTaskingAI_Init(CvBuilderTaskingAI* self, CvPlayer* pPlayer);static void AfterCvBuilderTaskingAI_Init(CvBuilderTaskingAI* self, CvPlayer* pPlayer);static void ReplaceCvBuilderTaskingAI_Init(void (*original)(CvBuilderTaskingAI*, CvPlayer*), CvBuilderTaskingAI* self, CvPlayer* pPlayer);CivRegisterBefore<CivHooks::CvBuilderTaskingAI_Init>(host, &BeforeCvBuilderTaskingAI_Init);CivRegisterAfter<CivHooks::CvBuilderTaskingAI_Init>(host, &AfterCvBuilderTaskingAI_Init);CivRegisterReplace<CivHooks::CvBuilderTaskingAI_Init>(host, &ReplaceCvBuilderTaskingAI_Init);
Code
37/// Init38void CvBuilderTaskingAI::Init(CvPlayer* pPlayer)39{40 m_pPlayer = pPlayer;41 m_eRepairBuild = GetRepairBuild();42 m_eFalloutFeature = GetFalloutFeature();43 m_eFalloutRemove = GetFalloutRemove();4445 m_aiNonTerritoryPlots.clear();46 m_bLogging = GC.getLogging() && GC.getAILogging() && GC.GetBuilderAILogging();47 m_iNumCities = -1;48 m_pTargetPlot = NULL;4950 // special case code so the Dutch don't remove marshes51 m_bKeepMarshes = false;52 // special case code so Brazil doesn't remove jungle53 m_bKeepJungle = false;5455 for(int i = 0; i < GC.getNumBuildInfos(); i++)56 {57 BuildTypes eBuild = (BuildTypes)i;58 CvBuildInfo* pkBuild = GC.getBuildInfo(eBuild);59 if(!pkBuild)60 {61 continue;62 }63 64 ImprovementTypes eImprovement = (ImprovementTypes)pkBuild->getImprovement();65 if(eImprovement == NO_IMPROVEMENT)66 {67 continue;68 }6970 CvImprovementEntry* pkImprovementInfo = GC.getImprovementInfo(eImprovement);71 if(pkImprovementInfo == NULL)72 {73 continue;74 }7576 if(pkImprovementInfo->IsSpecificCivRequired())77 {78 CivilizationTypes eCiv = pkImprovementInfo->GetRequiredCivilization();79 if(eCiv == pPlayer->getCivilizationType())80 {81 if(pkImprovementInfo->GetFeatureMakesValid(FEATURE_MARSH))82 {83 m_bKeepMarshes = true;84 }85 else if (pkImprovementInfo->GetFeatureMakesValid(FEATURE_JUNGLE))86 {87 m_bKeepJungle = true;88 }89 }90 }91 }92}
Calls
BaseVector::clear- CvBuilderTaskingAI::GetFalloutFeature()
- CvBuilderTaskingAI::GetFalloutRemove()
- CvBuilderTaskingAI::GetRepairBuild()
- CvBuildInfo::getImprovement() const
- CvGlobals::getAILogging()
- CvGlobals::GetBuilderAILogging()
- CvGlobals::getBuildInfo(BuildTypes)
- CvGlobals::getImprovementInfo(ImprovementTypes)
- CvGlobals::getLogging()
- CvGlobals::getNumBuildInfos()
- CvImprovementEntry::GetFeatureMakesValid(int) const
- CvImprovementEntry::GetRequiredCivilization() const
- CvImprovementEntry::IsSpecificCivRequired() const
- CvPlayer::getCivilizationType() const