Bazaar developer reference

CvLeague::CheckProjectsProgress()

Defined in
CvVotingClasses.cpp, line 6120
Class
CvLeague
Hook name
CivHooks::CvLeague_CheckProjectsProgress

Hooks

static bool BeforeCvLeague_CheckProjectsProgress(CvLeague* self);static void AfterCvLeague_CheckProjectsProgress(CvLeague* self);static void ReplaceCvLeague_CheckProjectsProgress(void (*original)(CvLeague*), CvLeague* self);CivRegisterBefore<CivHooks::CvLeague_CheckProjectsProgress>(host, &BeforeCvLeague_CheckProjectsProgress);CivRegisterAfter<CivHooks::CvLeague_CheckProjectsProgress>(host, &AfterCvLeague_CheckProjectsProgress);CivRegisterReplace<CivHooks::CvLeague_CheckProjectsProgress>(host, &ReplaceCvLeague_CheckProjectsProgress);

Code

6120void CvLeague::CheckProjectsProgress()6121{6122	for (ProjectList::iterator it = m_vProjects.begin(); it != m_vProjects.end(); it++)6123	{6124		if (IsProjectActive(it->eType) && !IsProjectComplete(it->eType))6125		{6126			CvLeagueProjectEntry* pProjectInfo = GC.getLeagueProjectInfo(it->eType);6127			if (pProjectInfo)6128			{6129				// How much do we need?6130				int iNeeded = GetProjectCost(it->eType);6131				CvAssertMsg(iNeeded != 0, "Invalid cost for League Project. Please send Anton your save file and version.");61326133				// How much do we have?6134				int iTotal = GetProjectProgress(it->eType);61356136				// Is it finished?6137				if (iTotal >= iNeeded)6138				{6139					CvAssert(!it->bComplete);6140					if (!it->bComplete)6141					{6142						DoProjectRewards(it->eType);6143						NotifyProjectComplete(it->eType);6144						it->bComplete = true;61456146						CvGame& kGame = GC.getGame();6147						CvPlayer& kActivePlayer = GET_PLAYER(kGame.getActivePlayer());61486149#if defined(MOD_API_EXTENSIONS)6150						if(!kGame.isReallyNetworkMultiPlayer() && !kActivePlayer.isObserver())6151#else6152						if(!kGame.isNetworkMultiPlayer() && !kActivePlayer.isObserver())6153#endif6154						{6155							CvPopupInfo kPopup(BUTTONPOPUP_LEAGUE_PROJECT_COMPLETED, GetID(), it->eType);6156							GC.GetEngineUserInterface()->AddPopup(kPopup);6157						}6158						CheckProjectAchievements();6159					}6160				}6161				// How close is it?6162				else6163				{6164					int iPercentCompleted = (int) (((float)iTotal / (float)iNeeded) * 100);6165					iPercentCompleted = MIN(100, iPercentCompleted);61666167					if (!it->bProgressWarningSent && iPercentCompleted >= LeagueHelpers::PROJECT_PROGRESS_PERCENT_WARNING)6168					{6169						NotifyProjectProgress(it->eType);6170						it->bProgressWarningSent = true;6171					}6172				}6173			}6174		}6175	}6176}

Calls

Called by