CvCityStrategyAI::UpdateFlavorsForNewCity()
- Defined in
- CvCityStrategyAI.cpp, line 401
- Class
- CvCityStrategyAI
- Hook name
CivHooks::CvCityStrategyAI_UpdateFlavorsForNewCity
Hooks
static bool BeforeCvCityStrategyAI_UpdateFlavorsForNewCity(CvCityStrategyAI* self);static void AfterCvCityStrategyAI_UpdateFlavorsForNewCity(CvCityStrategyAI* self);static void ReplaceCvCityStrategyAI_UpdateFlavorsForNewCity(void (*original)(CvCityStrategyAI*), CvCityStrategyAI* self);CivRegisterBefore<CivHooks::CvCityStrategyAI_UpdateFlavorsForNewCity>(host, &BeforeCvCityStrategyAI_UpdateFlavorsForNewCity);CivRegisterAfter<CivHooks::CvCityStrategyAI_UpdateFlavorsForNewCity>(host, &AfterCvCityStrategyAI_UpdateFlavorsForNewCity);CivRegisterReplace<CivHooks::CvCityStrategyAI_UpdateFlavorsForNewCity>(host, &ReplaceCvCityStrategyAI_UpdateFlavorsForNewCity);
Code
400/// Runs through all active player strategies and propagates Flavors down to this City401void CvCityStrategyAI::UpdateFlavorsForNewCity()402{403 int iFlavorLoop;404405 // Clear out Temp array406 for(iFlavorLoop = 0; iFlavorLoop < GC.getNumFlavorTypes(); iFlavorLoop++)407 {408 m_aiTempFlavors[iFlavorLoop] = 0;409 }410411 // Go through all Player strategies and for the active ones apply the Flavors412 for(int iStrategyLoop = 0; iStrategyLoop < GC.getNumEconomicAIStrategyInfos(); iStrategyLoop++)413 {414 EconomicAIStrategyTypes eStrategy = (EconomicAIStrategyTypes) iStrategyLoop;415 CvEconomicAIStrategyXMLEntry* pStrategy = GC.getEconomicAIStrategyInfo(eStrategy);416417 if(pStrategy)418 {419 // Active?420 if(GET_PLAYER(m_pCity->getOwner()).GetEconomicAI()->IsUsingStrategy(eStrategy))421 {422 for(iFlavorLoop = 0; iFlavorLoop < GC.getNumFlavorTypes(); iFlavorLoop++)423 {424 m_aiTempFlavors[iFlavorLoop] += pStrategy->GetCityFlavorValue(iFlavorLoop);425 }426 }427 }428 }429 for(int iStrategyLoop = 0; iStrategyLoop < GC.getNumMilitaryAIStrategyInfos(); iStrategyLoop++)430 {431 MilitaryAIStrategyTypes eStrategy = (MilitaryAIStrategyTypes) iStrategyLoop;432 CvMilitaryAIStrategyXMLEntry* pStrategy = GC.getMilitaryAIStrategyInfo(eStrategy);433434 if(pStrategy)435 {436 // Active?437 if(GET_PLAYER(m_pCity->getOwner()).GetMilitaryAI()->IsUsingStrategy(eStrategy))438 {439 for(iFlavorLoop = 0; iFlavorLoop < GC.getNumFlavorTypes(); iFlavorLoop++)440 {441 m_aiTempFlavors[iFlavorLoop] += pStrategy->GetCityFlavorValue(iFlavorLoop);442 }443 }444 }445 }446447 ChangeFlavors(m_aiTempFlavors, true);448449 LogFlavors();450}
Calls
- CvCity::getOwner() const
- CvCityStrategyAI::LogFlavors(FlavorTypes)
- CvEconomicAI::IsUsingStrategy(EconomicAIStrategyTypes)
- CvEconomicAIStrategyXMLEntry::GetCityFlavorValue(int) const
- CvFlavorRecipient::ChangeFlavors(int *, bool)
- CvGlobals::getEconomicAIStrategyInfo(EconomicAIStrategyTypes)
- CvGlobals::getMilitaryAIStrategyInfo(MilitaryAIStrategyTypes)
- CvGlobals::getNumEconomicAIStrategyInfos()
- CvGlobals::getNumFlavorTypes()
- CvGlobals::getNumMilitaryAIStrategyInfos()
- CvMilitaryAI::IsUsingStrategy(MilitaryAIStrategyTypes)
- CvMilitaryAIStrategyXMLEntry::GetCityFlavorValue(int) const
- CvPlayer::GetEconomicAI() const
- CvPlayer::GetMilitaryAI() const
- CvPlayerAI::getPlayer(PlayerTypes)