Bazaar developer reference

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

Defined in
CvTradeClasses.cpp, line 1964
Class
CvPlayerTrade
Hook name
CivHooks::CvPlayerTrade_GetTradeConnectionBaseValueTimes100

Hooks

static bool BeforeCvPlayerTrade_GetTradeConnectionBaseValueTimes100(CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer, int& result);static void AfterCvPlayerTrade_GetTradeConnectionBaseValueTimes100(CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer, int& result);static int ReplaceCvPlayerTrade_GetTradeConnectionBaseValueTimes100(int (*original)(CvPlayerTrade*, const TradeConnection&, YieldTypes, bool), CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer);CivRegisterBefore<CivHooks::CvPlayerTrade_GetTradeConnectionBaseValueTimes100>(host, &BeforeCvPlayerTrade_GetTradeConnectionBaseValueTimes100);CivRegisterAfter<CivHooks::CvPlayerTrade_GetTradeConnectionBaseValueTimes100>(host, &AfterCvPlayerTrade_GetTradeConnectionBaseValueTimes100);CivRegisterReplace<CivHooks::CvPlayerTrade_GetTradeConnectionBaseValueTimes100>(host, &ReplaceCvPlayerTrade_GetTradeConnectionBaseValueTimes100);

Code

1964int CvPlayerTrade::GetTradeConnectionBaseValueTimes100(const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer)1965{1966	if (bAsOriginPlayer)1967	{1968		if (GC.getGame().GetGameTrade()->IsConnectionInternational(kTradeConnection))1969		{1970			if (eYield == YIELD_GOLD)1971			{1972				int iResult = 0;1973				int iBase = GC.getINTERNATIONAL_TRADE_BASE();1974				iResult = iBase;1975				return iResult;1976			}1977			else if (eYield == YIELD_SCIENCE)1978			{1979				int iTechDifference = GC.getGame().GetGameTrade()->GetTechDifference(kTradeConnection.m_eOriginOwner, kTradeConnection.m_eDestOwner);1980				int iAdjustedTechDifference = 0;1981				if (iTechDifference > 0)1982				{1983#if defined(MOD_TRADE_ROUTE_SCALING)1984					int iCeilTechDifference = iTechDifference * 100 / GD_INT_GET(TRADE_ROUTE_SCIENCE_DIVISOR_TIMES100);1985#else1986					int iCeilTechDifference = (int)ceil(iTechDifference / 2.0f);1987#endif1988					iAdjustedTechDifference = max(iCeilTechDifference, 1);1989				}19901991				// Cultural influence bump1992				int iInfluenceBoost = GET_PLAYER(kTradeConnection.m_eOriginOwner).GetCulture()->GetInfluenceTradeRouteScienceBonus(kTradeConnection.m_eDestOwner);1993				iAdjustedTechDifference += iInfluenceBoost;19941995				return iAdjustedTechDifference * 100;1996			}1997		}1998	}1999	else2000	{2001		if (eYield == YIELD_SCIENCE)2002		{2003			int iTechDifference = GC.getGame().GetGameTrade()->GetTechDifference(kTradeConnection.m_eDestOwner, kTradeConnection.m_eOriginOwner);2004			int iAdjustedTechDifference = 0;2005			if (iTechDifference > 0)2006			{2007#if defined(MOD_TRADE_ROUTE_SCALING)2008				int iCeilTechDifference = iTechDifference * 100 / GD_INT_GET(TRADE_ROUTE_SCIENCE_DIVISOR_TIMES100);2009#else2010				int iCeilTechDifference = (int)ceil(iTechDifference / 2.0f);2011#endif2012				iAdjustedTechDifference = max(iCeilTechDifference, 1);2013			}20142015			return  iAdjustedTechDifference * 100;2016		}2017		else2018		{2019			return 0;2020		}2021	}20222023	return 0;2024}

Calls

Called by