Bazaar developer reference

CvPlayerEspionage::CanMoveSpyTo(CvCity *, uint, bool)

Defined in
CvEspionageClasses.cpp, line 1390
Class
CvPlayerEspionage
Hook name
CivHooks::CvPlayerEspionage_CanMoveSpyTo

Hooks

static bool BeforeCvPlayerEspionage_CanMoveSpyTo(CvPlayerEspionage* self, CvCity* pCity, uint uiSpyIndex, bool bAsDiplomat, bool& result);static void AfterCvPlayerEspionage_CanMoveSpyTo(CvPlayerEspionage* self, CvCity* pCity, uint uiSpyIndex, bool bAsDiplomat, bool& result);static bool ReplaceCvPlayerEspionage_CanMoveSpyTo(bool (*original)(CvPlayerEspionage*, CvCity*, uint, bool), CvPlayerEspionage* self, CvCity* pCity, uint uiSpyIndex, bool bAsDiplomat);CivRegisterBefore<CivHooks::CvPlayerEspionage_CanMoveSpyTo>(host, &BeforeCvPlayerEspionage_CanMoveSpyTo);CivRegisterAfter<CivHooks::CvPlayerEspionage_CanMoveSpyTo>(host, &AfterCvPlayerEspionage_CanMoveSpyTo);CivRegisterReplace<CivHooks::CvPlayerEspionage_CanMoveSpyTo>(host, &ReplaceCvPlayerEspionage_CanMoveSpyTo);

Code

1389/// CanMoveSpyTo - May a spy move into this city1390bool CvPlayerEspionage::CanMoveSpyTo(CvCity* pCity, uint uiSpyIndex, bool bAsDiplomat)1391{1392	// This allows the player to move the spy off the board1393	if(!pCity)1394	{1395		return true;1396	}13971398	if(!CanEverMoveSpyTo(pCity))1399	{1400		return false;1401	}14021403	CvAssertMsg(uiSpyIndex < m_aSpyList.size(), "iSpyIndex is out of bounds");1404	if(uiSpyIndex >= m_aSpyList.size())1405	{1406		return false;1407	}14081409	// check to see if there is someone already there1410	CvCityEspionage* pCityEspionage = pCity->GetCityEspionage();1411	CvAssertMsg(pCityEspionage, "pCityEspionage is null");1412	if(!pCityEspionage)1413	{1414		return false;1415	}14161417	PlayerTypes ePlayerID = m_pPlayer->GetID();1418	if(pCityEspionage->m_aiSpyAssignment[ePlayerID] != -1)1419	{1420		return false;1421	}14221423	if (bAsDiplomat)1424	{1425		// diplomatic spy must be in capital1426		if (!pCity->isCapital() || pCity->getOwner() == m_pPlayer->GetID())1427		{1428			return false;1429		}14301431		if (GET_TEAM(m_pPlayer->getTeam()).isAtWar(pCity->getTeam()))1432		{1433			return false;1434		}1435	}14361437	return true;1438}

Calls

Called by