Bazaar developer reference

CvLeague::DoProjectRewards(LeagueProjectTypes)

Defined in
CvVotingClasses.cpp, line 6178
Class
CvLeague
Hook name
CivHooks::CvLeague_DoProjectRewards

Hooks

static bool BeforeCvLeague_DoProjectRewards(CvLeague* self, LeagueProjectTypes eLeagueProject);static void AfterCvLeague_DoProjectRewards(CvLeague* self, LeagueProjectTypes eLeagueProject);static void ReplaceCvLeague_DoProjectRewards(void (*original)(CvLeague*, LeagueProjectTypes), CvLeague* self, LeagueProjectTypes eLeagueProject);CivRegisterBefore<CivHooks::CvLeague_DoProjectRewards>(host, &BeforeCvLeague_DoProjectRewards);CivRegisterAfter<CivHooks::CvLeague_DoProjectRewards>(host, &AfterCvLeague_DoProjectRewards);CivRegisterReplace<CivHooks::CvLeague_DoProjectRewards>(host, &ReplaceCvLeague_DoProjectRewards);

Code

6178void CvLeague::DoProjectRewards(LeagueProjectTypes eLeagueProject)6179{6180	CvLeagueProjectEntry* pProjectInfo = GC.getLeagueProjectInfo(eLeagueProject);6181	CvAssert(pProjectInfo);6182	if (!pProjectInfo) return;61836184	int iTopTierRecipients = 0;6185	for (MemberList::iterator it = m_vMembers.begin(); it != m_vMembers.end(); it++)6186	{6187		PlayerTypes eMember = it->ePlayer;6188		if (GET_PLAYER(eMember).isAlive() && !GET_PLAYER(eMember).isMinorCiv())6189		{6190			ContributionTier eTier = GetMemberContributionTier(eMember, eLeagueProject);61916192			// Break ties for top reward tier - Only one can get it, give it to the first6193			if (eTier == CONTRIBUTION_TIER_3)6194			{6195				iTopTierRecipients++;6196			}6197			if (iTopTierRecipients > 1)6198			{6199				eTier = CONTRIBUTION_TIER_2;6200				iTopTierRecipients--;6201			}62026203			DoProjectReward(eMember, eLeagueProject, eTier);6204			6205			//antonjs: todo: undo rewards when killed and/or project is repeated6206		}6207	}6208}

Calls

Called by