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