Bazaar developer reference

CvGameTrade::IsCityConnectedToPlayer(CvCity *, PlayerTypes, bool)

Defined in
CvTradeClasses.cpp, line 601
Class
CvGameTrade
Hook name
CivHooks::CvGameTrade_IsCityConnectedToPlayer

Hooks

static bool BeforeCvGameTrade_IsCityConnectedToPlayer(CvGameTrade* self, CvCity* pCity, PlayerTypes eOtherPlayer, bool bOnlyOwnedByCityOwner, bool& result);static void AfterCvGameTrade_IsCityConnectedToPlayer(CvGameTrade* self, CvCity* pCity, PlayerTypes eOtherPlayer, bool bOnlyOwnedByCityOwner, bool& result);static bool ReplaceCvGameTrade_IsCityConnectedToPlayer(bool (*original)(CvGameTrade*, CvCity*, PlayerTypes, bool), CvGameTrade* self, CvCity* pCity, PlayerTypes eOtherPlayer, bool bOnlyOwnedByCityOwner);CivRegisterBefore<CivHooks::CvGameTrade_IsCityConnectedToPlayer>(host, &BeforeCvGameTrade_IsCityConnectedToPlayer);CivRegisterAfter<CivHooks::CvGameTrade_IsCityConnectedToPlayer>(host, &AfterCvGameTrade_IsCityConnectedToPlayer);CivRegisterReplace<CivHooks::CvGameTrade_IsCityConnectedToPlayer>(host, &ReplaceCvGameTrade_IsCityConnectedToPlayer);

Code

601bool CvGameTrade::IsCityConnectedToPlayer (CvCity* pCity, PlayerTypes eOtherPlayer, bool bOnlyOwnedByCityOwner)602{603	PlayerTypes eCityOwnerPlayer = pCity->getOwner();604	int iCityX = pCity->getX();605	int iCityY = pCity->getY();606607	for (uint ui = 0; ui < m_aTradeConnections.size(); ui++)608	{609		if (IsTradeRouteIndexEmpty(ui))610		{611			continue;612		}613		614		TradeConnection* pConnection = &(m_aTradeConnections[ui]);615616		if (pConnection->m_eOriginOwner == eCityOwnerPlayer && pConnection->m_eDestOwner == eOtherPlayer)617		{618			if (pConnection->m_iOriginX == iCityX && pConnection->m_iOriginY == iCityY)619			{620				return true;621			}622		}623		else if (!bOnlyOwnedByCityOwner && pConnection->m_eOriginOwner == eOtherPlayer && pConnection->m_eDestOwner == eCityOwnerPlayer)624		{625			if (pConnection->m_iDestX == iCityX && pConnection->m_iDestY == iCityY)626			{627				return true;628			}629		}630	}631632	return false;633}

Calls