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
BaseVector::beginBaseVector::end- CvGame::getActivePlayer() const
- CvGame::isReallyNetworkMultiPlayer() const
- CvGlobals::GetEngineUserInterface()
- CvGlobals::getGame()
- CvGlobals::getLeagueProjectInfo(LeagueProjectTypes)
- CvLeague::CheckProjectAchievements()
- CvLeague::DoProjectRewards(LeagueProjectTypes)
- CvLeague::GetID() const
- CvLeague::GetProjectCost(LeagueProjectTypes) const
- CvLeague::GetProjectProgress(LeagueProjectTypes)
- CvLeague::IsProjectActive(LeagueProjectTypes) const
- CvLeague::IsProjectComplete(LeagueProjectTypes) const
- CvLeague::NotifyProjectComplete(LeagueProjectTypes)
- CvLeague::NotifyProjectProgress(LeagueProjectTypes)
- CvPlayer::isObserver() const
- CvPlayerAI::getPlayer(PlayerTypes)
CvPopupInfo::CvPopupInfoICvUserInterface1::AddPopupstd::min