Bazaar developer reference

CvPlayerEspionage::CanStageCoup(uint)

Defined in
CvEspionageClasses.cpp, line 2046
Class
CvPlayerEspionage
Hook name
CivHooks::CvPlayerEspionage_CanStageCoup
Lua events
GameEvents.EspionageCanStageCoup

Hooks

static bool BeforeCvPlayerEspionage_CanStageCoup(CvPlayerEspionage* self, uint uiSpyIndex, bool& result);static void AfterCvPlayerEspionage_CanStageCoup(CvPlayerEspionage* self, uint uiSpyIndex, bool& result);static bool ReplaceCvPlayerEspionage_CanStageCoup(bool (*original)(CvPlayerEspionage*, uint), CvPlayerEspionage* self, uint uiSpyIndex);CivRegisterBefore<CivHooks::CvPlayerEspionage_CanStageCoup>(host, &BeforeCvPlayerEspionage_CanStageCoup);CivRegisterAfter<CivHooks::CvPlayerEspionage_CanStageCoup>(host, &AfterCvPlayerEspionage_CanStageCoup);CivRegisterReplace<CivHooks::CvPlayerEspionage_CanStageCoup>(host, &ReplaceCvPlayerEspionage_CanStageCoup);

Code

2045/// CanStageCoup - Can a spy currently stage a coup at a city-state?2046bool CvPlayerEspionage::CanStageCoup(uint uiSpyIndex)2047{2048	CvAssertMsg(uiSpyIndex < m_aSpyList.size(), "iSpyIndex is out of bounds");2049	if(uiSpyIndex >= m_aSpyList.size())2050	{2051		return false;2052	}20532054	if(!IsSpyInCity(uiSpyIndex))2055	{2056		return false;2057	}20582059	CvCity* pCity = GetCityWithSpy(uiSpyIndex);2060	CvAssertMsg(pCity, "pCity is null!");2061	if(!pCity)2062	{2063		return false;2064	}20652066	if(!HasEstablishedSurveillance(uiSpyIndex))2067	{2068		return false;2069	}20702071	PlayerTypes eCityOwner = pCity->getOwner();2072	if(!GET_PLAYER(eCityOwner).isMinorCiv())2073	{2074		return false;2075	}20762077	CvMinorCivAI* pMinorCivAI = GET_PLAYER(eCityOwner).GetMinorCivAI();2078	PlayerTypes eMinorCivAlly = pMinorCivAI->GetAlly();20792080	if(eMinorCivAlly != NO_PLAYER && eMinorCivAlly != m_pPlayer->GetID())2081	{2082		return true;2083	}20842085#if defined(MOD_EVENTS_ESPIONAGE)2086	if (MOD_EVENTS_ESPIONAGE) {2087		if (GAMEEVENTINVOKE_TESTALL(GAMEEVENT_EspionageCanStageCoup, m_pPlayer->GetID(), eCityOwner, pCity->GetID()) == GAMEEVENTRETURN_FALSE) {2088			return false;2089		}2090	}2091#endif2092	2093	return false;2094}

Calls

Called by