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
BaseVector::operator[]BaseVector::size- CvCity::getOwner() const
- CvCity::getX() const
- CvCity::getY() const
- CvGameTrade::IsTradeRouteIndexEmpty(int)