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}