Bazaar developer reference

CvCityCulture::GetTourismMultiplier(PlayerTypes, bool, bool, bool, bool, bool) const

Defined in
CvCultureClasses.cpp, line 4613
Class
CvCityCulture
Hook name
CivHooks::CvCityCulture_GetTourismMultiplier

Hooks

static bool BeforeCvCityCulture_GetTourismMultiplier(const CvCityCulture* self, PlayerTypes ePlayer, bool bIgnoreReligion, bool bIgnoreOpenBorders, bool bIgnoreTrade, bool bIgnorePolicies, bool bIgnoreIdeologies, int& result);static void AfterCvCityCulture_GetTourismMultiplier(const CvCityCulture* self, PlayerTypes ePlayer, bool bIgnoreReligion, bool bIgnoreOpenBorders, bool bIgnoreTrade, bool bIgnorePolicies, bool bIgnoreIdeologies, int& result);static int ReplaceCvCityCulture_GetTourismMultiplier(int (*original)(const CvCityCulture*, PlayerTypes, bool, bool, bool, bool, bool), const CvCityCulture* self, PlayerTypes ePlayer, bool bIgnoreReligion, bool bIgnoreOpenBorders, bool bIgnoreTrade, bool bIgnorePolicies, bool bIgnoreIdeologies);CivRegisterBefore<CivHooks::CvCityCulture_GetTourismMultiplier>(host, &BeforeCvCityCulture_GetTourismMultiplier);CivRegisterAfter<CivHooks::CvCityCulture_GetTourismMultiplier>(host, &AfterCvCityCulture_GetTourismMultiplier);CivRegisterReplace<CivHooks::CvCityCulture_GetTourismMultiplier>(host, &ReplaceCvCityCulture_GetTourismMultiplier);

Code

4612/// What is the tourism modifier for one player4613int CvCityCulture::GetTourismMultiplier(PlayerTypes ePlayer, bool bIgnoreReligion, bool bIgnoreOpenBorders, bool bIgnoreTrade, bool bIgnorePolicies, bool bIgnoreIdeologies) const4614{4615	int iMultiplier = 0;4616	CvPlayer &kPlayer = GET_PLAYER(ePlayer);4617	CvTeam &kTeam = GET_TEAM(kPlayer.getTeam());4618	CvPlayer &kCityPlayer = GET_PLAYER(m_pCity->getOwner());4619	PolicyBranchTypes eMyIdeology = kCityPlayer.GetPlayerPolicies()->GetLateGamePolicyTree();4620	PolicyBranchTypes eTheirIdeology = kPlayer.GetPlayerPolicies()->GetLateGamePolicyTree();46214622	if (!bIgnoreReligion)4623	{4624		// City shares religion with this player4625		ReligionTypes ePlayerReligion = kCityPlayer.GetReligions()->GetReligionInMostCities();4626		if (ePlayerReligion != NO_RELIGION && kPlayer.GetReligions()->HasReligionInMostCities(ePlayerReligion))4627		{4628			iMultiplier += kCityPlayer.GetCulture()->GetTourismModifierSharedReligion();4629		}4630	}46314632	if (!bIgnoreOpenBorders)4633	{4634		// Open borders with this player4635		if (kTeam.IsAllowsOpenBordersToTeam(kCityPlayer.getTeam()))4636		{4637			iMultiplier += kCityPlayer.GetCulture()->GetTourismModifierOpenBorders();4638		}4639	}46404641	if (!bIgnoreTrade)4642	{4643		// Trade route to one of this player's cities from here4644		if (GC.getGame().GetGameTrade()->IsPlayerConnectedToPlayer(m_pCity->getOwner(), ePlayer))4645		{4646			iMultiplier += kCityPlayer.GetCulture()->GetTourismModifierTradeRoute();4647		}4648	}46494650	if (!bIgnoreIdeologies)4651	{4652		if (eMyIdeology != NO_POLICY_BRANCH_TYPE && eTheirIdeology != NO_POLICY_BRANCH_TYPE && eMyIdeology != eTheirIdeology)4653		{4654			iMultiplier += GC.getTOURISM_MODIFIER_DIFFERENT_IDEOLOGIES();46554656			if (kCityPlayer.GetEspionage()->IsMyDiplomatVisitingThem(ePlayer))4657			{4658				iMultiplier += GC.getTOURISM_MODIFIER_DIPLOMAT();4659			}4660		}4661	}46624663	if (!bIgnorePolicies)4664	{4665		int iLessHappyMod = kCityPlayer.GetPlayerPolicies()->GetNumericModifier(POLICYMOD_TOURISM_MOD_LESS_HAPPY);4666		if (iLessHappyMod > 0)4667		{4668			if (kCityPlayer.GetExcessHappiness() > kPlayer.GetExcessHappiness())4669			{4670				iMultiplier += iLessHappyMod;4671			}4672		}4673		int iCommonFoeMod = kCityPlayer.GetPlayerPolicies()->GetNumericModifier(POLICYMOD_TOURISM_MOD_COMMON_FOE);4674		if (iCommonFoeMod > 0)4675		{4676			PlayerTypes eLoopPlayer;4677			for(int iPlayerLoop = 0; iPlayerLoop < MAX_MAJOR_CIVS; iPlayerLoop++)4678			{4679				eLoopPlayer = (PlayerTypes) iPlayerLoop;46804681				if(eLoopPlayer != ePlayer && eLoopPlayer != m_pCity->getOwner() && kCityPlayer.GetDiplomacyAI()->IsPlayerValid(eLoopPlayer))4682				{4683					// Are they at war with me too?4684					if (GET_TEAM(kCityPlayer.getTeam()).isAtWar(GET_PLAYER(eLoopPlayer).getTeam()) && GET_TEAM(kPlayer.getTeam()).isAtWar(GET_PLAYER(eLoopPlayer).getTeam()))4685					{4686						iMultiplier += iCommonFoeMod;4687					}4688				}4689			}4690		}4691		int iSharedIdeologyMod = kCityPlayer.GetPlayerPolicies()->GetNumericModifier(POLICYMOD_TOURISM_MOD_SHARED_IDEOLOGY);4692		if (iSharedIdeologyMod > 0)4693		{4694			if (eMyIdeology != NO_POLICY_BRANCH_TYPE && eTheirIdeology != NO_POLICY_BRANCH_TYPE && eMyIdeology == eTheirIdeology)4695			{4696				iMultiplier += iSharedIdeologyMod;4697			}4698		}4699	}47004701	// LATER add top science city and research agreement with this player???47024703	return iMultiplier;4704}

Calls

Called by