CvBuildingProductionAI::Write(FDataStream &)
- Defined in
- CvBuildingProductionAI.cpp, line 99
- Class
- CvBuildingProductionAI
- Hook name
CivHooks::CvBuildingProductionAI_Write
Hooks
static bool BeforeCvBuildingProductionAI_Write(CvBuildingProductionAI* self, FDataStream& kStream);static void AfterCvBuildingProductionAI_Write(CvBuildingProductionAI* self, FDataStream& kStream);static void ReplaceCvBuildingProductionAI_Write(void (*original)(CvBuildingProductionAI*, FDataStream&), CvBuildingProductionAI* self, FDataStream& kStream);CivRegisterBefore<CivHooks::CvBuildingProductionAI_Write>(host, &BeforeCvBuildingProductionAI_Write);CivRegisterAfter<CivHooks::CvBuildingProductionAI_Write>(host, &AfterCvBuildingProductionAI_Write);CivRegisterReplace<CivHooks::CvBuildingProductionAI_Write>(host, &ReplaceCvBuildingProductionAI_Write);
Code
98/// Serialization write99void CvBuildingProductionAI::Write(FDataStream& kStream)100{101 CvAssertMsg(m_pCityBuildings != NULL, "Building Production AI init failure: city buildings are NULL");102103 // Current version number104 uint uiVersion = 1;105 kStream << uiVersion;106 MOD_SERIALIZE_INIT_WRITE(kStream);107108 if(m_pCityBuildings)109 {110 int iNumBuildings = m_pCityBuildings->GetBuildings()->GetNumBuildings();111 kStream << iNumBuildings;112113 // Loop through writing each entry114 for(int iI = 0; iI < iNumBuildings; iI++)115 {116 const BuildingTypes eBuilding = static_cast<BuildingTypes>(iI);117 CvBuildingEntry* pkBuildingInfo = GC.getBuildingInfo(eBuilding);118 if(pkBuildingInfo)119 {120 CvInfosSerializationHelper::WriteHashed(kStream, pkBuildingInfo);121 kStream << m_BuildingAIWeights.GetWeight(iI);122 }123 else124 {125 kStream << (int)0;126 }127 }128 }129}
Calls
- CvBuildingXMLEntries::GetNumBuildings()
- CvCityBuildings::GetBuildings() const
- CvGlobals::getBuildingInfo(BuildingTypes)
- CvInfosSerializationHelper::WriteHashed(FDataStream &, const CvBaseInfo *)
CvWeightedVector::GetWeightFDataStream::operator<<FDataStream::operator<<