CvPlayer::doTurn()
- Defined in
- CvPlayer.cpp, line 4617
- Class
- CvPlayer
- Hook name
CivHooks::CvPlayer_doTurn- Lua events
GameEvents.PlayerDoTurn
Runs at the start of each player's turn, for every player, including the ones the game plays. The player's cities take their turns later, in CvPlayer::doTurnPostDiplomacy, and its units in CvPlayer::doTurnUnits.
Hooks
static bool BeforeCvPlayer_doTurn(CvPlayer* self);static void AfterCvPlayer_doTurn(CvPlayer* self);static void ReplaceCvPlayer_doTurn(void (*original)(CvPlayer*), CvPlayer* self);CivRegisterBefore<CivHooks::CvPlayer_doTurn>(host, &BeforeCvPlayer_doTurn);CivRegisterAfter<CivHooks::CvPlayer_doTurn>(host, &AfterCvPlayer_doTurn);CivRegisterReplace<CivHooks::CvPlayer_doTurn>(host, &ReplaceCvPlayer_doTurn);
Code
4617void CvPlayer::doTurn()4618{4619 // CUSTOMLOG("***** STARTING TURN %i for player %i (%s)", GC.getGame().getGameTurn(), GetID(), getCivilizationShortDescription())4620 // Time building of these maps4621 AI_PERF_FORMAT("AI-perf.csv", ("CvPlayer::doTurn(), Turn %d, %s", GC.getGame().getGameTurn(), getCivilizationShortDescription()));46224623 CvAssertMsg(isAlive(), "isAlive is expected to be true");46244625 doUpdateCacheOnTurn();46264627 AI_doTurnPre();46284629 if(getCultureBombTimer() > 0)4630 changeCultureBombTimer(-1);46314632 if(getConversionTimer() > 0)4633 changeConversionTimer(-1);46344635 if(GetTurnsSinceSettledLastCity() >= 0)4636 ChangeTurnsSinceSettledLastCity(1);46374638 setConscriptCount(0);46394640 DoUpdateCramped();46414642 DoUpdateUprisings();4643 DoUpdateCityRevolts();46444645 if(GetPlayerTraits()->IsEndOfMayaLongCount())4646 {4647 ChangeNumMayaBoosts(1);4648 }46494650 bool bHasActiveDiploRequest = false;4651 if(isAlive())4652 {4653 if(!isBarbarian())4654 {4655 if(!isMinorCiv())4656 {4657 GetTrade()->DoTurn();4658 GetMilitaryAI()->ResetCounters();4659 GetGrandStrategyAI()->DoTurn();4660#if defined(MOD_AI_MP_DIPLOMACY)4661 if (MOD_AI_MP_DIPLOMACY) {4662 // We only do AI to AI diplomacy here.4663 // See CvDiplomacyRequests::DoAIDiplomacyWithHumans() for AI to human diplomacy4664 GetDiplomacyAI()->DoTurn(NO_PLAYER, DIPLO_AI_PLAYERS);4665 } else {4666#endif4667 if(GC.getGame().isHotSeat() && !isHuman())4668 {4669 // In Hotseat, AIs only do their diplomacy pass for other AIs on their turn4670 // Diplomacy toward a human is done at the beginning of the humans turn.4671#if defined(MOD_AI_MP_DIPLOMACY)4672 GetDiplomacyAI()->DoTurn(NO_PLAYER, DIPLO_AI_PLAYERS); // Do diplomacy for toward everyone4673#else4674 GetDiplomacyAI()->DoTurn((PlayerTypes)CvDiplomacyAI::DIPLO_AI_PLAYERS); // Do diplomacy for toward everyone4675#endif4676 }4677 else4678#if defined(MOD_AI_MP_DIPLOMACY)4679 GetDiplomacyAI()->DoTurn(NO_PLAYER, DIPLO_ALL_PLAYERS); // Do diplomacy for toward everyone4680#else4681 GetDiplomacyAI()->DoTurn((PlayerTypes)CvDiplomacyAI::DIPLO_ALL_PLAYERS); // Do diplomacy for toward everyone4682#endif46834684 if (!isHuman())4685 bHasActiveDiploRequest = CvDiplomacyRequests::HasActiveDiploRequestWithHuman(GetID());4686#if defined(MOD_AI_MP_DIPLOMACY)4687 }4688#endif4689 }4690 }4691 }46924693 if(isHuman() && !GC.getGame().isGameMultiPlayer())4694 doArmySize();46954696 if( (bHasActiveDiploRequest || GC.GetEngineUserInterface()->isDiploActive()) && !GC.getGame().isGameMultiPlayer() && !isHuman())4697 {4698 GC.getGame().SetWaitingForBlockingInput(m_eID);4699 }4700 else4701 {4702 doTurnPostDiplomacy();4703 }47044705 ICvEngineScriptSystem1* pkScriptSystem = gDLL->GetScriptSystem();4706 if(pkScriptSystem)4707 {4708 CvLuaArgsHandle args;4709 args->Push(GetID());47104711 bool bResult;4712 LuaSupport::CallHook(pkScriptSystem, "PlayerDoTurn", args.get(), bResult);4713 }47144715 m_kPlayerAchievements.StartTurn();4716}
Calls
- CustomMods::isAI_MP_DIPLOMACY()
- CvDiplomacyAI::DoTurn(PlayerTypes, DiplomacyPlayerType)
- CvDiplomacyRequests::HasActiveDiploRequestWithHuman(PlayerTypes)
- CvGame::isGameMultiPlayer() const
- CvGame::isHotSeat() const
- CvGame::SetWaitingForBlockingInput(PlayerTypes)
- CvGlobals::getDLLIFace()
- CvGlobals::GetEngineUserInterface()
- CvGlobals::getGame()
- CvGrandStrategyAI::DoTurn()
- CvLuaArgsHandle::CvLuaArgsHandle()
- CvLuaArgsHandle::get() const
- CvLuaArgsHandle::operator->() const
- CvMilitaryAI::ResetCounters()
- CvPlayer::AI_doTurnPre()
- CvPlayer::changeConversionTimer(int)
- CvPlayer::changeCultureBombTimer(int)
- CvPlayer::ChangeNumMayaBoosts(int)
- CvPlayer::ChangeTurnsSinceSettledLastCity(int)
- CvPlayer::doArmySize()
- CvPlayer::doTurnPostDiplomacy()
- CvPlayer::doUpdateCacheOnTurn()
- CvPlayer::DoUpdateCityRevolts()
- CvPlayer::DoUpdateCramped()
- CvPlayer::DoUpdateUprisings()
- CvPlayer::getConversionTimer() const
- CvPlayer::getCultureBombTimer() const
- CvPlayer::GetDiplomacyAI() const
- CvPlayer::GetGrandStrategyAI() const
- CvPlayer::GetID() const
- CvPlayer::GetMilitaryAI() const
- CvPlayer::GetPlayerTraits() const
- CvPlayer::GetTrade() const
- CvPlayer::GetTurnsSinceSettledLastCity() const
- CvPlayer::isAlive() const
- CvPlayer::isBarbarian() const
- CvPlayer::isHuman() const
- CvPlayer::isMinorCiv() const
- CvPlayer::setConscriptCount(int)
- CvPlayerAchievements::StartTurn()
- CvPlayerTrade::DoTurn()
- CvPlayerTraits::IsEndOfMayaLongCount()
FAutoVariable::operator const PlayerTypes &ICvEngineScriptSystemArgs1::PushICvEngineUtility1::GetScriptSystemICvUserInterface1::isDiploActive- LuaSupport::CallHook(ICvEngineScriptSystem1 *, const char *, ICvEngineScriptSystemArgs1 *, bool &)