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