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
BaseVector::operator[]BaseVector::operator[]BaseVector::sizeBaseVector::size- CvCity::getNameKey() const
- CvGame::GetGameTrade()
- CvGameTrade::IsTradeRouteIndexEmpty(int)
- CvGlobals::getGame()
- CvGlobals::getMap()
- CvMap::plot(int, int) const
- CvPlayer::getCivilizationAdjectiveKey() const
- CvPlayer::getCivilizationShortDescriptionKey() const
- CvPlayer::GetID() const
- CvPlayer::isMinorCiv() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlot::getPlotCity() const
- CvPlot::getX() const
- CvPlot::getY() const
CvString::CvStringLocalization::LookupLocalization::String::operator=Localization::String::StringLocalization::String::toUTF8operator<<std::vector::push_backstd::vector::vectorstd::vector::vector