CvPlayerTrade::GetTradeConnectionYourBuildingValueTimes100(const TradeConnection &, YieldTypes, bool)
- Defined in
- CvTradeClasses.cpp, line 2144
- Class
- CvPlayerTrade
- Hook name
CivHooks::CvPlayerTrade_GetTradeConnectionYourBuildingValueTimes100
Hooks
static bool BeforeCvPlayerTrade_GetTradeConnectionYourBuildingValueTimes100(CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer, int& result);static void AfterCvPlayerTrade_GetTradeConnectionYourBuildingValueTimes100(CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer, int& result);static int ReplaceCvPlayerTrade_GetTradeConnectionYourBuildingValueTimes100(int (*original)(CvPlayerTrade*, const TradeConnection&, YieldTypes, bool), CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer);CivRegisterBefore<CivHooks::CvPlayerTrade_GetTradeConnectionYourBuildingValueTimes100>(host, &BeforeCvPlayerTrade_GetTradeConnectionYourBuildingValueTimes100);CivRegisterAfter<CivHooks::CvPlayerTrade_GetTradeConnectionYourBuildingValueTimes100>(host, &AfterCvPlayerTrade_GetTradeConnectionYourBuildingValueTimes100);CivRegisterReplace<CivHooks::CvPlayerTrade_GetTradeConnectionYourBuildingValueTimes100>(host, &ReplaceCvPlayerTrade_GetTradeConnectionYourBuildingValueTimes100);
Code
2144int CvPlayerTrade::GetTradeConnectionYourBuildingValueTimes100(const TradeConnection& kTradeConnection, YieldTypes eYield, bool bAsOriginPlayer)2145{2146 // this only applies to international trade routes, so otherwise, buzz off!2147 if (!GC.getGame().GetGameTrade()->IsConnectionInternational(kTradeConnection))2148 {2149 return 0;2150 }2151 2152 if (eYield != YIELD_GOLD)2153 {2154 return 0;2155 }21562157 CvPlot* pOriginPlot = GC.getMap().plot(kTradeConnection.m_iOriginX, kTradeConnection.m_iOriginY);2158 CvPlot* pDestPlot = GC.getMap().plot(kTradeConnection.m_iDestX, kTradeConnection.m_iDestY);21592160 CvAssertMsg(pOriginPlot && pDestPlot, "pOriginPlot or pDestPlot are null");2161 if (!pOriginPlot || !pDestPlot)2162 {2163 return 0;2164 }21652166 CvCity* pDestCity = pDestPlot->getPlotCity();2167 if (!pDestCity)2168 {2169 return 0;2170 }21712172 int iBonus = 0;2173 if (bAsOriginPlayer)2174 {2175 CvCity* pOriginCity = CvGameTrade::GetOriginCity(kTradeConnection);2176 for (int iI = 0; iI < GC.getNumBuildingClassInfos(); iI++)2177 {2178 BuildingTypes eBuilding = (BuildingTypes)GET_PLAYER(pOriginCity->getOwner()).getCivilizationInfo().getCivilizationBuildings(iI);2179 if(eBuilding != NO_BUILDING)2180 {2181 CvBuildingEntry* pBuildingEntry = GC.GetGameBuildings()->GetEntry(eBuilding);2182 if (!pBuildingEntry)2183 {2184 continue;2185 }21862187 if (pBuildingEntry && pOriginCity->GetCityBuildings()->GetNumBuilding((BuildingTypes)pBuildingEntry->GetID()))2188 {2189 if (pBuildingEntry->GetTradeRouteSeaGoldBonus() > 0 && kTradeConnection.m_eDomain == DOMAIN_SEA)2190 {2191#if defined(MOD_BUGFIX_MINOR)2192 iBonus += pBuildingEntry->GetTradeRouteSeaGoldBonus() * pOriginCity->GetCityBuildings()->GetNumBuilding((BuildingTypes)pBuildingEntry->GetID());2193#else2194 iBonus += pBuildingEntry->GetTradeRouteSeaGoldBonus();2195#endif2196 }2197 else if (pBuildingEntry->GetTradeRouteLandGoldBonus() > 0 && kTradeConnection.m_eDomain == DOMAIN_LAND)2198 {2199#if defined(MOD_BUGFIX_MINOR)2200 iBonus += pBuildingEntry->GetTradeRouteLandGoldBonus() * pOriginCity->GetCityBuildings()->GetNumBuilding((BuildingTypes)pBuildingEntry->GetID());2201#else2202 iBonus += pBuildingEntry->GetTradeRouteLandGoldBonus();2203#endif2204 }2205 }2206 }2207 }2208 }22092210 if (bAsOriginPlayer)2211 {2212 iBonus *= (100 + GET_PLAYER(kTradeConnection.m_eOriginOwner).GetPlayerTraits()->GetTradeBuildingModifier());2213 iBonus /= 100;2214 }2215 else2216 {2217 iBonus *= (100 + GET_PLAYER(kTradeConnection.m_eDestOwner).GetPlayerTraits()->GetTradeBuildingModifier());2218 iBonus /= 100;2219 } 22202221 return iBonus;2222}
Calls
- CvBaseInfo::GetID() const
- CvBuildingEntry::GetTradeRouteLandGoldBonus() const
- CvBuildingEntry::GetTradeRouteSeaGoldBonus() const
- CvBuildingXMLEntries::GetEntry(int)
- CvCity::GetCityBuildings() const
- CvCity::getOwner() const
- CvCityBuildings::GetNumBuilding(BuildingTypes) const
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGame::GetGameTrade()
- CvGameTrade::GetOriginCity(const TradeConnection &)
- CvGameTrade::IsConnectionInternational(const TradeConnection &)
- CvGlobals::getGame()
- CvGlobals::GetGameBuildings() const
- CvGlobals::getMap()
- CvGlobals::getNumBuildingClassInfos()
- CvMap::plot(int, int) const
- CvPlayer::getCivilizationInfo() const
- CvPlayer::GetPlayerTraits() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerTraits::GetTradeBuildingModifier() const
- CvPlot::getPlotCity() const