Bazaar developer reference

EconomicAIHelpers::IsTestStrategy_NeedHappiness(EconomicAIStrategyTypes, CvPlayer *)

Defined in
CvEconomicAI.cpp, line 3452
Hook name
CivHooks::EconomicAIHelpers_IsTestStrategy_NeedHappiness

Hooks

static bool BeforeEconomicAIHelpers_IsTestStrategy_NeedHappiness(EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer, bool& result);static void AfterEconomicAIHelpers_IsTestStrategy_NeedHappiness(EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer, bool& result);static bool ReplaceEconomicAIHelpers_IsTestStrategy_NeedHappiness(bool (*original)(EconomicAIStrategyTypes, CvPlayer*), EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer);CivRegisterBefore<CivHooks::EconomicAIHelpers_IsTestStrategy_NeedHappiness>(host, &BeforeEconomicAIHelpers_IsTestStrategy_NeedHappiness);CivRegisterAfter<CivHooks::EconomicAIHelpers_IsTestStrategy_NeedHappiness>(host, &AfterEconomicAIHelpers_IsTestStrategy_NeedHappiness);CivRegisterReplace<CivHooks::EconomicAIHelpers_IsTestStrategy_NeedHappiness>(host, &ReplaceEconomicAIHelpers_IsTestStrategy_NeedHappiness);

Code

3451/// "Need Happiness" Player Strategy: Time for Happiness?3452bool EconomicAIHelpers::IsTestStrategy_NeedHappiness(EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer)3453{3454	if(GC.getGame().isOption(GAMEOPTION_NO_HAPPINESS))3455	{3456		return false;3457	}34583459	if(pPlayer->getTotalPopulation() > 0 && pPlayer->GetUnhappiness() > 0)3460	{3461		int iExcessHappiness = pPlayer->GetExcessHappiness();34623463		CvEconomicAIStrategyXMLEntry* pStrategy = pPlayer->GetEconomicAI()->GetEconomicAIStrategies()->GetEntry(eStrategy);3464		int iWeightThresholdModifier = GetWeightThresholdModifier(eStrategy, pPlayer);	// 1 Weight per HAPPINESS Flavor34653466		// This will range from 0 to 5. If Happiness is less than this we will activate the strategy3467		int iDivisor = /*2*/ pStrategy->GetWeightThreshold();3468		iWeightThresholdModifier /= iDivisor;34693470		if(iExcessHappiness <= iWeightThresholdModifier)3471			return true;3472	}34733474	return false;3475}

Calls

Called by