CvLeague::AssignProposalPrivileges()
- Defined in
- CvVotingClasses.cpp, line 5608
- Class
- CvLeague
- Hook name
CivHooks::CvLeague_AssignProposalPrivileges
Hooks
static bool BeforeCvLeague_AssignProposalPrivileges(CvLeague* self);static void AfterCvLeague_AssignProposalPrivileges(CvLeague* self);static void ReplaceCvLeague_AssignProposalPrivileges(void (*original)(CvLeague*), CvLeague* self);CivRegisterBefore<CivHooks::CvLeague_AssignProposalPrivileges>(host, &BeforeCvLeague_AssignProposalPrivileges);CivRegisterAfter<CivHooks::CvLeague_AssignProposalPrivileges>(host, &AfterCvLeague_AssignProposalPrivileges);CivRegisterReplace<CivHooks::CvLeague_AssignProposalPrivileges>(host, &ReplaceCvLeague_AssignProposalPrivileges);
Code
5608void CvLeague::AssignProposalPrivileges()5609{5610 CvWeightedVector<Member*, MAX_CIV_PLAYERS, false> vpPossibleProposers;5611 for (MemberList::iterator it = m_vMembers.begin(); it != m_vMembers.end(); it++)5612 {5613 if (CanEverPropose(it->ePlayer))5614 {5615 int iVotes = CalculateStartingVotesForMember(it->ePlayer);5616 vpPossibleProposers.push_back(it, iVotes);5617 }5618 else5619 {5620 CvAssertMsg(!it->bMayPropose, "Found a member with proposal rights that should not have them. Please send Anton your save file and version.");5621 CvAssertMsg(it->iProposals == 0, "Found a member with remaining proposals that should not have them. Please send Anton your save file and version.");5622 }5623 }5624 vpPossibleProposers.SortItems();56255626 int iPrivileges = GetNumProposersPerSession();56275628 // Host gets one5629 PlayerTypes eHost = GetHostMember();5630 if (eHost != NO_PLAYER)5631 {5632 GetMember(eHost)->bMayPropose = true;5633 GetMember(eHost)->iProposals = GC.getLEAGUE_MEMBER_PROPOSALS_BASE();5634 iPrivileges--;5635 }56365637 // Give rest to largest delegations5638 for (int i = 0; i < vpPossibleProposers.size(); i++)5639 {5640 if (iPrivileges == 0)5641 {5642 break;5643 }5644 5645 // Only one privilege per player5646 if (!vpPossibleProposers.GetElement(i)->bMayPropose)5647 {5648 vpPossibleProposers.GetElement(i)->bMayPropose = true;5649 vpPossibleProposers.GetElement(i)->iProposals = GC.getLEAGUE_MEMBER_PROPOSALS_BASE();5650 iPrivileges--;5651 }5652 }56535654 CvAssert(iPrivileges == 0);5655}
Calls
BaseVector::beginBaseVector::end- CvGlobals::getLEAGUE_MEMBER_PROPOSALS_BASE()
- CvLeague::CalculateStartingVotesForMember(PlayerTypes, bool)
- CvLeague::CanEverPropose(PlayerTypes)
- CvLeague::GetHostMember() const
- CvLeague::GetMember(PlayerTypes)
- CvLeague::GetNumProposersPerSession() const
CvWeightedVector::CvWeightedVectorCvWeightedVector::GetElementCvWeightedVector::push_backCvWeightedVector::sizeCvWeightedVector::SortItems