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
- CvEconomicAI::GetEconomicAIStrategies()
- CvEconomicAIStrategyXMLEntries::GetEntry(int)
- CvEconomicAIStrategyXMLEntry::GetWeightThreshold() const
- CvGame::isOption(GameOptionTypes) const
- CvGlobals::getGame()
- CvPlayer::GetEconomicAI() const
- CvPlayer::GetExcessHappiness() const
- CvPlayer::getTotalPopulation() const
- CvPlayer::GetUnhappiness(CvCity *, CvCity *) const
- EconomicAIHelpers::GetWeightThresholdModifier(EconomicAIStrategyTypes, CvPlayer *)