Bazaar developer reference

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