Hooks
static bool BeforeCvCityStrategyAI_Init(CvCityStrategyAI* self, CvAICityStrategies* pAICityStrategies, CvCity* pCity, bool bIsCity);static void AfterCvCityStrategyAI_Init(CvCityStrategyAI* self, CvAICityStrategies* pAICityStrategies, CvCity* pCity, bool bIsCity);static void ReplaceCvCityStrategyAI_Init(void (*original)(CvCityStrategyAI*, CvAICityStrategies*, CvCity*, bool), CvCityStrategyAI* self, CvAICityStrategies* pAICityStrategies, CvCity* pCity, bool bIsCity);CivRegisterBefore<CivHooks::CvCityStrategyAI_Init>(host, &BeforeCvCityStrategyAI_Init);CivRegisterAfter<CivHooks::CvCityStrategyAI_Init>(host, &AfterCvCityStrategyAI_Init);CivRegisterReplace<CivHooks::CvCityStrategyAI_Init>(host, &ReplaceCvCityStrategyAI_Init);
Code
255/// Initialize256void CvCityStrategyAI::Init(CvAICityStrategies* pAICityStrategies, CvCity* pCity, bool bIsCity)257{258 // Init base class259 CvFlavorRecipient::Init();260261 // Store off the pointers passed in to this object262 m_bIsCity = bIsCity;263 m_pAICityStrategies = pAICityStrategies;264 m_pCity = pCity;265266 // Initialize arrays267 CvAssertMsg(m_pabUsingCityStrategy==NULL, "about to leak memory, CvCityAIStrategies::m_pabUsingCityStrategy");268 m_pabUsingCityStrategy = FNEW(bool[m_pAICityStrategies->GetNumAICityStrategies()], c_eCiv5GameplayDLL, 0);269270 CvAssertMsg(m_paiTurnCityStrategyAdopted==NULL, "about to leak memory, CvCityAIStrategies::m_paiTurnCityStrategyAdopted");271 m_paiTurnCityStrategyAdopted = FNEW(int[m_pAICityStrategies->GetNumAICityStrategies()], c_eCiv5GameplayDLL, 0);272273 CvAssertMsg(m_aiTempFlavors==NULL, "about to leak memory, CvCityAIStrategies::m_aiTempFlavors");274 m_aiTempFlavors = FNEW(int[GC.getNumFlavorTypes()], c_eCiv5GameplayDLL, 0);275276 // Create AI subobjects277 m_pBuildingProductionAI = FNEW(CvBuildingProductionAI(pCity, pCity->GetCityBuildings()), c_eCiv5GameplayDLL, 0);278 m_pUnitProductionAI = FNEW(CvUnitProductionAI(pCity, GC.GetGameUnits()), c_eCiv5GameplayDLL, 0);279 m_pProjectProductionAI = FNEW(CvProjectProductionAI(pCity), c_eCiv5GameplayDLL, 0);280 m_pProcessProductionAI = FNEW(CvProcessProductionAI(pCity), c_eCiv5GameplayDLL, 0);281282 // Clear variables283 Reset();284}