CvPlayer::canMaintain(ProcessTypes, bool) const
- Defined in
- CvPlayer.cpp, line 8437
- Class
- CvPlayer
- Hook name
CivHooks::CvPlayer_canMaintain- Lua events
GameEvents.PlayerCanMaintain
Hooks
static bool BeforeCvPlayer_canMaintain(const CvPlayer* self, ProcessTypes eProcess, bool arg1, bool& result);static void AfterCvPlayer_canMaintain(const CvPlayer* self, ProcessTypes eProcess, bool arg1, bool& result);static bool ReplaceCvPlayer_canMaintain(bool (*original)(const CvPlayer*, ProcessTypes, bool), const CvPlayer* self, ProcessTypes eProcess, bool arg1);CivRegisterBefore<CivHooks::CvPlayer_canMaintain>(host, &BeforeCvPlayer_canMaintain);CivRegisterAfter<CivHooks::CvPlayer_canMaintain>(host, &AfterCvPlayer_canMaintain);CivRegisterReplace<CivHooks::CvPlayer_canMaintain>(host, &ReplaceCvPlayer_canMaintain);
Code
8437bool CvPlayer::canMaintain(ProcessTypes eProcess, bool) const8438{8439 // Check to see if it exists, scenarios can remove them and leave holes in the list.8440 const CvProcessInfo* pkProcessInfo = GC.getProcessInfo(eProcess);8441 if (!pkProcessInfo)8442 return false;84438444 if(!(GET_TEAM(getTeam()).GetTeamTechs()->HasTech((TechTypes)(pkProcessInfo->getTechPrereq()))))8445 {8446 return false;8447 }84488449 for(int iI = 0; iI < GC.getNumLeagueProjectInfos(); iI++)8450 {8451 LeagueProjectTypes eLeagueProject = (LeagueProjectTypes) iI;8452 CvLeagueProjectEntry* pInfo = GC.getLeagueProjectInfo(eLeagueProject);8453 if (pInfo && pInfo->GetProcess() == eProcess)8454 {8455 if (!GC.getGame().GetGameLeagues()->CanContributeToLeagueProject(GetID(), eLeagueProject))8456 {8457 return false;8458 }8459 }8460 }84618462 ICvEngineScriptSystem1* pkScriptSystem = gDLL->GetScriptSystem();8463 if(pkScriptSystem)8464 {8465 CvLuaArgsHandle args;8466 args->Push(GetID());8467 args->Push(eProcess);84688469 // Attempt to execute the game events.8470 // Will return false if there are no registered listeners.8471 bool bResult = false;8472 if(LuaSupport::CallTestAll(pkScriptSystem, "PlayerCanMaintain", args.get(), bResult))8473 {8474 // Check the result.8475 if(bResult == false)8476 {8477 return false;8478 }8479 }8480 }84818482 return true;8483}
Calls
- CvGame::GetGameLeagues()
- CvGameLeagues::CanContributeToLeagueProject(PlayerTypes, LeagueProjectTypes)
- CvGlobals::getDLLIFace()
- CvGlobals::getGame()
- CvGlobals::getLeagueProjectInfo(LeagueProjectTypes)
- CvGlobals::getNumLeagueProjectInfos()
- CvGlobals::getProcessInfo(ProcessTypes)
- CvLeagueProjectEntry::GetProcess() const
- CvLuaArgsHandle::CvLuaArgsHandle()
- CvLuaArgsHandle::get() const
- CvLuaArgsHandle::operator->() const
- CvPlayer::GetID() const
- CvPlayer::getTeam() const
- CvProcessInfo::getTechPrereq() const
- CvTeam::getTeam(TeamTypes)
- CvTeam::GetTeamTechs() const
- CvTeamTechs::HasTech(TechTypes) const
ICvEngineScriptSystemArgs1::PushICvEngineUtility1::GetScriptSystem- LuaSupport::CallTestAll(ICvEngineScriptSystem1 *, const char *, ICvEngineScriptSystemArgs1 *, bool &)