Bazaar developer reference

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

Called by