Bazaar developer reference

CvPlayerTrade::GetPlotMouseoverToolTips(CvPlot *)

Defined in
CvTradeClasses.cpp, line 4026
Class
CvPlayerTrade
Hook name
CivHooks::CvPlayerTrade_GetPlotMouseoverToolTips

Hooks

static bool BeforeCvPlayerTrade_GetPlotMouseoverToolTips(CvPlayerTrade* self, CvPlot* pPlot, std::vector<CvString>& result);static void AfterCvPlayerTrade_GetPlotMouseoverToolTips(CvPlayerTrade* self, CvPlot* pPlot, std::vector<CvString>& result);static std::vector<CvString> ReplaceCvPlayerTrade_GetPlotMouseoverToolTips(std::vector<CvString> (*original)(CvPlayerTrade*, CvPlot*), CvPlayerTrade* self, CvPlot* pPlot);CivRegisterBefore<CivHooks::CvPlayerTrade_GetPlotMouseoverToolTips>(host, &BeforeCvPlayerTrade_GetPlotMouseoverToolTips);CivRegisterAfter<CivHooks::CvPlayerTrade_GetPlotMouseoverToolTips>(host, &AfterCvPlayerTrade_GetPlotMouseoverToolTips);CivRegisterReplace<CivHooks::CvPlayerTrade_GetPlotMouseoverToolTips>(host, &ReplaceCvPlayerTrade_GetPlotMouseoverToolTips);

Code

4026std::vector<CvString> CvPlayerTrade::GetPlotMouseoverToolTips (CvPlot* pPlot)4027{4028	std::vector<CvString> aToolTips;40294030	if (!pPlot)4031	{4032		return aToolTips;4033	}40344035	CvGameTrade* pTrade = GC.getGame().GetGameTrade();4036	PlayerTypes ePlayer = m_pPlayer->GetID();4037	int iX = pPlot->getX();4038	int iY = pPlot->getY();4039	CvCity* pOriginCity = NULL;4040	CvCity* pDestCity = NULL;40414042	Localization::String strResult;40434044	for (uint uiConnection = 0; uiConnection < pTrade->m_aTradeConnections.size(); uiConnection++)4045	{4046		if (pTrade->IsTradeRouteIndexEmpty(uiConnection))4047		{4048			continue;4049		}40504051		TradeConnection* pConnection = &(pTrade->m_aTradeConnections[uiConnection]);40524053		bool bDisplayInfo = false;4054		if (pConnection->m_eOriginOwner == ePlayer || pConnection->m_eDestOwner == ePlayer)4055		{4056			bDisplayInfo = true;4057		}4058		else4059		{4060			int iTradeUnitIndex = pConnection->m_iTradeUnitLocationIndex;4061			int iTradeUnitX = pConnection->m_aPlotList[iTradeUnitIndex].m_iX;4062			int iTradeUnitY = pConnection->m_aPlotList[iTradeUnitIndex].m_iY;4063			if (iTradeUnitX == iX && iTradeUnitY == iY)4064			{4065				bDisplayInfo = true;4066			}4067		}40684069		// if this trade route involves us4070		if (bDisplayInfo)4071		{4072			for (uint uiPlotIndex = 0; uiPlotIndex < pConnection->m_aPlotList.size(); uiPlotIndex++)4073			{4074				if (pConnection->m_aPlotList[uiPlotIndex].m_iX == iX && pConnection->m_aPlotList[uiPlotIndex].m_iY == iY)4075				{4076					pOriginCity = GC.getMap().plot(pConnection->m_iOriginX, pConnection->m_iOriginY)->getPlotCity();4077					pDestCity = GC.getMap().plot(pConnection->m_iDestX, pConnection->m_iDestY)->getPlotCity();4078					if (uiPlotIndex == pConnection->m_iTradeUnitLocationIndex)4079					{4080						Localization::String strLine;4081						if(strcmp(GET_PLAYER(pConnection->m_eOriginOwner).getNickName(), "") != 0)4082						{4083							strLine = Localization::Lookup("TXT_KEY_MULTIPLAYER_UNIT_TT");4084							strLine << GET_PLAYER(pConnection->m_eOriginOwner).getNickName();4085							strLine << GET_PLAYER(pConnection->m_eOriginOwner).getCivilizationAdjectiveKey();4086#if defined(MOD_BUGFIX_UNITCLASS_NOT_UNIT)4087							strLine << GC.getUnitInfo(GetTradeUnit(pConnection->m_eDomain, &GET_PLAYER(pConnection->m_eOriginOwner)))->GetDescription();4088#else4089							strLine << GC.getUnitInfo(GetTradeUnit(pConnection->m_eDomain))->GetDescription();4090#endif4091						}4092						else4093						{4094							strLine = Localization::Lookup("TXT_KEY_PLOTROLL_UNIT_DESCRIPTION_CIV");4095							strLine << GET_PLAYER(pConnection->m_eOriginOwner).getCivilizationAdjectiveKey();4096#if defined(MOD_BUGFIX_UNITCLASS_NOT_UNIT)4097							strLine << GC.getUnitInfo(GetTradeUnit(pConnection->m_eDomain, &GET_PLAYER(pConnection->m_eOriginOwner)))->GetDescription();4098#else4099							strLine << GC.getUnitInfo(GetTradeUnit(pConnection->m_eDomain))->GetDescription();4100#endif4101						}41024103						4104						Localization::String strColorString;4105						TeamTypes eTeam = GET_PLAYER(pConnection->m_eOriginOwner).getTeam();4106						if (eTeam == GC.getGame().getActiveTeam())4107						{4108							strColorString = "[COLOR_WHITE]{1_InnerStr}[ENDCOLOR]";4109							strColorString << strLine;4110						}4111						else if (GET_TEAM(GC.getGame().getActiveTeam()).isAtWar(eTeam))4112						{4113							strColorString = "[COLOR_NEGATIVE_TEXT]{1_InnerStr}[ENDCOLOR]";4114							strColorString << strLine;4115						}4116						else4117						{4118							strColorString = "[COLOR_POSITIVE_TEXT]{1_InnerStr}[ENDCOLOR]";4119							strColorString << strLine;4120						}41214122						aToolTips.push_back(strColorString.toUTF8());4123					}4124				}4125			}4126		}4127	}41284129	return aToolTips;4130}

Calls

Called by