CvPlayerTrade::GetTradeUnitsAtPlot(const CvPlot *, bool, bool, bool)
- Defined in
- CvTradeClasses.cpp, line 3116
- Class
- CvPlayerTrade
- Hook name
CivHooks::CvPlayerTrade_GetTradeUnitsAtPlot
Hooks
static bool BeforeCvPlayerTrade_GetTradeUnitsAtPlot(CvPlayerTrade* self, const CvPlot* pPlot, bool bFailAtFirstFound, bool bExcludingMe, bool bOnlyWar, std::vector<int>& result);static void AfterCvPlayerTrade_GetTradeUnitsAtPlot(CvPlayerTrade* self, const CvPlot* pPlot, bool bFailAtFirstFound, bool bExcludingMe, bool bOnlyWar, std::vector<int>& result);static std::vector<int> ReplaceCvPlayerTrade_GetTradeUnitsAtPlot(std::vector<int> (*original)(CvPlayerTrade*, const CvPlot*, bool, bool, bool), CvPlayerTrade* self, const CvPlot* pPlot, bool bFailAtFirstFound, bool bExcludingMe, bool bOnlyWar);CivRegisterBefore<CivHooks::CvPlayerTrade_GetTradeUnitsAtPlot>(host, &BeforeCvPlayerTrade_GetTradeUnitsAtPlot);CivRegisterAfter<CivHooks::CvPlayerTrade_GetTradeUnitsAtPlot>(host, &AfterCvPlayerTrade_GetTradeUnitsAtPlot);CivRegisterReplace<CivHooks::CvPlayerTrade_GetTradeUnitsAtPlot>(host, &ReplaceCvPlayerTrade_GetTradeUnitsAtPlot);
Code
3116std::vector<int> CvPlayerTrade::GetTradeUnitsAtPlot(const CvPlot* pPlot, bool bFailAtFirstFound, bool bExcludingMe, bool bOnlyWar)3117{3118 std::vector<int> aiTradeConnectionIDs;31193120 if (pPlot == NULL)3121 {3122 return aiTradeConnectionIDs;3123 }31243125 int iX = pPlot->getX();3126 int iY = pPlot->getY();31273128 TeamTypes eMyTeam = m_pPlayer->getTeam();31293130 CvGameTrade* pTrade = GC.getGame().GetGameTrade();3131 for (uint uiConnection = 0; uiConnection < pTrade->m_aTradeConnections.size(); uiConnection++)3132 {3133 TradeConnection* pConnection = &(pTrade->m_aTradeConnections[uiConnection]);3134 if (pTrade->IsTradeRouteIndexEmpty(uiConnection))3135 {3136 continue;3137 }31383139 TeamTypes eOtherTeam = GET_PLAYER(pConnection->m_eOriginOwner).getTeam();31403141 bool bIgnore = false;3142 if (bExcludingMe && eOtherTeam == eMyTeam)3143 {3144 bIgnore = true;3145 }31463147 if (bOnlyWar && !GET_TEAM(eMyTeam).isAtWar(eOtherTeam))3148 {3149 bIgnore = true;3150 }31513152 if (bIgnore)3153 {3154 continue;3155 }31563157 if (pConnection->m_aPlotList[pConnection->m_iTradeUnitLocationIndex].m_iX == iX && pConnection->m_aPlotList[pConnection->m_iTradeUnitLocationIndex].m_iY == iY)3158 {3159 aiTradeConnectionIDs.push_back(pConnection->m_iID);3160 if (bFailAtFirstFound)3161 {3162 break;3163 }3164 }3165 }31663167 return aiTradeConnectionIDs; 3168}
Calls
BaseVector::operator[]BaseVector::operator[]BaseVector::size- CvGame::GetGameTrade()
- CvGameTrade::IsTradeRouteIndexEmpty(int)
- CvGlobals::getGame()
- CvPlayer::getTeam() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlot::getX() const
- CvPlot::getY() const
- CvTeam::getTeam(TeamTypes)
- CvTeam::isAtWar(TeamTypes) const
std::vector::push_backstd::vector::vectorstd::vector::vector