CvMinorCivQuest::IsContestLeader(PlayerTypes)
- Defined in
- CvMinorCivAI.cpp, line 428
- Class
- CvMinorCivQuest
- Hook name
CivHooks::CvMinorCivQuest_IsContestLeader
Hooks
static bool BeforeCvMinorCivQuest_IsContestLeader(CvMinorCivQuest* self, PlayerTypes ePlayer, bool& result);static void AfterCvMinorCivQuest_IsContestLeader(CvMinorCivQuest* self, PlayerTypes ePlayer, bool& result);static bool ReplaceCvMinorCivQuest_IsContestLeader(bool (*original)(CvMinorCivQuest*, PlayerTypes), CvMinorCivQuest* self, PlayerTypes ePlayer);CivRegisterBefore<CivHooks::CvMinorCivQuest_IsContestLeader>(host, &BeforeCvMinorCivQuest_IsContestLeader);CivRegisterAfter<CivHooks::CvMinorCivQuest_IsContestLeader>(host, &AfterCvMinorCivQuest_IsContestLeader);CivRegisterReplace<CivHooks::CvMinorCivQuest_IsContestLeader>(host, &ReplaceCvMinorCivQuest_IsContestLeader);
Code
427// Is this player currently the contest leader? (if no ePlayer is passed in, checks the player this instance of the quest is assigned to)428bool CvMinorCivQuest::IsContestLeader(PlayerTypes ePlayer)429{430 if(ePlayer == NO_PLAYER)431 ePlayer = GetPlayerAssignedTo();432433 MinorCivQuestTypes eType = GetType();434 CvPlayer* pMinor = &GET_PLAYER(GetMinor());435 if(!pMinor)436 {437 CvAssertMsg(false, "Error when calculating contest standings - could not find minor civ! Please send Anton your save file and version.");438 return false;439 }440 // Player must actually be in the contest!441 if(!pMinor->GetMinorCivAI()->IsActiveQuestForPlayer(ePlayer, eType))442 return false;443444#if defined(MOD_EVENTS_QUESTS)445 bool bTestLeader = false;446 447 if (UseEvents()) {448 bTestLeader = m_pQuestInfo->isContest();449 } else {450#endif451 if(eType == MINOR_CIV_QUEST_CONTEST_CULTURE ||452 eType == MINOR_CIV_QUEST_CONTEST_FAITH ||453 eType == MINOR_CIV_QUEST_CONTEST_TECHS)454#if defined(MOD_EVENTS_QUESTS)455 {456 bTestLeader = true;457 }458 }459 460 if (bTestLeader)461#endif462 {463 CivsList veTiedForLead = GetContestLeaders();464 for(uint ui = 0; ui < veTiedForLead.size(); ui++)465 {466 if(ePlayer == veTiedForLead[ui])467 {468 return true;469 }470 }471 }472473 return false;474}
Calls
BaseVector::operator[]BaseVector::size- CvMinorCivAI::IsActiveQuestForPlayer(PlayerTypes, MinorCivQuestTypes)
- CvMinorCivQuest::GetContestLeaders()
- CvMinorCivQuest::GetMinor() const
- CvMinorCivQuest::GetPlayerAssignedTo() const
- CvMinorCivQuest::GetType() const
- CvMinorCivQuest::UseEvents() const
- CvPlayer::GetMinorCivAI() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvQuestInfo::isContest() const