Hooks
static bool BeforeCvCityBuildings_Init(CvCityBuildings* self, CvBuildingXMLEntries* pBuildings, CvCity* pCity);static void AfterCvCityBuildings_Init(CvCityBuildings* self, CvBuildingXMLEntries* pBuildings, CvCity* pCity);static void ReplaceCvCityBuildings_Init(void (*original)(CvCityBuildings*, CvBuildingXMLEntries*, CvCity*), CvCityBuildings* self, CvBuildingXMLEntries* pBuildings, CvCity* pCity);CivRegisterBefore<CivHooks::CvCityBuildings_Init>(host, &BeforeCvCityBuildings_Init);CivRegisterAfter<CivHooks::CvCityBuildings_Init>(host, &AfterCvCityBuildings_Init);CivRegisterReplace<CivHooks::CvCityBuildings_Init>(host, &ReplaceCvCityBuildings_Init);
Code
2230/// Initialize2231void CvCityBuildings::Init(CvBuildingXMLEntries* pBuildings, CvCity* pCity)2232{2233 // Store off the pointers to objects we'll need later2234 m_pBuildings = pBuildings;2235 m_pCity = pCity;22362237 // Initialize status arrays22382239 int iNumBuildings = m_pBuildings->GetNumBuildings();22402241 CvAssertMsg((0 < iNumBuildings), "m_pBuildings->GetNumBuildings() is not greater than zero but an array is being allocated in CvCityBuildings::Init");22422243 CvAssertMsg(m_paiBuildingProduction==NULL, "about to leak memory, CvCityBuildings::m_paiBuildingProduction");2244 m_paiBuildingProduction = FNEW(int[iNumBuildings], c_eCiv5GameplayDLL, 0);22452246 CvAssertMsg(m_paiBuildingProductionTime==NULL, "about to leak memory, CvCityBuildings::m_paiBuildingProductionTime");2247 m_paiBuildingProductionTime = FNEW(int[iNumBuildings], c_eCiv5GameplayDLL, 0);22482249 CvAssertMsg(m_paiBuildingOriginalOwner==NULL, "about to leak memory, CvCityBuildings::m_paiBuildingOriginalOwner");2250 m_paiBuildingOriginalOwner = FNEW(int[iNumBuildings], c_eCiv5GameplayDLL, 0);22512252 CvAssertMsg(m_paiBuildingOriginalTime==NULL, "about to leak memory, CvCityBuildings::m_paiBuildingOriginalTime");2253 m_paiBuildingOriginalTime = FNEW(int[iNumBuildings], c_eCiv5GameplayDLL, 0);22542255 CvAssertMsg(m_paiNumRealBuilding==NULL, "about to leak memory, CvCityBuildings::m_paiNumRealBuilding");2256 m_paiNumRealBuilding = FNEW(int[iNumBuildings], c_eCiv5GameplayDLL, 0);22572258 CvAssertMsg(m_paiNumFreeBuilding==NULL, "about to leak memory, CvCityBuildings::m_paiNumFreeBuilding");2259 m_paiNumFreeBuilding = FNEW(int[iNumBuildings], c_eCiv5GameplayDLL, 0);22602261 m_aBuildingYieldChange.clear();2262 m_aBuildingGreatWork.clear();22632264 Reset();2265}