Bazaar developer reference

CvEconomicAI::Read(FDataStream &)

Defined in
CvEconomicAI.cpp, line 345
Class
CvEconomicAI
Hook name
CivHooks::CvEconomicAI_Read

Hooks

static bool BeforeCvEconomicAI_Read(CvEconomicAI* self, FDataStream& kStream);static void AfterCvEconomicAI_Read(CvEconomicAI* self, FDataStream& kStream);static void ReplaceCvEconomicAI_Read(void (*original)(CvEconomicAI*, FDataStream&), CvEconomicAI* self, FDataStream& kStream);CivRegisterBefore<CivHooks::CvEconomicAI_Read>(host, &BeforeCvEconomicAI_Read);CivRegisterAfter<CivHooks::CvEconomicAI_Read>(host, &AfterCvEconomicAI_Read);CivRegisterReplace<CivHooks::CvEconomicAI_Read>(host, &ReplaceCvEconomicAI_Read);

Code

344/// Serialization read345void CvEconomicAI::Read(FDataStream& kStream)346{347	// Version number to maintain backwards compatibility348	uint uiVersion;349	kStream >> uiVersion;350	MOD_SERIALIZE_INIT_READ(kStream);351352	int iEntriesToRead;353354	FAssertMsg(m_pAIStrategies != NULL && m_pAIStrategies->GetNumEconomicAIStrategies() > 0, "Number of AIStrategies to serialize is expected to greater than 0");355356	kStream >> iEntriesToRead;357358#ifdef _MSC_VER359#pragma warning ( push )360#pragma warning ( disable : 6011 ) // no clear solution or recovery if m_pAIStrategies is ever NULL361#endif//_MSC_VER362	ArrayWrapper<bool> wrapGetNumEconomicAIStrategies(iEntriesToRead, m_pabUsingStrategy);363#ifdef _MSC_VER364#pragma warning ( pop )365#endif//_MSC_VER366367	kStream >> wrapGetNumEconomicAIStrategies;368369	ArrayWrapper<int> wrapGetNumEconomicAIStrategies2(iEntriesToRead, m_paiTurnStrategyAdopted);370	kStream >> wrapGetNumEconomicAIStrategies2;371372	for(uint ui = 0; ui < NUM_YIELD_TYPES; ui++)373	{374		kStream >> m_auiYields[ui];375	}376377	kStream >> m_bExplorationPlotsDirty;378379	kStream >> iEntriesToRead;380381#define MAX_PLOT_ARRAY_SIZE	((152+1)*(96+1))382	int iMaxEntriesToRead = MIN(MAX_PLOT_ARRAY_SIZE, iEntriesToRead);383384	m_aiExplorationPlots.resize(iMaxEntriesToRead);385	m_aiExplorationPlotRatings.resize(iMaxEntriesToRead);386387	for(int i = 0; i < iMaxEntriesToRead; i++)388	{389		kStream >> m_aiExplorationPlots[i];390		kStream >> m_aiExplorationPlotRatings[i];391	}392393	// Skip any ones that go over the limit394	for(int i = iMaxEntriesToRead; i < iEntriesToRead; i++)395	{396		int iDummy;397		kStream >> iDummy;398		kStream >> iDummy;399	}400401	// goody hut plots402	kStream >> iEntriesToRead;403	iMaxEntriesToRead = MIN(MAX_PLOT_ARRAY_SIZE, iEntriesToRead);404	m_aiGoodyHutPlots.resize(iMaxEntriesToRead);405	m_aiGoodyHutUnitAssignments.resize(iMaxEntriesToRead);406407	for(int i = 0; i < iMaxEntriesToRead; i++)408	{409		kStream >> m_aiGoodyHutPlots[i];410		m_aiGoodyHutUnitAssignments[i].Clear();411		kStream >> m_aiGoodyHutUnitAssignments[i].m_iUnitID;412	}413414	// Skip any ones that go over the limit415	for(int i = iMaxEntriesToRead; i < iEntriesToRead; i++)416	{417		int iDummy;418		kStream >> iDummy;419		kStream >> iDummy;420	}421422	int iTemp;423	kStream >> iTemp;424	m_eReconState = (ReconState)iTemp;425	kStream >> iTemp;426	m_eNavalReconState = (ReconState)iTemp;427428	kStream >> m_iExplorersDisbanded;429	kStream >> m_iLastTurnWorkerDisbanded;430	kStream >> m_iVisibleAntiquitySites;431432	kStream >> iEntriesToRead;433	for(int i = 0; i < iEntriesToRead; i++)434	{435		kStream >> m_RequestedSavings[i];436	}437}

Calls

Called by