Bazaar developer reference

CvPlot::read(FDataStream &)

Defined in
CvPlot.cpp, line 10542
Class
CvPlot
Hook name
CivHooks::CvPlot_read

Hooks

static bool BeforeCvPlot_read(CvPlot* self, FDataStream& kStream);static void AfterCvPlot_read(CvPlot* self, FDataStream& kStream);static void ReplaceCvPlot_read(void (*original)(CvPlot*, FDataStream&), CvPlot* self, FDataStream& kStream);CivRegisterBefore<CivHooks::CvPlot_read>(host, &BeforeCvPlot_read);CivRegisterAfter<CivHooks::CvPlot_read>(host, &AfterCvPlot_read);CivRegisterReplace<CivHooks::CvPlot_read>(host, &ReplaceCvPlot_read);

Code

10538//10539// read object from a stream10540// used during load10541//10542void CvPlot::read(FDataStream& kStream)10543{10544	int iCount;1054510546	// Init saved data10547	reset();1054810549	// Version number to maintain backwards compatibility10550	uint uiVersion;10551	kStream >> uiVersion;10552	CvAssertMsg(uiVersion <= g_CurrentCvPlotVersion, "Unexpected Version.  This could be caused by serialization errors.");10553	MOD_SERIALIZE_INIT_READ(kStream);1055410555	kStream >> m_iX;10556	kStream >> m_iY;10557	kStream >> m_iArea;10558	kStream >> m_iFeatureVariety;10559	kStream >> m_iOwnershipDuration;10560	kStream >> m_iImprovementDuration;10561	kStream >> m_iUpgradeProgress;10562	kStream >> m_iCulture;10563	kStream >> m_iNumMajorCivsRevealed;10564	kStream >> m_iCityRadiusCount;10565	kStream >> m_iReconCount;10566	kStream >> m_iRiverCrossingCount;10567	kStream >> m_iResourceNum;10568	kStream >> m_cBuilderAIScratchPadPlayer;10569	kStream >> m_sBuilderAIScratchPadTurn;10570	kStream >> m_sBuilderAIScratchPadValue;10571	kStream >> m_eBuilderAIScratchPadRoute;10572	kStream >> m_iLandmass;10573	kStream >> m_uiTradeRouteBitFlags;1057410575	// the following members specify bit packing and do not resolve to10576	// any serializable type.10577	bool bitPackWorkaround;10578	kStream >> bitPackWorkaround;10579	m_bStartingPlot = bitPackWorkaround;10580	kStream >> bitPackWorkaround;10581	m_bHills = bitPackWorkaround;10582	kStream >> bitPackWorkaround;10583	m_bNEOfRiver = bitPackWorkaround;10584	kStream >> bitPackWorkaround;10585	m_bWOfRiver = bitPackWorkaround;10586	kStream >> bitPackWorkaround;10587	m_bNWOfRiver = bitPackWorkaround;10588	kStream >> bitPackWorkaround;10589	m_bPotentialCityWork = bitPackWorkaround;10590	kStream >> bitPackWorkaround;10591	m_bImprovementPillaged = bitPackWorkaround;10592	kStream >> bitPackWorkaround;10593	m_bRoutePillaged = bitPackWorkaround;10594	kStream >> bitPackWorkaround;10595	m_bBarbCampNotConverting = bitPackWorkaround;10596	kStream >> bitPackWorkaround;10597	m_bRoughFeature = bitPackWorkaround;10598	kStream >> bitPackWorkaround;10599	m_bResourceLinkedCityActive = bitPackWorkaround;10600	kStream >> bitPackWorkaround;10601	m_bImprovedByGiftFromMajor = bitPackWorkaround;1060210603	kStream >> m_eOwner;10604	kStream >> m_ePlotType;10605	kStream >> m_eTerrainType;10606	if (uiVersion >= 3)10607		m_eFeatureType = (FeatureTypes) CvInfosSerializationHelper::ReadHashed(kStream);10608	else10609	{10610		kStream >> m_eFeatureType;10611		if ((int)m_eFeatureType >= GC.getNumFeatureInfos())10612			m_eFeatureType = NO_FEATURE;10613	}10614	m_eResourceType = (ResourceTypes) CvInfosSerializationHelper::ReadHashed(kStream);1061510616	if(uiVersion >= 5)10617	{10618		m_eImprovementType = (ImprovementTypes) CvInfosSerializationHelper::ReadHashed(kStream);10619	}10620	else10621	{10622		kStream >> m_eImprovementType;10623		// Filter out improvements that have been removed10624		if (m_eImprovementType != NO_IMPROVEMENT)10625			if (GC.getImprovementInfo((ImprovementTypes)m_eImprovementType) == NULL)10626				m_eImprovementType = NO_IMPROVEMENT;10627	}1062810629	if (uiVersion >= 7)10630	{10631		m_eImprovementTypeUnderConstruction = (ImprovementTypes)CvInfosSerializationHelper::ReadHashed(kStream);10632	}10633	else10634	{10635		m_eImprovementTypeUnderConstruction = NO_IMPROVEMENT;10636	}1063710638	if (uiVersion >= 2)10639	{10640		kStream >> m_ePlayerBuiltImprovement;10641	}10642	else10643	{10644		m_ePlayerBuiltImprovement = NO_PLAYER;10645	}10646	kStream >> m_ePlayerResponsibleForImprovement;10647	kStream >> m_ePlayerResponsibleForRoute;10648	kStream >> m_ePlayerThatClearedBarbCampHere;10649	kStream >> m_eRouteType;10650#if defined(MOD_GLOBAL_STACKING_RULES)10651	MOD_SERIALIZE_READ(30, kStream, m_eUnitIncrement, 0);10652#endif10653	kStream >> m_eWorldAnchor;10654	kStream >> m_cWorldAnchorData;1065510656	kStream >> m_eRiverEFlowDirection;10657	kStream >> m_eRiverSEFlowDirection;10658	kStream >> m_eRiverSWFlowDirection;1065910660	kStream >> m_plotCity.eOwner;10661	kStream >> m_plotCity.iID;10662	kStream >> m_workingCity.eOwner;10663	kStream >> m_workingCity.iID;10664	kStream >> m_workingCityOverride.eOwner;10665	kStream >> m_workingCityOverride.iID;10666	kStream >> m_ResourceLinkedCity.eOwner;10667	kStream >> m_ResourceLinkedCity.iID;10668	kStream >> m_purchaseCity.eOwner;10669	kStream >> m_purchaseCity.iID;1067010671	for(uint i = 0; i < NUM_YIELD_TYPES; i++)10672		kStream >> m_aiYield[i];1067310674	for(uint i = 0; i < REALLY_MAX_PLAYERS; i++)10675		kStream >> m_aiFoundValue[i];1067610677	for(uint i = 0; i < REALLY_MAX_PLAYERS; i++)10678		kStream >> m_aiPlayerCityRadiusCount[i];1067910680	for(uint i = 0; i < REALLY_MAX_TEAMS; i++)10681	{10682		kStream >> m_aiVisibilityCount[i];10683		if (m_aiVisibilityCount[i] < 0)10684			m_aiVisibilityCount[i] = 0;10685	}1068610687	for(uint i = 0; i < REALLY_MAX_TEAMS; i++)10688		kStream >> m_aiRevealedOwner[i];1068910690	kStream >> m_cRiverCrossing;1069110692	for(uint i = 0; i<PlotBoolField::eCount; ++i)10693	{10694		kStream >> m_bfRevealed.m_dwBits[i];10695	}1069610697	for(uint i = 0; i < REALLY_MAX_TEAMS; i++)10698		kStream >> m_abResourceForceReveal[i];1069910700	if (uiVersion >= 6)10701	{10702		for(uint i = 0; i < REALLY_MAX_TEAMS; i++)10703			m_aeRevealedImprovementType[i] = (ImprovementTypes) CvInfosSerializationHelper::ReadHashed(kStream);10704	}10705	else10706	{10707		for(uint i = 0; i < REALLY_MAX_TEAMS; i++)10708		{10709			kStream >> m_aeRevealedImprovementType[i];10710			if (m_aeRevealedImprovementType[i] != NO_IMPROVEMENT)10711				if (GC.getImprovementInfo((ImprovementTypes)m_aeRevealedImprovementType[i]) == NULL)10712					m_aeRevealedImprovementType[i] = NO_IMPROVEMENT;10713		}10714	}1071510716	for(uint i = 0; i < REALLY_MAX_TEAMS; i++)10717		kStream >> m_aeRevealedRouteType[i];1071810719	for(uint i = 0; i < MAX_MAJOR_CIVS; i++)10720		kStream >> m_abNoSettling[i];1072110722	bool hasScriptData = false;10723	kStream >> hasScriptData;10724	if(hasScriptData)10725	{10726		std::string scriptData;10727		kStream >> scriptData;10728		setScriptData(scriptData.c_str());10729	}1073010731	SAFE_DELETE_ARRAY(m_paiBuildProgress);10732	kStream >> iCount;10733	if(iCount > 0)10734	{10735		const int iNumBuildInfos = GC.getNumBuildInfos();10736		m_paiBuildProgress = FNEW(short[iNumBuildInfos], c_eCiv5GameplayDLL, 0);10737		ZeroMemory(m_paiBuildProgress, sizeof(short) * iNumBuildInfos);10738		10739		BuildArrayHelpers::Read(kStream, m_paiBuildProgress);10740	}1074110742	kStream >> m_apaiInvisibleVisibilityCount;1074310744	//m_units.Read(kStream);10745	UINT uLength;10746	kStream >> uLength;10747	for(UINT uIdx = 0; uIdx < uLength; ++uIdx)10748	{10749		IDInfo  Data;1075010751		kStream >> Data.eOwner;10752		kStream >> Data.iID;1075310754		m_units.insertAtEnd(&Data);10755	}1075610757	kStream >> m_cContinentType;10758	kStream >> m_kArchaeologyData;1075910760	updateImpassable();10761}

Calls

Called by