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
BaseVector::operator[]BaseVector::operator[]BaseVector::sizeBaseVector::size- CvBaseInfo::GetDescription() const
- CvGame::getActiveTeam()
- CvGame::GetGameTrade()
- CvGameTrade::IsTradeRouteIndexEmpty(int)
- CvGlobals::getGame()
- CvGlobals::getMap()
- CvGlobals::getUnitInfo(UnitTypes)
- CvMap::plot(int, int) const
- CvPlayer::getCivilizationAdjectiveKey() const
- CvPlayer::GetID() const
- CvPlayer::getNickName() const
- CvPlayer::getTeam() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerTrade::GetTradeUnit(DomainTypes, CvPlayer *)
- CvPlot::getPlotCity() const
- CvPlot::getX() const
- CvPlot::getY() const
CvString::CvString- CvTeam::getTeam(TeamTypes)
- CvTeam::isAtWar(TeamTypes) const
Localization::LookupLocalization::String::operator=Localization::String::operator=Localization::String::StringLocalization::String::toUTF8operator<<operator<<std::vector::push_backstd::vector::vectorstd::vector::vectorstrcmp