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}