CvPlayerCulture::WantsDiplomatDoingPropaganda(PlayerTypes) const
- Defined in
- CvCultureClasses.cpp, line 3877
- Class
- CvPlayerCulture
- Hook name
CivHooks::CvPlayerCulture_WantsDiplomatDoingPropaganda
Hooks
static bool BeforeCvPlayerCulture_WantsDiplomatDoingPropaganda(const CvPlayerCulture* self, PlayerTypes eTargetPlayer, bool& result);static void AfterCvPlayerCulture_WantsDiplomatDoingPropaganda(const CvPlayerCulture* self, PlayerTypes eTargetPlayer, bool& result);static bool ReplaceCvPlayerCulture_WantsDiplomatDoingPropaganda(bool (*original)(const CvPlayerCulture*, PlayerTypes), const CvPlayerCulture* self, PlayerTypes eTargetPlayer);CivRegisterBefore<CivHooks::CvPlayerCulture_WantsDiplomatDoingPropaganda>(host, &BeforeCvPlayerCulture_WantsDiplomatDoingPropaganda);CivRegisterAfter<CivHooks::CvPlayerCulture_WantsDiplomatDoingPropaganda>(host, &AfterCvPlayerCulture_WantsDiplomatDoingPropaganda);CivRegisterReplace<CivHooks::CvPlayerCulture_WantsDiplomatDoingPropaganda>(host, &ReplaceCvPlayerCulture_WantsDiplomatDoingPropaganda);
Code
3877bool CvPlayerCulture::WantsDiplomatDoingPropaganda(PlayerTypes eTargetPlayer) const3878{3879 // only return the top two3880 int iFirstValue = NO_INFLUENCE_LEVEL;3881 int iSecondValue = NO_INFLUENCE_LEVEL;3882 PlayerTypes eFirstPlayer = NO_PLAYER;3883 PlayerTypes eSecondPlayer = NO_PLAYER;38843885 // only do this if everybody is exotic3886 for (uint ui = 0; ui < MAX_MAJOR_CIVS; ui++)3887 {3888 PlayerTypes ePlayer = (PlayerTypes)ui;3889 if (ePlayer == m_pPlayer->GetID())3890 {3891 continue;3892 }38933894 if (!GET_PLAYER(ePlayer).isAlive())3895 {3896 continue;3897 }38983899 int iInfluenceLevel = GetInfluenceLevel(ePlayer);3900 if (iInfluenceLevel < INFLUENCE_LEVEL_EXOTIC)3901 {3902 return false;3903 }3904 else if (iInfluenceLevel > iFirstValue && iInfluenceLevel > iSecondValue)3905 {3906 iSecondValue = iFirstValue;3907 eSecondPlayer = eFirstPlayer;3908 iFirstValue = iInfluenceLevel;3909 eFirstPlayer = ePlayer;3910 }3911 else if (iInfluenceLevel > iSecondValue)3912 {3913 iSecondValue = iInfluenceLevel;3914 eSecondPlayer = ePlayer;3915 }3916 }39173918 return (eFirstPlayer == eTargetPlayer || eSecondPlayer == eTargetPlayer);3919}