Bazaar developer reference

CvPlayerTraits::HasFreePromotionUnitCombat(const int, const int) const

Defined in
CvTraitClasses.cpp, line 2889
Class
CvPlayerTraits
Hook name
CivHooks::CvPlayerTraits_HasFreePromotionUnitCombat

Hooks

static bool BeforeCvPlayerTraits_HasFreePromotionUnitCombat(const CvPlayerTraits* self, const int promotionID, const int unitCombatID, bool& result);static void AfterCvPlayerTraits_HasFreePromotionUnitCombat(const CvPlayerTraits* self, const int promotionID, const int unitCombatID, bool& result);static bool ReplaceCvPlayerTraits_HasFreePromotionUnitCombat(bool (*original)(const CvPlayerTraits*, const int, const int), const CvPlayerTraits* self, const int promotionID, const int unitCombatID);CivRegisterBefore<CivHooks::CvPlayerTraits_HasFreePromotionUnitCombat>(host, &BeforeCvPlayerTraits_HasFreePromotionUnitCombat);CivRegisterAfter<CivHooks::CvPlayerTraits_HasFreePromotionUnitCombat>(host, &AfterCvPlayerTraits_HasFreePromotionUnitCombat);CivRegisterReplace<CivHooks::CvPlayerTraits_HasFreePromotionUnitCombat>(host, &ReplaceCvPlayerTraits_HasFreePromotionUnitCombat);

Code

2888/// Do all new units get a specific promotion?2889bool CvPlayerTraits::HasFreePromotionUnitCombat(const int promotionID, const int unitCombatID) const2890{2891	CvAssertMsg((promotionID >= 0), "promotionID is less than zero");2892	for(int iI = 0; iI < GC.getNumTraitInfos(); iI++)2893	{2894		const TraitTypes eTrait = static_cast<TraitTypes>(iI);2895		CvTraitEntry* pkTraitInfo = GC.getTraitInfo(eTrait);2896		if(pkTraitInfo)2897		{2898			if(HasTrait(eTrait))2899			{2900				if(pkTraitInfo->IsFreePromotionUnitCombat(promotionID, unitCombatID))2901				{2902					return true;2903				}2904			}2905		}2906	}29072908	return false;2909}

Calls

Called by