Bazaar developer reference

CvPlayerTraits::HasTrait(TraitTypes) const

Defined in
CvTraitClasses.cpp, line 2621
Class
CvPlayerTraits
Hook name
CivHooks::CvPlayerTraits_HasTrait

Hooks

static bool BeforeCvPlayerTraits_HasTrait(const CvPlayerTraits* self, TraitTypes eTrait, bool& result);static void AfterCvPlayerTraits_HasTrait(const CvPlayerTraits* self, TraitTypes eTrait, bool& result);static bool ReplaceCvPlayerTraits_HasTrait(bool (*original)(const CvPlayerTraits*, TraitTypes), const CvPlayerTraits* self, TraitTypes eTrait);CivRegisterBefore<CivHooks::CvPlayerTraits_HasTrait>(host, &BeforeCvPlayerTraits_HasTrait);CivRegisterAfter<CivHooks::CvPlayerTraits_HasTrait>(host, &AfterCvPlayerTraits_HasTrait);CivRegisterReplace<CivHooks::CvPlayerTraits_HasTrait>(host, &ReplaceCvPlayerTraits_HasTrait);

Code

2620/// Does this player possess a specific trait?2621bool CvPlayerTraits::HasTrait(TraitTypes eTrait) const2622{2623	CvAssert(m_pPlayer);26242625	if(m_pPlayer != NULL)2626	{2627		CvAssertMsg((m_pPlayer->getLeaderType() >= 0), "getLeaderType() is less than zero");2628		CvAssertMsg((eTrait >= 0), "eTrait is less than zero");2629		2630#if defined(MOD_TRAITS_OTHER_PREREQS)2631		TeamTypes eTeam = m_pPlayer->getTeam();2632		PlayerTypes ePlayer = m_pPlayer->GetID();2633		CvTraitEntry* pTrait = m_pTraits->GetEntry(eTrait);2634		return m_pPlayer->getLeaderInfo().hasTrait(eTrait) && 2635			   ((!pTrait->IsObsoleteByBelief(ePlayer) && pTrait->IsEnabledByBelief(ePlayer)) &&2636			    (!pTrait->IsObsoleteByPolicy(ePlayer) && pTrait->IsEnabledByPolicy(ePlayer)) &&2637			    (!pTrait->IsObsoleteByTech(eTeam)     && pTrait->IsEnabledByTech(eTeam)));2638#else2639		return m_pPlayer->getLeaderInfo().hasTrait(eTrait) && !m_pTraits->GetEntry(eTrait)->IsObsoleteByTech(m_pPlayer->getTeam()) && m_pTraits->GetEntry(eTrait)->IsEnabledByTech(m_pPlayer->getTeam());2640#endif2641	}2642	else2643	{2644		return false;2645	}2646}

Calls

Called by