CvPolicyEntry::IsFreePromotionUnitCombat(const int, const int) const
- Defined in
- CvPolicyClasses.cpp, line 1963
- Class
- CvPolicyEntry
- Hook name
CivHooks::CvPolicyEntry_IsFreePromotionUnitCombat
Hooks
static bool BeforeCvPolicyEntry_IsFreePromotionUnitCombat(const CvPolicyEntry* self, const int promotionID, const int unitCombatID, bool& result);static void AfterCvPolicyEntry_IsFreePromotionUnitCombat(const CvPolicyEntry* self, const int promotionID, const int unitCombatID, bool& result);static bool ReplaceCvPolicyEntry_IsFreePromotionUnitCombat(bool (*original)(const CvPolicyEntry*, const int, const int), const CvPolicyEntry* self, const int promotionID, const int unitCombatID);CivRegisterBefore<CivHooks::CvPolicyEntry_IsFreePromotionUnitCombat>(host, &BeforeCvPolicyEntry_IsFreePromotionUnitCombat);CivRegisterAfter<CivHooks::CvPolicyEntry_IsFreePromotionUnitCombat>(host, &AfterCvPolicyEntry_IsFreePromotionUnitCombat);CivRegisterReplace<CivHooks::CvPolicyEntry_IsFreePromotionUnitCombat>(host, &ReplaceCvPolicyEntry_IsFreePromotionUnitCombat);
Code
1962/// Does the specific unit combat get a specific free promotion?1963bool CvPolicyEntry::IsFreePromotionUnitCombat(const int promotionID, const int unitCombatID) const1964{1965 std::multimap<int, int>::const_iterator it = m_FreePromotionUnitCombats.find(promotionID);1966 if(it != m_FreePromotionUnitCombats.end())1967 {1968 // get an iterator to the element that is one past the last element associated with key1969 std::multimap<int, int>::const_iterator lastElement = m_FreePromotionUnitCombats.upper_bound(promotionID);19701971 // for each element in the sequence [itr, lastElement)1972 for(; it != lastElement; ++it)1973 {1974 if(it->second == unitCombatID)1975 {1976 return true;1977 }1978 }1979 }19801981 return false;1982}
Calls
std::_Tree::const_iterator::operator!=std::_Tree::const_iterator::operator++std::_Tree::const_iterator::operator->std::_Tree::endstd::_Tree::findstd::_Tree::upper_bound