Hooks
static bool BeforeCvPlayerCulture_ComputePublicOpinionUnhappiness(CvPlayerCulture* self, int iDissatisfaction, int & iPerCityUnhappy, int & iUnhappyPerXPop, int& result);static void AfterCvPlayerCulture_ComputePublicOpinionUnhappiness(CvPlayerCulture* self, int iDissatisfaction, int & iPerCityUnhappy, int & iUnhappyPerXPop, int& result);static int ReplaceCvPlayerCulture_ComputePublicOpinionUnhappiness(int (*original)(CvPlayerCulture*, int, int &, int &), CvPlayerCulture* self, int iDissatisfaction, int & iPerCityUnhappy, int & iUnhappyPerXPop);CivRegisterBefore<CivHooks::CvPlayerCulture_ComputePublicOpinionUnhappiness>(host, &BeforeCvPlayerCulture_ComputePublicOpinionUnhappiness);CivRegisterAfter<CivHooks::CvPlayerCulture_ComputePublicOpinionUnhappiness>(host, &AfterCvPlayerCulture_ComputePublicOpinionUnhappiness);CivRegisterReplace<CivHooks::CvPlayerCulture_ComputePublicOpinionUnhappiness>(host, &ReplaceCvPlayerCulture_ComputePublicOpinionUnhappiness);
Code
3966/// Compute effects of dissatisfaction3967int CvPlayerCulture::ComputePublicOpinionUnhappiness(int iDissatisfaction, int &iPerCityUnhappy, int &iUnhappyPerXPop)3968{3969 if (iDissatisfaction < 3)3970 {3971 iPerCityUnhappy = 1;3972 iUnhappyPerXPop = 10;39733974 }3975 else if (iDissatisfaction < 5)3976 {3977 iPerCityUnhappy = 2;3978 iUnhappyPerXPop = 5;39793980 }3981 else3982 {3983 iPerCityUnhappy = 4;3984 iUnhappyPerXPop = 3;39853986 }39873988 CUSTOMLOG("ComputePublicOpinionUnhappiness: dissatisfaction=%i, perCity=%i, perPop=%i", iDissatisfaction, iPerCityUnhappy, iUnhappyPerXPop);3989 return max(m_pPlayer->getNumCities() * iPerCityUnhappy, m_pPlayer->getTotalPopulation() / iUnhappyPerXPop);3990}