Bazaar developer reference

CvMinorCivAI::GetCurrentHappinessPerLuxuryBonus(PlayerTypes)

Defined in
CvMinorCivAI.cpp, line 8050
Class
CvMinorCivAI
Hook name
CivHooks::CvMinorCivAI_GetCurrentHappinessPerLuxuryBonus

Hooks

static bool BeforeCvMinorCivAI_GetCurrentHappinessPerLuxuryBonus(CvMinorCivAI* self, PlayerTypes ePlayer, int& result);static void AfterCvMinorCivAI_GetCurrentHappinessPerLuxuryBonus(CvMinorCivAI* self, PlayerTypes ePlayer, int& result);static int ReplaceCvMinorCivAI_GetCurrentHappinessPerLuxuryBonus(int (*original)(CvMinorCivAI*, PlayerTypes), CvMinorCivAI* self, PlayerTypes ePlayer);CivRegisterBefore<CivHooks::CvMinorCivAI_GetCurrentHappinessPerLuxuryBonus>(host, &BeforeCvMinorCivAI_GetCurrentHappinessPerLuxuryBonus);CivRegisterAfter<CivHooks::CvMinorCivAI_GetCurrentHappinessPerLuxuryBonus>(host, &AfterCvMinorCivAI_GetCurrentHappinessPerLuxuryBonus);CivRegisterReplace<CivHooks::CvMinorCivAI_GetCurrentHappinessPerLuxuryBonus>(host, &ReplaceCvMinorCivAI_GetCurrentHappinessPerLuxuryBonus);

Code

8049/// Per luxury happiness bonus currently in effect8050int CvMinorCivAI::GetCurrentHappinessPerLuxuryBonus(PlayerTypes ePlayer)8051{8052	CvAssertMsg(ePlayer >= 0, "eIndex is expected to be non-negative (invalid Index)");8053	CvAssertMsg(ePlayer < MAX_PLAYERS, "ePlayer is expected to be within maximum bounds (invalid Index)");8054	if(ePlayer < 0 || ePlayer >= MAX_PLAYERS) return 0;80558056	// Minor civ players do not get a bonus8057	if(ePlayer >= MAX_MAJOR_CIVS)8058		return 0;80598060	// Only for Mercantile trait minors8061	if(GetTrait() != MINOR_CIV_TRAIT_MERCANTILE)8062		return 0;80638064	int iAmount = 0;8065	if(IsAllies(ePlayer))8066		iAmount += GetHappinessPerLuxuryAlliesBonus(ePlayer);8067	if(IsFriends(ePlayer))8068		iAmount += GetHappinessPerLuxuryFriendshipBonus(ePlayer);8069	return iAmount;8070}

Calls

Called by