Bazaar developer reference

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}

Calls

Called by