Hooks
static bool BeforeCvCityBuildings_Write(CvCityBuildings* self, FDataStream& kStream);static void AfterCvCityBuildings_Write(CvCityBuildings* self, FDataStream& kStream);static void ReplaceCvCityBuildings_Write(void (*original)(CvCityBuildings*, FDataStream&), CvCityBuildings* self, FDataStream& kStream);CivRegisterBefore<CivHooks::CvCityBuildings_Write>(host, &BeforeCvCityBuildings_Write);CivRegisterAfter<CivHooks::CvCityBuildings_Write>(host, &AfterCvCityBuildings_Write);CivRegisterReplace<CivHooks::CvCityBuildings_Write>(host, &ReplaceCvCityBuildings_Write);
Code
2336/// Serialization write2337void CvCityBuildings::Write(FDataStream& kStream)2338{2339 CvAssertMsg(m_pBuildings != NULL && m_pBuildings->GetNumBuildings() > 0, "Number of buildings to serialize is expected to greater than 0");23402341 // Current version number2342 uint uiVersion = 1;2343 kStream << uiVersion;2344 MOD_SERIALIZE_INIT_WRITE(kStream);23452346 kStream << m_iNumBuildings;2347 kStream << m_iBuildingProductionModifier;2348 kStream << m_iBuildingDefense;2349 kStream << m_iBuildingDefenseMod;2350 kStream << m_iMissionaryExtraSpreads;2351 kStream << m_iLandmarksTourismPercent;2352 kStream << m_iGreatWorksTourismModifier;2353 kStream << m_bSoldBuildingThisTurn;23542355#ifdef _MSC_VER2356#pragma warning ( push )2357#pragma warning ( disable : 6011 ) // if m_pBuildings is NULL during load, we're screwed. Redesign the class or the loader code.2358#endif//_MSC_VER2359 int iNumBuildings = m_pBuildings->GetNumBuildings();2360#ifdef _MSC_VER2361#pragma warning ( pop )2362#endif//_MSC_VER23632364 BuildingArrayHelpers::Write(kStream, m_paiBuildingProduction, iNumBuildings);2365 BuildingArrayHelpers::Write(kStream, m_paiBuildingProductionTime, iNumBuildings);2366 BuildingArrayHelpers::Write(kStream, m_paiBuildingOriginalOwner, iNumBuildings);2367 BuildingArrayHelpers::Write(kStream, m_paiBuildingOriginalTime, iNumBuildings);2368 BuildingArrayHelpers::Write(kStream, m_paiNumRealBuilding, iNumBuildings);2369 BuildingArrayHelpers::Write(kStream, m_paiNumFreeBuilding, iNumBuildings);23702371 kStream << m_aBuildingYieldChange;2372 kStream << m_aBuildingGreatWork;2373}