Bazaar developer reference

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

Called by