Bazaar developer reference

operator>>(FDataStream &, CvGameTrade &)

Defined in
CvTradeClasses.cpp, line 1699
Hook name
CivHooks::op_shr_with_FDataStream_CvGameTrade

Hooks

static bool Beforeop_shr_with_FDataStream_CvGameTrade(FDataStream& loadFrom, CvGameTrade& writeTo, FDataStream*& result);static void Afterop_shr_with_FDataStream_CvGameTrade(FDataStream& loadFrom, CvGameTrade& writeTo, FDataStream*& result);static FDataStream& Replaceop_shr_with_FDataStream_CvGameTrade(FDataStream& (*original)(FDataStream&, CvGameTrade&), FDataStream& loadFrom, CvGameTrade& writeTo);CivRegisterBefore<CivHooks::op_shr_with_FDataStream_CvGameTrade>(host, &Beforeop_shr_with_FDataStream_CvGameTrade);CivRegisterAfter<CivHooks::op_shr_with_FDataStream_CvGameTrade>(host, &Afterop_shr_with_FDataStream_CvGameTrade);CivRegisterReplace<CivHooks::op_shr_with_FDataStream_CvGameTrade>(host, &Replaceop_shr_with_FDataStream_CvGameTrade);

Code

1698/// Serialization read1699FDataStream& operator>>(FDataStream& loadFrom, CvGameTrade& writeTo)1700{1701	int plotsX[MAX_PLOTS_TO_DISPLAY];1702	int plotsY[MAX_PLOTS_TO_DISPLAY];1703	int nPlots;17041705	uint uiVersion;1706	loadFrom >> uiVersion;1707	MOD_SERIALIZE_INIT_READ(loadFrom);17081709	int iNum = 0;1710	loadFrom >> iNum;1711	for (int i = 0; i < iNum; i++)1712	{1713		TradeConnection kTradeConnection;1714		writeTo.m_aTradeConnections.push_back(kTradeConnection);1715		if (uiVersion >= 1)1716		{1717			loadFrom >> writeTo.m_aTradeConnections[i].m_iID;1718		}1719		else1720		{1721			writeTo.m_aTradeConnections[i].m_iID = MAX_INT;1722		}17231724		loadFrom >> writeTo.m_aTradeConnections[i].m_iOriginX;1725		loadFrom >> writeTo.m_aTradeConnections[i].m_iOriginY;1726		loadFrom >> writeTo.m_aTradeConnections[i].m_iDestX;1727		loadFrom >> writeTo.m_aTradeConnections[i].m_iDestY;1728		loadFrom >> writeTo.m_aTradeConnections[i].m_eOriginOwner;1729		loadFrom >> writeTo.m_aTradeConnections[i].m_eDestOwner;1730		int iDomain;1731		loadFrom >> iDomain;1732		writeTo.m_aTradeConnections[i].m_eDomain = (DomainTypes)iDomain;1733		int iConnectionType;1734		loadFrom >> iConnectionType;1735		writeTo.m_aTradeConnections[i].m_eConnectionType = (TradeConnectionType)iConnectionType;17361737		loadFrom >> writeTo.m_aTradeConnections[i].m_iTradeUnitLocationIndex;1738		loadFrom >> writeTo.m_aTradeConnections[i].m_bTradeUnitMovingForward;17391740		loadFrom >> writeTo.m_aTradeConnections[i].m_unitID;17411742		loadFrom >> writeTo.m_aTradeConnections[i].m_iCircuitsCompleted;1743		loadFrom >> writeTo.m_aTradeConnections[i].m_iCircuitsToComplete;17441745		if (uiVersion >= 2)1746		{1747			loadFrom >> writeTo.m_aTradeConnections[i].m_iTurnRouteComplete;1748		}1749		else1750		{1751			writeTo.m_aTradeConnections[i].m_iTurnRouteComplete = 0;1752		}17531754#if defined(MOD_API_TRADEROUTES)1755        MOD_SERIALIZE_READ(23, loadFrom, writeTo.m_aTradeConnections[i].m_bTradeUnitRecalled, false);1756#endif17571758		int iNum2 = 0;1759		loadFrom >> iNum2;17601761		for (int i2 = 0; i2 < iNum2; i2++)1762		{1763			TradeConnectionPlot kTradeConnectionPlot;1764			writeTo.m_aTradeConnections[i].m_aPlotList.push_back(kTradeConnectionPlot);1765			loadFrom >> writeTo.m_aTradeConnections[i].m_aPlotList[i2].m_iX;1766			loadFrom >> writeTo.m_aTradeConnections[i].m_aPlotList[i2].m_iY;1767			1768			if (i2 < MAX_PLOTS_TO_DISPLAY) {1769				plotsX[i2] = writeTo.m_aTradeConnections[i].m_aPlotList[i2].m_iX;1770				plotsY[i2] = writeTo.m_aTradeConnections[i].m_aPlotList[i2].m_iY;1771			}1772		}17731774		nPlots = iNum2;1775		if (nPlots > 0)1776		{1777			if (nPlots > MAX_PLOTS_TO_DISPLAY)1778				nPlots = MAX_PLOTS_TO_DISPLAY;1779			gDLL->TradeVisuals_NewRoute(i,writeTo.m_aTradeConnections[i].m_eOriginOwner,writeTo.m_aTradeConnections[i].m_eConnectionType,nPlots,plotsX,plotsY);1780			gDLL->TradeVisuals_UpdateRouteDirection(i, writeTo.m_aTradeConnections[i].m_bTradeUnitMovingForward);1781		}17821783		for (uint ui = 0; ui < NUM_YIELD_TYPES; ui++)1784		{1785			loadFrom >> writeTo.m_aTradeConnections[i].m_aiOriginYields[ui];1786			loadFrom >> writeTo.m_aTradeConnections[i].m_aiDestYields[ui];1787		}1788	}17891790	if (uiVersion >= 3)1791	{1792		for (uint ui = 0; ui < MAX_MAJOR_CIVS; ui++)1793		{1794			for (uint ui2 = 0; ui2 < MAX_MAJOR_CIVS; ui2++)1795			{1796				loadFrom >> writeTo.m_aaiTechDifference[ui][ui2];1797			}1798		}1799	}1800	else1801	{1802		for (uint ui = 0; ui < MAX_MAJOR_CIVS; ui++)1803		{1804			for (uint ui2 = 0; ui2 < MAX_MAJOR_CIVS; ui2++)1805			{1806				writeTo.m_aaiTechDifference[ui][ui2] = 0;1807			}1808		}1809	}18101811	loadFrom >> writeTo.m_iNextID;18121813	return loadFrom;1814}

Calls

Called by