Bazaar developer reference

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

Called by