Bazaar developer reference

CvPlayerCulture::GetTourismModifierWith(PlayerTypes) const

Defined in
CvCultureClasses.cpp, line 3189
Class
CvPlayerCulture
Hook name
CivHooks::CvPlayerCulture_GetTourismModifierWith

Hooks

static bool BeforeCvPlayerCulture_GetTourismModifierWith(const CvPlayerCulture* self, PlayerTypes ePlayer, int& result);static void AfterCvPlayerCulture_GetTourismModifierWith(const CvPlayerCulture* self, PlayerTypes ePlayer, int& result);static int ReplaceCvPlayerCulture_GetTourismModifierWith(int (*original)(const CvPlayerCulture*, PlayerTypes), const CvPlayerCulture* self, PlayerTypes ePlayer);CivRegisterBefore<CivHooks::CvPlayerCulture_GetTourismModifierWith>(host, &BeforeCvPlayerCulture_GetTourismModifierWith);CivRegisterAfter<CivHooks::CvPlayerCulture_GetTourismModifierWith>(host, &AfterCvPlayerCulture_GetTourismModifierWith);CivRegisterReplace<CivHooks::CvPlayerCulture_GetTourismModifierWith>(host, &ReplaceCvPlayerCulture_GetTourismModifierWith);

Code

3188/// At the player level, what is the modifier for tourism between these players?3189int CvPlayerCulture::GetTourismModifierWith(PlayerTypes ePlayer) const3190{3191	int iMultiplier = 0;3192	CvPlayer &kPlayer = GET_PLAYER(ePlayer);3193	CvTeam &kTeam = GET_TEAM(kPlayer.getTeam());3194	PolicyBranchTypes eMyIdeology = m_pPlayer->GetPlayerPolicies()->GetLateGamePolicyTree();3195	PolicyBranchTypes eTheirIdeology = kPlayer.GetPlayerPolicies()->GetLateGamePolicyTree();31963197	// Open borders with this player3198	if (kTeam.IsAllowsOpenBordersToTeam(m_pPlayer->getTeam()))3199	{3200		iMultiplier += GetTourismModifierOpenBorders();3201	}32023203	// Trade route to one of this player's cities from here3204	if (GC.getGame().GetGameTrade()->IsPlayerConnectedToPlayer(m_pPlayer->GetID(), ePlayer))3205	{3206		iMultiplier += GetTourismModifierTradeRoute();3207	}32083209	if (eMyIdeology != NO_POLICY_BRANCH_TYPE && eTheirIdeology != NO_POLICY_BRANCH_TYPE && eMyIdeology != eTheirIdeology)3210	{3211		iMultiplier += GC.getTOURISM_MODIFIER_DIFFERENT_IDEOLOGIES();32123213		if (m_pPlayer->GetEspionage()->IsMyDiplomatVisitingThem(ePlayer))3214		{3215			iMultiplier += GC.getTOURISM_MODIFIER_DIPLOMAT();3216		}3217	}32183219	int iLessHappyMod = m_pPlayer->GetPlayerPolicies()->GetNumericModifier(POLICYMOD_TOURISM_MOD_LESS_HAPPY);3220	if (iLessHappyMod > 0)3221	{3222		if (m_pPlayer->GetExcessHappiness() > kPlayer.GetExcessHappiness())3223		{3224			iMultiplier += iLessHappyMod;3225		}3226	}3227	int iCommonFoeMod = m_pPlayer->GetPlayerPolicies()->GetNumericModifier(POLICYMOD_TOURISM_MOD_COMMON_FOE);3228	if (iCommonFoeMod > 0)3229	{3230		PlayerTypes eLoopPlayer;3231		for(int iPlayerLoop = 0; iPlayerLoop < MAX_MAJOR_CIVS; iPlayerLoop++)3232		{3233			eLoopPlayer = (PlayerTypes) iPlayerLoop;32343235			if (eLoopPlayer != ePlayer && eLoopPlayer != m_pPlayer->GetID() && m_pPlayer->GetDiplomacyAI()->IsPlayerValid(eLoopPlayer))3236			{3237				// Are they at war with me too?3238				if (GET_TEAM(m_pPlayer->getTeam()).isAtWar(GET_PLAYER(eLoopPlayer).getTeam()) && GET_TEAM(kPlayer.getTeam()).isAtWar(GET_PLAYER(eLoopPlayer).getTeam()))3239				{3240					iMultiplier += iCommonFoeMod;3241				}3242			}3243		}3244	}3245	int iSharedIdeologyMod = m_pPlayer->GetPlayerPolicies()->GetNumericModifier(POLICYMOD_TOURISM_MOD_SHARED_IDEOLOGY);3246	if (iSharedIdeologyMod > 0)3247	{3248		if (eMyIdeology != NO_POLICY_BRANCH_TYPE && eTheirIdeology != NO_POLICY_BRANCH_TYPE && eMyIdeology == eTheirIdeology)3249		{3250			iMultiplier += iSharedIdeologyMod;3251		}3252	}32533254	if (m_pPlayer->isGoldenAge() && m_pPlayer->GetPlayerTraits()->GetGoldenAgeTourismModifier())3255	{3256		iMultiplier += m_pPlayer->GetPlayerTraits()->GetGoldenAgeTourismModifier();3257	}32583259	ReligionTypes ePlayerReligion = m_pPlayer->GetReligions()->GetReligionInMostCities();3260	if (ePlayerReligion != NO_RELIGION && kPlayer.GetReligions()->HasReligionInMostCities(ePlayerReligion))3261	{3262		iMultiplier += GetTourismModifierSharedReligion();3263	}32643265	return iMultiplier;3266}

Calls

Called by