CvPlayer::doTurnUnits()
- Defined in
- CvPlayer.cpp, line 4894
- Class
- CvPlayer
- Hook name
CivHooks::CvPlayer_doTurnUnits
Hooks
static bool BeforeCvPlayer_doTurnUnits(CvPlayer* self);static void AfterCvPlayer_doTurnUnits(CvPlayer* self);static void ReplaceCvPlayer_doTurnUnits(void (*original)(CvPlayer*), CvPlayer* self);CivRegisterBefore<CivHooks::CvPlayer_doTurnUnits>(host, &BeforeCvPlayer_doTurnUnits);CivRegisterAfter<CivHooks::CvPlayer_doTurnUnits>(host, &AfterCvPlayer_doTurnUnits);CivRegisterReplace<CivHooks::CvPlayer_doTurnUnits>(host, &ReplaceCvPlayer_doTurnUnits);
Code
4894void CvPlayer::doTurnUnits()4895{4896 CvArmyAI* pLoopArmyAI;4897 CvUnit* pLoopUnit;4898 int iLoop;48994900 AI_doTurnUnitsPre();49014902 // Start: TACTICAL AI UNIT PROCESSING4903 m_pTacticalAI->DoTurn();49044905 // Start: OPERATIONAL AI UNIT PROCESSING4906 std::map<int, CvAIOperation*>::iterator iter;4907 bool bKilledSomething;4908 do4909 {4910 bKilledSomething = false;4911 for(iter = m_AIOperations.begin(); iter != m_AIOperations.end(); ++iter)4912 {4913 CvAIOperation* pThisOperation = iter->second;4914 if(pThisOperation)4915 {4916 if(pThisOperation->DoDelayedDeath())4917 {4918 bKilledSomething = true;4919 break;4920 }4921 }4922 }4923 // hack4924 }4925 while(bKilledSomething);49264927 for(pLoopArmyAI = firstArmyAI(&iLoop); pLoopArmyAI != NULL; pLoopArmyAI = nextArmyAI(&iLoop))4928 {4929 pLoopArmyAI->DoDelayedDeath();4930 }49314932 for(pLoopUnit = firstUnit(&iLoop); pLoopUnit != NULL; pLoopUnit = nextUnit(&iLoop))4933 {4934 pLoopUnit->doDelayedDeath();4935 }49364937 for(iter = m_AIOperations.begin(); iter != m_AIOperations.end(); ++iter)4938 {4939 CvAIOperation* pThisOperation = iter->second;4940 if(pThisOperation)4941 {4942 pThisOperation->DoTurn();4943 }4944 }49454946 do4947 {4948 bKilledSomething = false;4949 for(iter = m_AIOperations.begin(); iter != m_AIOperations.end(); ++iter)4950 {4951 CvAIOperation* pThisOperation = iter->second;4952 if(pThisOperation)4953 {4954 if(pThisOperation->DoDelayedDeath())4955 {4956 bKilledSomething = true;4957 break;4958 }4959 }4960 }4961 // hack4962 }4963 while(bKilledSomething);49644965 for(pLoopArmyAI = firstArmyAI(&iLoop); pLoopArmyAI != NULL; pLoopArmyAI = nextArmyAI(&iLoop))4966 {4967 pLoopArmyAI->DoTurn();4968 }49694970 // Homeland AI4971 m_pHomelandAI->DoTurn();49724973 // Start: old unit AI processing4974 for(int iPass = 0; iPass < 4; iPass++)4975 {4976 for(pLoopUnit = firstUnit(&iLoop); pLoopUnit != NULL; pLoopUnit = nextUnit(&iLoop))4977 {4978 switch(pLoopUnit->getDomainType())4979 {4980 case DOMAIN_AIR:4981 if(iPass == 1)4982 {4983 pLoopUnit->doTurn();4984 }4985 break;4986 case DOMAIN_SEA:4987 if(iPass == 2)4988 {4989 pLoopUnit->doTurn();4990 }4991 break;4992 case DOMAIN_LAND:4993 if(iPass == 3)4994 {4995 pLoopUnit->doTurn();4996 }4997 break;4998 case DOMAIN_IMMOBILE:4999 if(iPass == 0)5000 {5001 pLoopUnit->doTurn();5002 }5003 break;5004 case NO_DOMAIN:5005 CvAssertMsg(false, "Unit with no Domain");5006 break;5007 default:5008 if(iPass == 3)5009 {5010 pLoopUnit->doTurn();5011 }5012 break;5013 }5014 }5015 }50165017 if(GetID() == GC.getGame().getActivePlayer())5018 {5019 GC.GetEngineUserInterface()->setDirty(Waypoints_DIRTY_BIT, true);5020 GC.GetEngineUserInterface()->setDirty(SelectionButtons_DIRTY_BIT, true);5021 }50225023 GC.GetEngineUserInterface()->setDirty(UnitInfo_DIRTY_BIT, true);50245025 AI_doTurnUnitsPost();5026}
Calls
- CvAIOperation::DoDelayedDeath()
- CvAIOperation::DoTurn()
- CvArmyAI::DoDelayedDeath()
- CvArmyAI::DoTurn()
- CvGame::getActivePlayer() const
- CvGlobals::GetEngineUserInterface()
- CvGlobals::getGame()
- CvHomelandAI::DoTurn()
- CvPlayer::AI_doTurnUnitsPost()
- CvPlayer::AI_doTurnUnitsPre()
- CvPlayer::firstArmyAI(int *, bool)
- CvPlayer::firstUnit(int *, bool)
- CvPlayer::GetID() const
- CvPlayer::nextArmyAI(int *, bool)
- CvPlayer::nextUnit(int *, bool)
- CvTacticalAI::DoTurn()
- CvUnit::doDelayedDeath()
- CvUnit::doTurn()
- CvUnit::getDomainType() const
ICvUserInterface1::setDirtystd::_Tree::beginstd::_Tree::const_iterator::operator!=std::_Tree::endstd::_Tree::iterator::iteratorstd::_Tree::iterator::operator++std::_Tree::iterator::operator->std::_Tree::iterator::operator=