Bazaar developer reference

EconomicAIHelpers::IsTestStrategy_NeedHappinessCritical(EconomicAIStrategyTypes, CvPlayer *)

Defined in
CvEconomicAI.cpp, line 3478
Hook name
CivHooks::EconomicAIHelpers_IsTestStrategy_NeedHappinessCritical

Hooks

static bool BeforeEconomicAIHelpers_IsTestStrategy_NeedHappinessCritical(EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer, bool& result);static void AfterEconomicAIHelpers_IsTestStrategy_NeedHappinessCritical(EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer, bool& result);static bool ReplaceEconomicAIHelpers_IsTestStrategy_NeedHappinessCritical(bool (*original)(EconomicAIStrategyTypes, CvPlayer*), EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer);CivRegisterBefore<CivHooks::EconomicAIHelpers_IsTestStrategy_NeedHappinessCritical>(host, &BeforeEconomicAIHelpers_IsTestStrategy_NeedHappinessCritical);CivRegisterAfter<CivHooks::EconomicAIHelpers_IsTestStrategy_NeedHappinessCritical>(host, &AfterEconomicAIHelpers_IsTestStrategy_NeedHappinessCritical);CivRegisterReplace<CivHooks::EconomicAIHelpers_IsTestStrategy_NeedHappinessCritical>(host, &ReplaceEconomicAIHelpers_IsTestStrategy_NeedHappinessCritical);

Code

3477/// "Need Happiness" Player Strategy: REALLY time for Happiness?3478bool EconomicAIHelpers::IsTestStrategy_NeedHappinessCritical(EconomicAIStrategyTypes eStrategy, CvPlayer* pPlayer)3479{3480	if(GC.getGame().isOption(GAMEOPTION_NO_HAPPINESS))3481	{3482		return false;3483	}34843485	// If we're losing at war, return false3486	if(pPlayer->GetDiplomacyAI()->GetStateAllWars() == STATE_ALL_WARS_LOSING)3487		return false;34883489	if(pPlayer->getTotalPopulation() > 0 && pPlayer->GetUnhappiness() > 0)3490	{3491		int iExcessHappiness = pPlayer->GetExcessHappiness();34923493		CvEconomicAIStrategyXMLEntry* pStrategy = pPlayer->GetEconomicAI()->GetEconomicAIStrategies()->GetEntry(eStrategy);3494		int iThreshold = /*-3*/ pStrategy->GetWeightThreshold();34953496		if(iExcessHappiness <= iThreshold)3497			return true;3498	}34993500	return false;3501}

Calls

Called by