Bazaar developer reference

CvPlayerTrade::GetPlotToolTips(CvPlot *)

Defined in
CvTradeClasses.cpp, line 3922
Class
CvPlayerTrade
Hook name
CivHooks::CvPlayerTrade_GetPlotToolTips

Hooks

static bool BeforeCvPlayerTrade_GetPlotToolTips(CvPlayerTrade* self, CvPlot* pPlot, std::vector<CvString>& result);static void AfterCvPlayerTrade_GetPlotToolTips(CvPlayerTrade* self, CvPlot* pPlot, std::vector<CvString>& result);static std::vector<CvString> ReplaceCvPlayerTrade_GetPlotToolTips(std::vector<CvString> (*original)(CvPlayerTrade*, CvPlot*), CvPlayerTrade* self, CvPlot* pPlot);CivRegisterBefore<CivHooks::CvPlayerTrade_GetPlotToolTips>(host, &BeforeCvPlayerTrade_GetPlotToolTips);CivRegisterAfter<CivHooks::CvPlayerTrade_GetPlotToolTips>(host, &AfterCvPlayerTrade_GetPlotToolTips);CivRegisterReplace<CivHooks::CvPlayerTrade_GetPlotToolTips>(host, &ReplaceCvPlayerTrade_GetPlotToolTips);

Code

3922std::vector<CvString> CvPlayerTrade::GetPlotToolTips (CvPlot* pPlot)3923{3924	std::vector<CvString> aToolTips;39253926	if (!pPlot)3927	{3928		return aToolTips;3929	}39303931	CvGameTrade* pTrade = GC.getGame().GetGameTrade();3932	PlayerTypes ePlayer = m_pPlayer->GetID();3933	int iX = pPlot->getX();3934	int iY = pPlot->getY();3935	CvCity* pOriginCity = NULL;3936	CvCity* pDestCity = NULL;39373938	Localization::String strResult;39393940	for (uint uiConnection = 0; uiConnection < pTrade->m_aTradeConnections.size(); uiConnection++)3941	{3942		if (pTrade->IsTradeRouteIndexEmpty(uiConnection))3943		{3944			continue;3945		}39463947		TradeConnection* pConnection = &(pTrade->m_aTradeConnections[uiConnection]);39483949		bool bDisplayInfo = false;3950		if (pConnection->m_eOriginOwner == ePlayer || pConnection->m_eDestOwner == ePlayer)3951		{3952			bDisplayInfo = true;3953		}3954		else3955		{3956			int iTradeUnitIndex = pConnection->m_iTradeUnitLocationIndex;3957			int iTradeUnitX = pConnection->m_aPlotList[iTradeUnitIndex].m_iX;3958			int iTradeUnitY = pConnection->m_aPlotList[iTradeUnitIndex].m_iY;3959			if (iTradeUnitX == iX && iTradeUnitY == iY)3960			{3961				bDisplayInfo = true;3962			}3963		}39643965		// if this trade route involves us3966		if (bDisplayInfo)3967		{3968			for (uint uiPlotIndex = 0; uiPlotIndex < pConnection->m_aPlotList.size(); uiPlotIndex++)3969			{3970				if (pConnection->m_aPlotList[uiPlotIndex].m_iX == iX && pConnection->m_aPlotList[uiPlotIndex].m_iY == iY)3971				{3972					pOriginCity = GC.getMap().plot(pConnection->m_iOriginX, pConnection->m_iOriginY)->getPlotCity();3973					pDestCity = GC.getMap().plot(pConnection->m_iDestX, pConnection->m_iDestY)->getPlotCity();39743975					// Trade Routes:3976					// (if major to major)3977					// Kyoto (Japan) ~~ London (England)3978					// (if major to minor)3979					// Kyoto (Japan) ~~ Monaco (City-State)39803981					if (uiPlotIndex == pConnection->m_iTradeUnitLocationIndex)3982					{3983						if (pConnection->m_eDomain == DOMAIN_LAND)3984						{3985							Localization::String strTradeUnit = Localization::Lookup("TXT_KEY_TRADE_ROUTE_TT_PLOT_CARAVAN");3986							strTradeUnit << GET_PLAYER(pConnection->m_eOriginOwner).getCivilizationAdjectiveKey();3987							aToolTips.push_back(strTradeUnit.toUTF8());3988						}3989						else if (pConnection->m_eDomain == DOMAIN_SEA)3990						{3991							Localization::String strTradeUnit = Localization::Lookup("TXT_KEY_TRADE_ROUTE_TT_PLOT_CARGO_SHIP");3992							strTradeUnit << GET_PLAYER(pConnection->m_eOriginOwner).getCivilizationAdjectiveKey();3993							aToolTips.push_back(strTradeUnit.toUTF8());3994						}3995					}39963997					Localization::String strTradeLine;39983999					if (GET_PLAYER(pConnection->m_eDestOwner).isMinorCiv()) // if a minor civ, have a special help text4000					{4001						strTradeLine = Localization::Lookup("TXT_KEY_TRADE_ROUTE_TT_PLOT_MAJOR_MINOR");4002						strTradeLine << ((pOriginCity)?pOriginCity->getNameKey():"NULL Origin City");4003						strTradeLine << GET_PLAYER(pConnection->m_eOriginOwner).getCivilizationShortDescriptionKey();4004						strTradeLine << ((pDestCity)?pDestCity->getNameKey():"NULL Dest City");4005					}4006					else4007					{4008						strTradeLine = Localization::Lookup("TXT_KEY_TRADE_ROUTE_TT_PLOT_MAJOR_MAJOR");4009						strTradeLine << ((pOriginCity)?pOriginCity->getNameKey():"NULL Origin City");4010						strTradeLine << GET_PLAYER(pConnection->m_eOriginOwner).getCivilizationShortDescriptionKey();4011						strTradeLine << ((pDestCity)?pDestCity->getNameKey():"NULL Dest City");40124013						strTradeLine << GET_PLAYER(pConnection->m_eDestOwner).getCivilizationShortDescriptionKey();4014					}40154016					aToolTips.push_back(strTradeLine.toUTF8());4017				}4018			}4019		}4020	}40214022	return aToolTips;4023}

Calls

Called by