CvBuildingProductionAI::Read(FDataStream &)
- Defined in
- CvBuildingProductionAI.cpp, line 46
- Class
- CvBuildingProductionAI
- Hook name
CivHooks::CvBuildingProductionAI_Read
Hooks
static bool BeforeCvBuildingProductionAI_Read(CvBuildingProductionAI* self, FDataStream& kStream);static void AfterCvBuildingProductionAI_Read(CvBuildingProductionAI* self, FDataStream& kStream);static void ReplaceCvBuildingProductionAI_Read(void (*original)(CvBuildingProductionAI*, FDataStream&), CvBuildingProductionAI* self, FDataStream& kStream);CivRegisterBefore<CivHooks::CvBuildingProductionAI_Read>(host, &BeforeCvBuildingProductionAI_Read);CivRegisterAfter<CivHooks::CvBuildingProductionAI_Read>(host, &AfterCvBuildingProductionAI_Read);CivRegisterReplace<CivHooks::CvBuildingProductionAI_Read>(host, &ReplaceCvBuildingProductionAI_Read);
Code
45/// Serialization read46void CvBuildingProductionAI::Read(FDataStream& kStream)47{48 // Version number to maintain backwards compatibility49 uint uiVersion;50 kStream >> uiVersion;51 MOD_SERIALIZE_INIT_READ(kStream);5253 // Reset vector54 m_BuildingAIWeights.clear();5556 // Loop through reading each one and adding it to our vector57 if(m_pCityBuildings)58 {59 for(int i = 0; i < m_pCityBuildings->GetBuildings()->GetNumBuildings(); i++)60 {61 m_BuildingAIWeights.push_back(i, 0);62 }6364 int iNumEntries;65 FStringFixedBuffer(sTemp, 64);66 int iType;6768 kStream >> iNumEntries;6970 for(int iI = 0; iI < iNumEntries; iI++)71 {72 bool bValid = true;73 iType = CvInfosSerializationHelper::ReadHashed(kStream, &bValid);74 if(iType != -1 || !bValid)75 {76 int iWeight;77 kStream >> iWeight;78 if(iType != -1)79 {80 m_BuildingAIWeights.IncreaseWeight(iType, iWeight);81 }82 else83 {84 CvString szError;85 szError.Format("LOAD ERROR: Building Type not found");86 GC.LogMessage(szError.GetCString());87 CvAssertMsg(false, szError);88 }89 }90 }91 }92 else93 {94 CvAssertMsg(m_pCityBuildings != NULL, "Building Production AI init failure: city buildings are NULL");95 }96}
Calls
- CvBuildingXMLEntries::GetNumBuildings()
- CvCityBuildings::GetBuildings() const
- CvGlobals::LogMessage(const char *)
- CvInfosSerializationHelper::ReadHashed(FDataStream &, bool *)
CvString::CvStringCvString::FormatCvString::GetCStringCvWeightedVector::clearCvWeightedVector::IncreaseWeightCvWeightedVector::push_backFDataStream::operator>>FDataStream::operator>>FStringA::FStringAFStringA::FStringAFixedBuffer::FStringAFixedBuffer