Bazaar developer reference

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

Called by