Bazaar developer reference

CvGameReligions::GetAvailableFollowerBeliefs(PlayerTypes, ReligionTypes)

Defined in
CvReligionClasses.cpp, line 2131
Class
CvGameReligions
Hook name
CivHooks::CvGameReligions_GetAvailableFollowerBeliefs
Lua events
GameEvents.ReligionCanHaveBelief

Hooks

static bool BeforeCvGameReligions_GetAvailableFollowerBeliefs(CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion, std::vector<BeliefTypes>& result);static void AfterCvGameReligions_GetAvailableFollowerBeliefs(CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion, std::vector<BeliefTypes>& result);static std::vector<BeliefTypes> ReplaceCvGameReligions_GetAvailableFollowerBeliefs(std::vector<BeliefTypes> (*original)(CvGameReligions*, PlayerTypes, ReligionTypes), CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion);CivRegisterBefore<CivHooks::CvGameReligions_GetAvailableFollowerBeliefs>(host, &BeforeCvGameReligions_GetAvailableFollowerBeliefs);CivRegisterAfter<CivHooks::CvGameReligions_GetAvailableFollowerBeliefs>(host, &AfterCvGameReligions_GetAvailableFollowerBeliefs);CivRegisterReplace<CivHooks::CvGameReligions_GetAvailableFollowerBeliefs>(host, &ReplaceCvGameReligions_GetAvailableFollowerBeliefs);

Code

2129/// List of beliefs that can be adopted by religion followers2130#if defined(MOD_EVENTS_ACQUIRE_BELIEFS) || defined(MOD_TRAITS_ANY_BELIEF)2131std::vector<BeliefTypes> CvGameReligions::GetAvailableFollowerBeliefs(PlayerTypes ePlayer, ReligionTypes eReligion)2132#else2133std::vector<BeliefTypes> CvGameReligions::GetAvailableFollowerBeliefs()2134#endif2135{2136	std::vector<BeliefTypes> availableBeliefs;21372138	CvBeliefXMLEntries* pkBeliefs = GC.GetGameBeliefs();2139	const int iNumBeleifs = pkBeliefs->GetNumBeliefs();21402141	availableBeliefs.reserve(iNumBeleifs);2142	for(int iI = 0; iI < iNumBeleifs; iI++)2143	{2144		const BeliefTypes eBelief(static_cast<BeliefTypes>(iI));2145#if defined(MOD_TRAITS_ANY_BELIEF)2146		if(!IsInSomeReligion(eBelief, ePlayer))2147#else2148		if(!IsInSomeReligion(eBelief))2149#endif2150		{2151			CvBeliefEntry* pEntry = pkBeliefs->GetEntry(eBelief);2152			if(pEntry && pEntry->IsFollowerBelief())2153			{2154#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)2155				bool bAvailable = true;21562157				if (MOD_EVENTS_ACQUIRE_BELIEFS) {2158					if (GAMEEVENTINVOKE_TESTALL(GAMEEVENT_ReligionCanHaveBelief, ePlayer, eReligion, eBelief) == GAMEEVENTRETURN_FALSE) {2159						bAvailable = false;2160					}2161				}21622163				if (bAvailable) {2164#endif2165					availableBeliefs.push_back(eBelief);2166#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)2167				}2168#endif2169			}2170		}2171	}21722173	return availableBeliefs;2174}

Calls

Called by