Bazaar developer reference

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