CvCitySpecializationAI::SetSpecializationsDirty(CitySpecializationUpdateType)
- Defined in
- CvCitySpecializationAI.cpp, line 375
- Class
- CvCitySpecializationAI
- Hook name
CivHooks::CvCitySpecializationAI_SetSpecializationsDirty
Hooks
static bool BeforeCvCitySpecializationAI_SetSpecializationsDirty(CvCitySpecializationAI* self, CitySpecializationUpdateType eUpdateType);static void AfterCvCitySpecializationAI_SetSpecializationsDirty(CvCitySpecializationAI* self, CitySpecializationUpdateType eUpdateType);static void ReplaceCvCitySpecializationAI_SetSpecializationsDirty(void (*original)(CvCitySpecializationAI*, CitySpecializationUpdateType), CvCitySpecializationAI* self, CitySpecializationUpdateType eUpdateType);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvCitySpecializationAI_SetSpecializationsDirty::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvCitySpecializationAI_SetSpecializationsDirty);host->RegisterHook(host->pluginIndex, CivHooks::CvCitySpecializationAI_SetSpecializationsDirty::ID, CIV_HOOK_AFTER, (void*)&AfterCvCitySpecializationAI_SetSpecializationsDirty);host->RegisterHook(host->pluginIndex, CivHooks::CvCitySpecializationAI_SetSpecializationsDirty::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvCitySpecializationAI_SetSpecializationsDirty);
Code
374/// Change specializations for cities since world state has changed375void CvCitySpecializationAI::SetSpecializationsDirty(CitySpecializationUpdateType eUpdateType)376{377 // No city specializations for minor civs378 if(!m_pPlayer->isMinorCiv())379 {380 m_bSpecializationsDirty = true;381 LogSpecializationUpdate(eUpdateType);382383 switch(eUpdateType)384 {385 case SPECIALIZATION_UPDATE_NOW_AT_WAR:386 case SPECIALIZATION_UPDATE_MY_CITY_CAPTURED:387 m_bInterruptWonders = true;388 break;389 default:390 // Don't set it to false for these other cases!391 // We shouldn't set it to false until after the next time we've picked specializations.392 break;393 }394 }395396 return;397}
Calls
Called by
- CvCityAI::AI_chooseProduction(bool)
- CvDiplomacyAI::DeclareWar(PlayerTypes)
- CvDiplomacyAI::DoFromUIDiploEvent(PlayerTypes, FromUIDiploEventTypes, int, int)
- CvDiplomacyAI::DoSomeoneDeclaredWarOnMe(TeamTypes)
- CvGrandStrategyAI::DoTurn()
- CvMilitaryAI::UseStrategy(MilitaryAIStrategyTypes, bool)
- CvPlayer::acquireCity(CvCity *, bool, bool, bool)
- CvPlayer::found(int, int, ReligionTypes)
- CvTeamTechs::SetResearchProgressTimes100(TechTypes, int, PlayerTypes, int, int)