Bazaar developer reference

CvAIOperationNavalBombardment::Init(int, PlayerTypes, PlayerTypes, int, CvCity *, CvCity *)

Defined in
CvAIOperation.cpp, line 3926
Class
CvAIOperationNavalBombardment
Hook name
CivHooks::CvAIOperationNavalBombardment_Init
Overrides
CvAINavalOperation::Init(int, PlayerTypes, PlayerTypes, int, CvCity *, CvCity *)

Hooks

static bool BeforeCvAIOperationNavalBombardment_Init(CvAIOperationNavalBombardment* self, int iID, PlayerTypes eOwner, PlayerTypes eEnemy, int arg3, CvCity* arg4, CvCity* arg5);static void AfterCvAIOperationNavalBombardment_Init(CvAIOperationNavalBombardment* self, int iID, PlayerTypes eOwner, PlayerTypes eEnemy, int arg3, CvCity* arg4, CvCity* arg5);static void ReplaceCvAIOperationNavalBombardment_Init(void (*original)(CvAIOperationNavalBombardment*, int, PlayerTypes, PlayerTypes, int, CvCity*, CvCity*), CvAIOperationNavalBombardment* self, int iID, PlayerTypes eOwner, PlayerTypes eEnemy, int arg3, CvCity* arg4, CvCity* arg5);CivRegisterBefore<CivHooks::CvAIOperationNavalBombardment_Init>(host, &BeforeCvAIOperationNavalBombardment_Init);CivRegisterAfter<CivHooks::CvAIOperationNavalBombardment_Init>(host, &AfterCvAIOperationNavalBombardment_Init);CivRegisterReplace<CivHooks::CvAIOperationNavalBombardment_Init>(host, &ReplaceCvAIOperationNavalBombardment_Init);

Code

3925/// Kick off this operation3926void CvAIOperationNavalBombardment::Init(int iID, PlayerTypes eOwner, PlayerTypes eEnemy, int /*iDefaultArea*/, CvCity* /*pTarget*/, CvCity* /*pMuster*/)3927{3928	Reset();3929	m_eMoveType = AI_OPERATION_MOVETYPE_ENEMY_TERRITORY;3930	m_iID = iID;3931	m_eOwner = eOwner;3932	m_eEnemy = eEnemy;39333934	if(iID != -1 && GetOperationStartCity())3935	{3936		// create the armies that are needed and set the state to ARMYAISTATE_WAITING_FOR_UNITS_TO_REINFORCE3937		CvPlayer& kPlayer = GET_PLAYER(m_eOwner);3938		CvArmyAI* pArmyAI = kPlayer.addArmyAI();3939		if(pArmyAI)3940		{3941			m_viArmyIDs.push_back(pArmyAI->GetID());3942			pArmyAI->Init(pArmyAI->GetID(),m_eOwner,m_iID);3943			pArmyAI->SetArmyAIState(ARMYAISTATE_WAITING_FOR_UNITS_TO_REINFORCE);3944			pArmyAI->SetFormationIndex(GetFormation());39453946			// Figure out the initial rally point3947			CvPlot* pTargetPlot = FindBestTarget();3948			if(pTargetPlot != NULL)3949			{3950				SetTargetPlot(pTargetPlot);3951				pArmyAI->SetGoalPlot(pTargetPlot);3952				if(SelectInitialMusterPoint(pArmyAI) != NULL)3953				{3954					pArmyAI->SetXY(GetMusterPlot()->getX(), GetMusterPlot()->getY());3955					SetDefaultArea(GetMusterPlot()->getArea());39563957					// Find the list of units we need to build before starting this operation in earnest3958					BuildListOfUnitsWeStillNeedToBuild();39593960					// try to get as many units as possible from existing units that are waiting around3961					if(GrabUnitsFromTheReserves(GetMusterPlot(), GetMusterPlot()))3962					{3963						pArmyAI->SetArmyAIState(ARMYAISTATE_WAITING_FOR_UNITS_TO_CATCH_UP);3964						m_eCurrentState = AI_OPERATION_STATE_GATHERING_FORCES;3965					}3966					else3967					{3968						m_eCurrentState = AI_OPERATION_STATE_RECRUITING_UNITS;3969					}39703971					LogOperationStart();3972				}3973				else3974				{3975					// No muster point, abort3976					m_eCurrentState = AI_OPERATION_STATE_ABORTED;3977					m_eAbortReason = AI_ABORT_NO_MUSTER;3978				}3979			}39803981			else3982			{3983				// Lost our target, abort3984				m_eCurrentState = AI_OPERATION_STATE_ABORTED;3985				m_eAbortReason = AI_ABORT_LOST_TARGET;3986			}3987		}3988	}3989}

Calls