Bazaar developer reference

CvGameReligions::GetAvailableFounderBeliefs(PlayerTypes, ReligionTypes)

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

Hooks

static bool BeforeCvGameReligions_GetAvailableFounderBeliefs(CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion, std::vector<BeliefTypes>& result);static void AfterCvGameReligions_GetAvailableFounderBeliefs(CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion, std::vector<BeliefTypes>& result);static std::vector<BeliefTypes> ReplaceCvGameReligions_GetAvailableFounderBeliefs(std::vector<BeliefTypes> (*original)(CvGameReligions*, PlayerTypes, ReligionTypes), CvGameReligions* self, PlayerTypes ePlayer, ReligionTypes eReligion);CivRegisterBefore<CivHooks::CvGameReligions_GetAvailableFounderBeliefs>(host, &BeforeCvGameReligions_GetAvailableFounderBeliefs);CivRegisterAfter<CivHooks::CvGameReligions_GetAvailableFounderBeliefs>(host, &AfterCvGameReligions_GetAvailableFounderBeliefs);CivRegisterReplace<CivHooks::CvGameReligions_GetAvailableFounderBeliefs>(host, &ReplaceCvGameReligions_GetAvailableFounderBeliefs);

Code

2082/// List of beliefs that can be adopted by religion founders2083#if defined(MOD_EVENTS_ACQUIRE_BELIEFS) || defined(MOD_TRAITS_ANY_BELIEF)2084std::vector<BeliefTypes> CvGameReligions::GetAvailableFounderBeliefs(PlayerTypes ePlayer, ReligionTypes eReligion)2085#else2086std::vector<BeliefTypes> CvGameReligions::GetAvailableFounderBeliefs()2087#endif2088{2089	std::vector<BeliefTypes> availableBeliefs;20902091	CvBeliefXMLEntries* pkBeliefs = GC.GetGameBeliefs();2092	const int iNumBeleifs = pkBeliefs->GetNumBeliefs();20932094	availableBeliefs.reserve(iNumBeleifs);2095	for(int iI = 0; iI < iNumBeleifs; iI++)2096	{2097		const BeliefTypes eBelief(static_cast<BeliefTypes>(iI));2098#if defined(MOD_TRAITS_ANY_BELIEF)2099		if(!IsInSomeReligion(eBelief, ePlayer))2100#else2101		if(!IsInSomeReligion(eBelief))2102#endif2103		{2104			CvBeliefEntry* pEntry = pkBeliefs->GetEntry(eBelief);2105			if(pEntry && pEntry->IsFounderBelief())2106			{2107#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)2108				bool bAvailable = true;21092110				if (MOD_EVENTS_ACQUIRE_BELIEFS) {2111					if (GAMEEVENTINVOKE_TESTALL(GAMEEVENT_ReligionCanHaveBelief, ePlayer, eReligion, eBelief) == GAMEEVENTRETURN_FALSE) {2112						bAvailable = false;2113					}2114				}21152116				if (bAvailable) {2117#endif2118					availableBeliefs.push_back(eBelief);2119#if defined(MOD_EVENTS_ACQUIRE_BELIEFS)2120				}2121#endif2122			}2123		}2124	}21252126	return availableBeliefs;2127}

Calls

Called by