Bazaar developer reference

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

Called by