CvMinorCivAI::DoTurnQuests()
- Defined in
- CvMinorCivAI.cpp, line 3521
- Class
- CvMinorCivAI
- Hook name
CivHooks::CvMinorCivAI_DoTurnQuests
Hooks
static bool BeforeCvMinorCivAI_DoTurnQuests(CvMinorCivAI* self);static void AfterCvMinorCivAI_DoTurnQuests(CvMinorCivAI* self);static void ReplaceCvMinorCivAI_DoTurnQuests(void (*original)(CvMinorCivAI*), CvMinorCivAI* self);CivRegisterBefore<CivHooks::CvMinorCivAI_DoTurnQuests>(host, &BeforeCvMinorCivAI_DoTurnQuests);CivRegisterAfter<CivHooks::CvMinorCivAI_DoTurnQuests>(host, &AfterCvMinorCivAI_DoTurnQuests);CivRegisterReplace<CivHooks::CvMinorCivAI_DoTurnQuests>(host, &ReplaceCvMinorCivAI_DoTurnQuests);
Code
3520/// Update turn for Quests3521void CvMinorCivAI::DoTurnQuests()3522{3523 // ********************3524 // Check Current Quests3525 // ********************3526 DoTestActiveQuests(/*bTestComplete*/ true, /*bTestObsolete*/ true);3527 DoQuestsCleanup();35283529 // ********************3530 // Give Global Quests3531 // ********************3532 int iFirstTurnForGlobalQuests = GetFirstPossibleTurnForGlobalQuests();35333534 // Increment turns since last quest3535 if(GetGlobalQuestCountdown() > 0)3536 {3537 ChangeGlobalQuestCountdown(-1);3538 }35393540 // Unlock turn - seed the counter3541 if(GC.getGame().getElapsedGameTurns() == iFirstTurnForGlobalQuests)3542 {3543 DoTestSeedGlobalQuestCountdown();3544 }35453546 if(GC.getGame().getElapsedGameTurns() > iFirstTurnForGlobalQuests || ENABLE_QUESTS_AT_START)3547 {3548 DoTestStartGlobalQuest();3549 }35503551 // ********************3552 // Give Personal Quests3553 // ********************3554 int iFirstTurnForPersonalQuests = GetFirstPossibleTurnForPersonalQuests();35553556 PlayerTypes ePlayer;3557 for(int iPlayerLoop = 0; iPlayerLoop < MAX_MAJOR_CIVS; iPlayerLoop++)3558 {3559 ePlayer = (PlayerTypes) iPlayerLoop;35603561 if(IsHasMetPlayer(ePlayer))3562 {3563 // Increment turns since last quest3564 if(GetQuestCountdownForPlayer(ePlayer) > 0)3565 {3566 ChangeQuestCountdownForPlayer(ePlayer, -1);3567 }35683569 // Unlock turn - seed the counter3570 if(GC.getGame().getElapsedGameTurns() == iFirstTurnForPersonalQuests)3571 {3572 DoTestSeedQuestCountdownForPlayer(ePlayer);3573 }3574 // Can't start a quest too early3575 else if(GC.getGame().getElapsedGameTurns() > iFirstTurnForPersonalQuests || ENABLE_QUESTS_AT_START)3576 {3577 if(!IsAtWarWithPlayersTeam(ePlayer))3578 {3579 DoTestStartPersonalQuest(ePlayer);3580 }3581 }3582 }3583 }3584}
Calls
- CvGame::getElapsedGameTurns() const
- CvGlobals::getGame()
- CvMinorCivAI::ChangeGlobalQuestCountdown(int)
- CvMinorCivAI::ChangeQuestCountdownForPlayer(PlayerTypes, int)
- CvMinorCivAI::DoQuestsCleanup()
- CvMinorCivAI::DoTestActiveQuests(bool, bool)
- CvMinorCivAI::DoTestSeedGlobalQuestCountdown(bool)
- CvMinorCivAI::DoTestSeedQuestCountdownForPlayer(PlayerTypes, bool)
- CvMinorCivAI::DoTestStartGlobalQuest()
- CvMinorCivAI::DoTestStartPersonalQuest(PlayerTypes)
- CvMinorCivAI::GetFirstPossibleTurnForGlobalQuests() const
- CvMinorCivAI::GetFirstPossibleTurnForPersonalQuests() const
- CvMinorCivAI::GetGlobalQuestCountdown()
- CvMinorCivAI::GetQuestCountdownForPlayer(PlayerTypes)
- CvMinorCivAI::IsAtWarWithPlayersTeam(PlayerTypes)
- CvMinorCivAI::IsHasMetPlayer(PlayerTypes)