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
- CustomMods::eventTestAll(const char *, const char *, ...)
- CustomMods::isEVENTS_ACQUIRE_BELIEFS()
- CvBeliefEntry::IsFounderBelief() const
- CvBeliefXMLEntries::GetEntry(int)
- CvBeliefXMLEntries::GetNumBeliefs()
- CvGameReligions::IsInSomeReligion(BeliefTypes, PlayerTypes) const
- CvGlobals::GetGameBeliefs() const
std::vector::push_backstd::vector::reservestd::vector::vectorstd::vector::vector