Bazaar developer reference

CvGameReligions::GetAvailableEnhancerBeliefs(PlayerTypes, ReligionTypes)

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

Hooks

static bool BeforeCvGameReligions_GetAvailableEnhancerBeliefs(CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion, std::vector<BeliefTypes>& result);static void AfterCvGameReligions_GetAvailableEnhancerBeliefs(CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion, std::vector<BeliefTypes>& result);static std::vector<BeliefTypes> ReplaceCvGameReligions_GetAvailableEnhancerBeliefs(std::vector<BeliefTypes> (*original)(CvGameReligions*, PlayerTypes, ReligionTypes), CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion);CivRegisterBefore<CivHooks::CvGameReligions_GetAvailableEnhancerBeliefs>(host, &BeforeCvGameReligions_GetAvailableEnhancerBeliefs);CivRegisterAfter<CivHooks::CvGameReligions_GetAvailableEnhancerBeliefs>(host, &AfterCvGameReligions_GetAvailableEnhancerBeliefs);CivRegisterReplace<CivHooks::CvGameReligions_GetAvailableEnhancerBeliefs>(host, &ReplaceCvGameReligions_GetAvailableEnhancerBeliefs);

Code

2176/// List of beliefs that enhance religions2177#if defined(MOD_EVENTS_ACQUIRE_BELIEFS) || defined(MOD_TRAITS_ANY_BELIEF)2178std::vector<BeliefTypes> CvGameReligions::GetAvailableEnhancerBeliefs(PlayerTypes ePlayer, ReligionTypes eReligion)2179#else2180std::vector<BeliefTypes> CvGameReligions::GetAvailableEnhancerBeliefs()2181#endif2182{2183	std::vector<BeliefTypes> availableBeliefs;21842185	CvBeliefXMLEntries* pkBeliefs = GC.GetGameBeliefs();2186	const int iNumBeleifs = pkBeliefs->GetNumBeliefs();21872188	availableBeliefs.reserve(iNumBeleifs);2189	for(int iI = 0; iI < iNumBeleifs; iI++)2190	{2191		const BeliefTypes eBelief(static_cast<BeliefTypes>(iI));2192#if defined(MOD_TRAITS_ANY_BELIEF)2193		if(!IsInSomeReligion(eBelief, ePlayer))2194#else2195		if(!IsInSomeReligion(eBelief))2196#endif2197		{2198			CvBeliefEntry* pEntry = pkBeliefs->GetEntry(eBelief);2199			if(pEntry && pEntry->IsEnhancerBelief())2200			{2201#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)2202				bool bAvailable = true;22032204				if (MOD_EVENTS_ACQUIRE_BELIEFS) {2205					if (GAMEEVENTINVOKE_TESTALL(GAMEEVENT_ReligionCanHaveBelief, ePlayer, eReligion, eBelief) == GAMEEVENTRETURN_FALSE) {2206						bAvailable = false;2207					}2208				}22092210				if (bAvailable) {2211#endif2212					availableBeliefs.push_back(eBelief);2213#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)2214				}2215#endif2216			}2217		}2218	}22192220	return availableBeliefs;2221}

Calls

Called by