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
BaseVector::beginBaseVector::beginBaseVector::endBaseVector::end- CvActiveResolution::DoEffects(PlayerTypes)
- CvCity::plot() const
- CvGlobals::GetEngineUserInterface()
- CvLeague::IsMember(PlayerTypes) const
- CvLeague::Member::Member()
- CvPlayer::getCapitalCity()
- CvPlayer::getTeam() const
- CvPlayer::isAlive() const
- CvPlayer::isMinorCiv() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlot::isRevealed(TeamTypes) const
- CvPlot::setRevealed(TeamTypes, bool, CvUnit *, bool, TeamTypes)
- CvTeam::getTeam(TeamTypes)
- CvTeam::isHasMet(TeamTypes) const
- CvTeam::meet(TeamTypes, bool)
FStaticVector::push_backICvUserInterface1::setDirty