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
- CvGame::GetGameTrade()
- CvGameTrade::GetTechDifference(PlayerTypes, PlayerTypes)
- CvGameTrade::IsConnectionInternational(const TradeConnection &)
- CvGlobals::getGame()
- CvGlobals::getINTERNATIONAL_TRADE_BASE()
- CvGlobals::getTRADE_ROUTE_SCIENCE_DIVISOR_TIMES100()
- CvPlayer::GetCulture() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerCulture::GetInfluenceTradeRouteScienceBonus(PlayerTypes) const
std::max