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
- CvCity::IsHasResourceLocal(ResourceTypes, bool) const
- CvGame::GetGameTrade()
- CvGameTrade::IsConnectionInternational(const TradeConnection &)
- CvGlobals::getGame()
- CvGlobals::getMap()
- CvGlobals::getNumResourceInfos()
- CvGlobals::getResourceInfo(ResourceTypes)
- CvGlobals::getTRADE_ROUTE_DIFFERENT_RESOURCE_VALUE()
- CvMap::plot(int, int) const
- CvPlayer::GetPlayerTraits() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerTraits::GetTradeRouteResourceModifier() const
- CvPlot::getPlotCity() const
- CvResourceInfo::getResourceUsage() const