CvAIOperationCityCloseDefense::Init(int, PlayerTypes, PlayerTypes, int, CvCity *, CvCity *)
- Defined in
- CvAIOperation.cpp, line 4732
- Class
- CvAIOperationCityCloseDefense
- Hook name
CivHooks::CvAIOperationCityCloseDefense_Init- Overrides
- CvAIOperation::Init(int, PlayerTypes, PlayerTypes, int, CvCity *, CvCity *)
Hooks
static bool BeforeCvAIOperationCityCloseDefense_Init(CvAIOperationCityCloseDefense* self, int iID, PlayerTypes eOwner, PlayerTypes eEnemy, int arg3, CvCity* arg4, CvCity* arg5);static void AfterCvAIOperationCityCloseDefense_Init(CvAIOperationCityCloseDefense* self, int iID, PlayerTypes eOwner, PlayerTypes eEnemy, int arg3, CvCity* arg4, CvCity* arg5);static void ReplaceCvAIOperationCityCloseDefense_Init(void (*original)(CvAIOperationCityCloseDefense*, int, PlayerTypes, PlayerTypes, int, CvCity*, CvCity*), CvAIOperationCityCloseDefense* self, int iID, PlayerTypes eOwner, PlayerTypes eEnemy, int arg3, CvCity* arg4, CvCity* arg5);CivRegisterBefore<CivHooks::CvAIOperationCityCloseDefense_Init>(host, &BeforeCvAIOperationCityCloseDefense_Init);CivRegisterAfter<CivHooks::CvAIOperationCityCloseDefense_Init>(host, &AfterCvAIOperationCityCloseDefense_Init);CivRegisterReplace<CivHooks::CvAIOperationCityCloseDefense_Init>(host, &ReplaceCvAIOperationCityCloseDefense_Init);
Code
4731/// Kick off this operation4732void CvAIOperationCityCloseDefense::Init(int iID, PlayerTypes eOwner, PlayerTypes eEnemy, int /*iDefaultArea*/, CvCity* /*pTarget*/, CvCity* /*pMuster*/)4733{4734 Reset();4735 m_iID = iID;4736 m_eOwner = eOwner;4737 m_eEnemy = eEnemy;47384739 if(iID != -1)4740 {4741 // create the armies that are needed and set the state to ARMYAISTATE_WAITING_FOR_UNITS_TO_REINFORCE4742 CvArmyAI* pArmyAI = GET_PLAYER(m_eOwner).addArmyAI();4743 if(pArmyAI)4744 {4745 m_viArmyIDs.push_back(pArmyAI->GetID());4746 pArmyAI->Init(pArmyAI->GetID(),m_eOwner,m_iID);4747 pArmyAI->SetArmyAIState(ARMYAISTATE_WAITING_FOR_UNITS_TO_REINFORCE);4748 pArmyAI->SetFormationIndex(GetFormation());47494750 CvPlot* pTargetPlot = FindBestTarget();4751 if(pTargetPlot != NULL)4752 {4753 SetTargetPlot(pTargetPlot);4754 pArmyAI->SetGoalPlot(pTargetPlot);4755 SetMusterPlot(pTargetPlot); // Gather directly at the point we're trying to defend4756 pArmyAI->SetXY(GetMusterPlot()->getX(), GetMusterPlot()->getY());4757 SetDefaultArea(GetMusterPlot()->getArea());47584759 // Find the list of units we need to build before starting this operation in earnest4760 BuildListOfUnitsWeStillNeedToBuild();47614762 // Try to get as many units as possible from existing units that are waiting around4763 if(GrabUnitsFromTheReserves(GetMusterPlot(), NULL))4764 {4765 pArmyAI->SetArmyAIState(ARMYAISTATE_WAITING_FOR_UNITS_TO_CATCH_UP);4766 m_eCurrentState = AI_OPERATION_STATE_GATHERING_FORCES;4767 }4768 else4769 {4770 m_eCurrentState = AI_OPERATION_STATE_RECRUITING_UNITS;4771 }47724773 LogOperationStart();4774 }4775 }4776 }4777}
Calls
- CvAIOperation::BuildListOfUnitsWeStillNeedToBuild()
- CvAIOperation::GetMusterPlot() const
- CvAIOperation::GrabUnitsFromTheReserves(CvPlot *, CvPlot *)
- CvAIOperation::LogOperationStart()
- CvAIOperation::Reset()
- CvAIOperation::SetDefaultArea(int)
- CvAIOperation::SetMusterPlot(CvPlot *)
- CvAIOperation::SetTargetPlot(CvPlot *)
- CvAIOperationCityCloseDefense::FindBestTarget()
- CvAIOperationCityCloseDefense::GetFormation() const
- CvArmyAI::GetID()
- CvArmyAI::Init(int, PlayerTypes, int)
- CvArmyAI::SetArmyAIState(ArmyAIState)
- CvArmyAI::SetFormationIndex(int)
- CvArmyAI::SetGoalPlot(CvPlot *)
- CvArmyAI::SetXY(int, int)
- CvPlayer::addArmyAI()
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlot::getArea() const
- CvPlot::getX() const
- CvPlot::getY() const
std::vector::push_back