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
- CvLeaderHeadInfo::hasTrait(int) const
- CvPlayer::GetID() const
- CvPlayer::getLeaderInfo() const
- CvPlayer::getTeam() const
- CvTraitEntry::IsEnabledByBelief(PlayerTypes)
- CvTraitEntry::IsEnabledByPolicy(PlayerTypes)
- CvTraitEntry::IsEnabledByTech(TeamTypes)
- CvTraitEntry::IsObsoleteByBelief(PlayerTypes)
- CvTraitEntry::IsObsoleteByPolicy(PlayerTypes)
- CvTraitEntry::IsObsoleteByTech(TeamTypes)
- CvTraitXMLEntries::GetEntry(int)
Called by
- CvPlayer::HasTrait(TraitTypes) const
- CvPlayer::getProductionModifier(BuildingTypes, CvString *) const
- CvPlayer::getProductionModifier(UnitTypes, CvString *) const
- CvPlayerTraits::GetFreeBuilding() const
- CvPlayerTraits::GetFreeBuildingOnConquest() const
- CvPlayerTraits::HasFreePromotionUnitCombat(const int, const int) const
- CvPlayerTraits::InitPlayerTraits()
- CvPlayerTraits::IsUsingMayaCalendar() const