Bazaar developer reference

CvPlayerTrade::GetTradeConnectionResourceValueTimes100(const TradeConnection &, YieldTypes, bool)

Defined in
CvTradeClasses.cpp, line 2080
Class
CvPlayerTrade
Hook name
CivHooks::CvPlayerTrade_GetTradeConnectionResourceValueTimes100

Hooks

static bool BeforeCvPlayerTrade_GetTradeConnectionResourceValueTimes100(CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer, int& result);static void AfterCvPlayerTrade_GetTradeConnectionResourceValueTimes100(CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer, int& result);static int ReplaceCvPlayerTrade_GetTradeConnectionResourceValueTimes100(int (*original)(CvPlayerTrade*, const TradeConnection&, YieldTypes, bool), CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer);CivRegisterBefore<CivHooks::CvPlayerTrade_GetTradeConnectionResourceValueTimes100>(host, &BeforeCvPlayerTrade_GetTradeConnectionResourceValueTimes100);CivRegisterAfter<CivHooks::CvPlayerTrade_GetTradeConnectionResourceValueTimes100>(host, &AfterCvPlayerTrade_GetTradeConnectionResourceValueTimes100);CivRegisterReplace<CivHooks::CvPlayerTrade_GetTradeConnectionResourceValueTimes100>(host, &ReplaceCvPlayerTrade_GetTradeConnectionResourceValueTimes100);

Code

2080int CvPlayerTrade::GetTradeConnectionResourceValueTimes100(const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer)2081{2082	if (bAsOriginPlayer)2083	{2084		if (GC.getGame().GetGameTrade()->IsConnectionInternational(kTradeConnection))2085		{2086			if (eYield == YIELD_GOLD)2087			{2088				CvPlot* pOriginPlot = GC.getMap().plot(kTradeConnection.m_iOriginX, kTradeConnection.m_iOriginY);2089				CvPlot* pDestPlot = GC.getMap().plot(kTradeConnection.m_iDestX, kTradeConnection.m_iDestY);20902091				CvAssertMsg(pOriginPlot && pDestPlot, "pOriginPlot or pDestPlot are null");2092				if (!pOriginPlot || !pDestPlot)2093				{2094					return 0;2095				}20962097				CvCity* pOriginCity = pOriginPlot->getPlotCity();2098				CvCity* pDestCity = pDestPlot->getPlotCity();20992100				CvAssertMsg(pOriginCity && pDestCity, "pOriginCity or pDestCity are null");2101				if (!pOriginCity || !pDestCity)2102				{2103					return 0;2104				}21052106				int iValue = 0;2107				for(int i = 0; i < GC.getNumResourceInfos(); i++)2108				{2109					ResourceTypes eResource = (ResourceTypes)i;2110					const CvResourceInfo* pkResourceInfo = GC.getResourceInfo(eResource);2111					if (pkResourceInfo)2112					{2113						if (pkResourceInfo->getResourceUsage() == RESOURCEUSAGE_LUXURY || pkResourceInfo->getResourceUsage() == RESOURCEUSAGE_STRATEGIC)2114						{2115							if (pOriginCity->IsHasResourceLocal(eResource, false) != pDestCity->IsHasResourceLocal(eResource, false))2116							{2117#if defined(MOD_TRADE_ROUTE_SCALING)2118								iValue += GD_INT_GET(TRADE_ROUTE_DIFFERENT_RESOURCE_VALUE);2119#else2120								iValue += 50;2121#endif2122							}2123						}2124					}2125				}21262127				int iModifer = 100 + GET_PLAYER(kTradeConnection.m_eOriginOwner).GetPlayerTraits()->GetTradeRouteResourceModifier();2128				iValue *= iModifer;2129				iValue /= 100;21302131				return iValue;2132			}2133		}2134	}2135	else2136	{2137		return 0;	2138	}21392140	return 0;2141}

Calls

Called by