CvCityStrategyAI::SpecializationFlavorChange(bool, CitySpecializationTypes)
- Defined in
- CvCityStrategyAI.cpp, line 486
- Class
- CvCityStrategyAI
- Hook name
CivHooks::CvCityStrategyAI_SpecializationFlavorChange
Hooks
static bool BeforeCvCityStrategyAI_SpecializationFlavorChange(CvCityStrategyAI* self, bool bTurnOn, CitySpecializationTypes eSpecialization);static void AfterCvCityStrategyAI_SpecializationFlavorChange(CvCityStrategyAI* self, bool bTurnOn, CitySpecializationTypes eSpecialization);static void ReplaceCvCityStrategyAI_SpecializationFlavorChange(void (*original)(CvCityStrategyAI*, bool, CitySpecializationTypes), CvCityStrategyAI* self, bool bTurnOn, CitySpecializationTypes eSpecialization);CivRegisterBefore<CivHooks::CvCityStrategyAI_SpecializationFlavorChange>(host, &BeforeCvCityStrategyAI_SpecializationFlavorChange);CivRegisterAfter<CivHooks::CvCityStrategyAI_SpecializationFlavorChange>(host, &AfterCvCityStrategyAI_SpecializationFlavorChange);CivRegisterReplace<CivHooks::CvCityStrategyAI_SpecializationFlavorChange>(host, &ReplaceCvCityStrategyAI_SpecializationFlavorChange);
Code
485/// Turn on or off the flavors for a city specialization486void CvCityStrategyAI::SpecializationFlavorChange(bool bTurnOn, CitySpecializationTypes eSpecialization)487{488 if(eSpecialization != NO_CITY_SPECIALIZATION)489 {490 CvCitySpecializationXMLEntry* pSpecialization = GC.getCitySpecializationInfo(eSpecialization);491 if(pSpecialization)492 {493 int iFlavorLoop;494495 // Clear out Temp array496 for(iFlavorLoop = 0; iFlavorLoop < GC.getNumFlavorTypes(); iFlavorLoop++)497 {498 m_aiTempFlavors[iFlavorLoop] = 0;499 }500501 for(iFlavorLoop = 0; iFlavorLoop < GC.getNumFlavorTypes(); iFlavorLoop++)502 {503 if(bTurnOn)504 {505 m_aiTempFlavors[iFlavorLoop] += pSpecialization->GetFlavorValue(iFlavorLoop);506 }507 else508 {509 m_aiTempFlavors[iFlavorLoop] -= pSpecialization->GetFlavorValue(iFlavorLoop);510 }511 }512513 ChangeFlavors(m_aiTempFlavors, true);514515 LogFlavors();516 }517 }518}