Bazaar developer reference

CvCity::getHappinessModifier(YieldTypes) const

Defined in
CvCity.cpp, line 10557
Class
CvCity
Hook name
CivHooks::CvCity_getHappinessModifier

Hooks

static bool BeforeCvCity_getHappinessModifier(const CvCity* self, YieldTypes eIndex, int& result);static void AfterCvCity_getHappinessModifier(const CvCity* self, YieldTypes eIndex, int& result);static int ReplaceCvCity_getHappinessModifier(int (*original)(const CvCity*, YieldTypes), const CvCity* self, YieldTypes eIndex);CivRegisterBefore<CivHooks::CvCity_getHappinessModifier>(host, &BeforeCvCity_getHappinessModifier);CivRegisterAfter<CivHooks::CvCity_getHappinessModifier>(host, &AfterCvCity_getHappinessModifier);CivRegisterReplace<CivHooks::CvCity_getHappinessModifier>(host, &ReplaceCvCity_getHappinessModifier);

Code

10557int CvCity::getHappinessModifier(YieldTypes eIndex) const10558{10559	VALIDATE_OBJECT10560	int iModifier = 0;10561	CvPlayer &kPlayer = GET_PLAYER(getOwner());1056210563	if (kPlayer.IsEmpireUnhappy())10564	{10565		int iUnhappy = -1 * kPlayer.GetExcessHappiness();1056610567		// Production and Gold slow down when Empire is Unhappy10568		if(eIndex == YIELD_PRODUCTION)10569		{10570			iModifier = iUnhappy * GC.getVERY_UNHAPPY_PRODUCTION_PENALTY_PER_UNHAPPY();10571			iModifier = max (iModifier, GC.getVERY_UNHAPPY_MAX_PRODUCTION_PENALTY());10572		}10573		else if (eIndex == YIELD_GOLD)10574		{10575			iModifier = iUnhappy * GC.getVERY_UNHAPPY_GOLD_PENALTY_PER_UNHAPPY();10576			iModifier = max (iModifier, GC.getVERY_UNHAPPY_MAX_GOLD_PENALTY());10577		}10578	}1057910580	return iModifier;10581}

Calls

Called by