CvPlayerTrade::GetTradeConnectionGPTValueTimes100(const TradeConnection &, YieldTypes, bool, bool)
- Defined in
- CvTradeClasses.cpp, line 2027
- Class
- CvPlayerTrade
- Hook name
CivHooks::CvPlayerTrade_GetTradeConnectionGPTValueTimes100
Hooks
static bool BeforeCvPlayerTrade_GetTradeConnectionGPTValueTimes100(CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer, bool bOriginCity, int& result);static void AfterCvPlayerTrade_GetTradeConnectionGPTValueTimes100(CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer, bool bOriginCity, int& result);static int ReplaceCvPlayerTrade_GetTradeConnectionGPTValueTimes100(int (*original)(CvPlayerTrade*, const TradeConnection&, YieldTypes, bool, bool), CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer, bool bOriginCity);CivRegisterBefore<CivHooks::CvPlayerTrade_GetTradeConnectionGPTValueTimes100>(host, &BeforeCvPlayerTrade_GetTradeConnectionGPTValueTimes100);CivRegisterAfter<CivHooks::CvPlayerTrade_GetTradeConnectionGPTValueTimes100>(host, &AfterCvPlayerTrade_GetTradeConnectionGPTValueTimes100);CivRegisterReplace<CivHooks::CvPlayerTrade_GetTradeConnectionGPTValueTimes100>(host, &ReplaceCvPlayerTrade_GetTradeConnectionGPTValueTimes100);
Code
2027int CvPlayerTrade::GetTradeConnectionGPTValueTimes100(const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer, bool bOriginCity)2028{2029 if (bAsOriginPlayer)2030 {2031 if (GC.getGame().GetGameTrade()->IsConnectionInternational(kTradeConnection))2032 {2033 if (eYield == YIELD_GOLD)2034 {2035 int iX, iY;2036 if (bOriginCity)2037 {2038 iX = kTradeConnection.m_iOriginX;2039 iY = kTradeConnection.m_iOriginY;2040 }2041 else2042 {2043 iX = kTradeConnection.m_iDestX;2044 iY = kTradeConnection.m_iDestY;2045 }20462047 CvPlot* pPlot = GC.getMap().plot(iX, iY);20482049 CvAssertMsg(pPlot, "CvPlayerTrade - plot is null");2050 if (!pPlot)2051 {2052 return 0;2053 }20542055 CvCity* pCity = pPlot->getPlotCity();2056 CvAssertMsg(pCity, "CvPlayerTrade - pCity is null"); 2057 if (!pCity)2058 {2059 return 0;2060 }20612062 int iDivisor = GC.getINTERNATIONAL_TRADE_CITY_GPT_DIVISOR();2063 if (iDivisor == 0)2064 {2065 iDivisor = 1;2066 }2067 return pCity->getYieldRateTimes100(eYield, true) / iDivisor;2068 }2069 }2070 }2071 else2072 {2073 return 0;2074 }20752076 return 0;2077}