CvTraitEntry::IsFreePromotionUnitCombat(const int, const int) const
- Defined in
- CvTraitClasses.cpp, line 1086
- Class
- CvTraitEntry
- Hook name
CivHooks::CvTraitEntry_IsFreePromotionUnitCombat
Hooks
static bool BeforeCvTraitEntry_IsFreePromotionUnitCombat(const CvTraitEntry* self, const int promotionID, const int unitCombatID, bool& result);static void AfterCvTraitEntry_IsFreePromotionUnitCombat(const CvTraitEntry* self, const int promotionID, const int unitCombatID, bool& result);static bool ReplaceCvTraitEntry_IsFreePromotionUnitCombat(bool (*original)(const CvTraitEntry*, const int, const int), const CvTraitEntry* self, const int promotionID, const int unitCombatID);CivRegisterBefore<CivHooks::CvTraitEntry_IsFreePromotionUnitCombat>(host, &BeforeCvTraitEntry_IsFreePromotionUnitCombat);CivRegisterAfter<CivHooks::CvTraitEntry_IsFreePromotionUnitCombat>(host, &AfterCvTraitEntry_IsFreePromotionUnitCombat);CivRegisterReplace<CivHooks::CvTraitEntry_IsFreePromotionUnitCombat>(host, &ReplaceCvTraitEntry_IsFreePromotionUnitCombat);
Code
1085/// Accessor:: Does the civ get free promotions?1086bool CvTraitEntry::IsFreePromotionUnitCombat(const int promotionID, const int unitCombatID) const1087{1088 std::multimap<int, int>::const_iterator it = m_FreePromotionUnitCombats.find(promotionID);1089 if(it != m_FreePromotionUnitCombats.end())1090 {1091 // get an iterator to the element that is one past the last element associated with key1092 std::multimap<int, int>::const_iterator lastElement = m_FreePromotionUnitCombats.upper_bound(promotionID);10931094 // for each element in the sequence [itr, lastElement)1095 for(; it != lastElement; ++it)1096 {1097 if(it->second == unitCombatID)1098 {1099 return true;1100 }1101 }1102 }11031104 return false;1105}
Calls
std::_Tree::const_iterator::operator!=std::_Tree::const_iterator::operator++std::_Tree::const_iterator::operator->std::_Tree::endstd::_Tree::findstd::_Tree::upper_bound