Bazaar developer reference

CvLeague::AddMember(PlayerTypes)

Defined in
CvVotingClasses.cpp, line 3069
Class
CvLeague
Hook name
CivHooks::CvLeague_AddMember

Hooks

static bool BeforeCvLeague_AddMember(CvLeague* self, PlayerTypes ePlayer);static void AfterCvLeague_AddMember(CvLeague* self, PlayerTypes ePlayer);static void ReplaceCvLeague_AddMember(void (*original)(CvLeague*, PlayerTypes), CvLeague* self, PlayerTypes ePlayer);CivRegisterBefore<CivHooks::CvLeague_AddMember>(host, &BeforeCvLeague_AddMember);CivRegisterAfter<CivHooks::CvLeague_AddMember>(host, &AfterCvLeague_AddMember);CivRegisterReplace<CivHooks::CvLeague_AddMember>(host, &ReplaceCvLeague_AddMember);

Code

3069void CvLeague::AddMember(PlayerTypes ePlayer)3070{3071	if (ePlayer < 0 || ePlayer >= MAX_CIV_PLAYERS)3072	{3073		CvAssertMsg(false, "Trying to add a player to a League who has an invalid Player ID.  Please send Anton your save file and version.");3074		return;3075	}3076	if (IsMember(ePlayer))3077	{3078		CvAssertMsg(false, "Trying to add a player to a League that they are already a member of.  Please send Anton your save file and verison.");3079		return;3080	}30813082	Member member;3083	member.ePlayer = ePlayer;3084	m_vMembers.push_back(member);30853086	// Majors meet each other and reveal their capitals3087	if (GET_PLAYER(ePlayer).isAlive() && !GET_PLAYER(ePlayer).isMinorCiv())3088	{3089		for (MemberList::const_iterator it = m_vMembers.begin(); it != m_vMembers.end(); ++it)3090		{3091			PlayerTypes eOtherPlayer = it->ePlayer;3092			if (eOtherPlayer != NO_PLAYER && eOtherPlayer != ePlayer && GET_PLAYER(eOtherPlayer).isAlive() && !GET_PLAYER(eOtherPlayer).isMinorCiv())3093			{3094				TeamTypes eTeam = GET_PLAYER(ePlayer).getTeam();3095				TeamTypes eOtherTeam = GET_PLAYER(eOtherPlayer).getTeam();3096				if (!GET_TEAM(eTeam).isHasMet(eOtherTeam))3097				{3098					GET_TEAM(eTeam).meet(eOtherTeam, /*bSuppressMessages*/ false);3099				}31003101				CvCity* pCapital = GET_PLAYER(ePlayer).getCapitalCity();3102				if (pCapital && pCapital->plot() && !pCapital->plot()->isRevealed(eOtherTeam))3103				{3104					pCapital->plot()->setRevealed(eOtherTeam, true);3105				}3106				CvCity* pOtherCapital = GET_PLAYER(eOtherPlayer).getCapitalCity();3107				if (pOtherCapital && pOtherCapital->plot() && !pOtherCapital->plot()->isRevealed(eTeam))3108				{3109					pOtherCapital->plot()->setRevealed(eTeam, true);3110				}3111			}3112		}3113	}31143115	// Apply effects of any existing active resolutions3116	for (ActiveResolutionList::iterator it = m_vActiveResolutions.begin(); it != m_vActiveResolutions.end(); it++)3117	{3118		it->DoEffects(ePlayer);3119	}31203121	GC.GetEngineUserInterface()->setDirty(LeagueScreen_DIRTY_BIT, true);3122}

Calls

Called by