Bazaar developer reference

CvPlayerEspionage::GetPercentOfStateComplete(uint)

Defined in
CvEspionageClasses.cpp, line 2515
Class
CvPlayerEspionage
Hook name
CivHooks::CvPlayerEspionage_GetPercentOfStateComplete

Hooks

static bool BeforeCvPlayerEspionage_GetPercentOfStateComplete(CvPlayerEspionage* self, uint uiSpyIndex, int& result);static void AfterCvPlayerEspionage_GetPercentOfStateComplete(CvPlayerEspionage* self, uint uiSpyIndex, int& result);static int ReplaceCvPlayerEspionage_GetPercentOfStateComplete(int (*original)(CvPlayerEspionage*, uint), CvPlayerEspionage* self, uint uiSpyIndex);CivRegisterBefore<CivHooks::CvPlayerEspionage_GetPercentOfStateComplete>(host, &BeforeCvPlayerEspionage_GetPercentOfStateComplete);CivRegisterAfter<CivHooks::CvPlayerEspionage_GetPercentOfStateComplete>(host, &AfterCvPlayerEspionage_GetPercentOfStateComplete);CivRegisterReplace<CivHooks::CvPlayerEspionage_GetPercentOfStateComplete>(host, &ReplaceCvPlayerEspionage_GetPercentOfStateComplete);

Code

2514/// GetPercentOfStateComplete - What percentage of this spy's current state is complete?2515int CvPlayerEspionage::GetPercentOfStateComplete(uint uiSpyIndex)2516{2517	CvAssertMsg(uiSpyIndex < m_aSpyList.size(), "iSpyIndex is out of bounds");2518	if(uiSpyIndex >= m_aSpyList.size())2519	{2520		return -2;2521	}25222523	PlayerTypes ePlayer = m_pPlayer->GetID();2524	CvCity* pCity = NULL;2525	CvCityEspionage* pCityEspionage = NULL;25262527	switch(m_aSpyList[uiSpyIndex].m_eSpyState)2528	{2529	case SPY_STATE_UNASSIGNED:2530		// no end time2531		return -1;2532		break;2533	case SPY_STATE_TRAVELLING:2534	case SPY_STATE_SURVEILLANCE:2535	case SPY_STATE_GATHERING_INTEL:2536	case SPY_STATE_MAKING_INTRODUCTIONS:2537		pCity = GetCityWithSpy(uiSpyIndex);2538		if (pCity)2539		{2540			pCityEspionage = pCity->GetCityEspionage();2541			CvAssertMsg(pCityEspionage->m_aiGoal[ePlayer] != 0, "Trying to div by zero!");2542			if(pCityEspionage->m_aiGoal[ePlayer] != 0)2543			{2544				return (pCityEspionage->m_aiAmount[ePlayer] * 100) / pCityEspionage->m_aiGoal[ePlayer];2545			}2546		}2547		return -1;2548	case SPY_STATE_RIG_ELECTION:2549		if(GC.getGame().GetTurnsBetweenMinorCivElections() != 0)2550		{2551			return ((GC.getGame().GetTurnsBetweenMinorCivElections() - GC.getGame().GetTurnsUntilMinorCivElection()) * 100) / GC.getGame().GetTurnsBetweenMinorCivElections();2552		}2553		else2554		{2555			return -1;2556		}2557		break;2558	case SPY_STATE_COUNTER_INTEL:2559	case SPY_STATE_SCHMOOZE:2560		// no end time2561		return -1;2562		break;2563	case SPY_STATE_DEAD:2564		// no end time2565		return -1;2566		break;2567#if defined(MOD_API_ESPIONAGE)2568	case SPY_STATE_TERMINATED:2569		// no end time2570		return -1;2571		break;2572#endif2573	}25742575	return -1;2576}

Calls

Called by