Bazaar developer reference

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

Called by