Bazaar developer reference

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

Defined in
CvAIOperation.cpp, line 4168
Class
CvAIOperationNavalSuperiority
Hook name
CivHooks::CvAIOperationNavalSuperiority_Init
Overrides
CvAINavalOperation::Init(int, PlayerTypes, PlayerTypes, int, CvCity *, CvCity *)

Hooks

static bool BeforeCvAIOperationNavalSuperiority_Init(CvAIOperationNavalSuperiority* self, int iID, PlayerTypes eOwner, PlayerTypes eEnemy, int arg3, CvCity* arg4, CvCity* arg5);static void AfterCvAIOperationNavalSuperiority_Init(CvAIOperationNavalSuperiority* self, int iID, PlayerTypes eOwner, PlayerTypes eEnemy, int arg3, CvCity* arg4, CvCity* arg5);static void ReplaceCvAIOperationNavalSuperiority_Init(void (*original)(CvAIOperationNavalSuperiority*, int, PlayerTypes, PlayerTypes, int, CvCity*, CvCity*), CvAIOperationNavalSuperiority* self, int iID, PlayerTypes eOwner, PlayerTypes eEnemy, int arg3, CvCity* arg4, CvCity* arg5);CivRegisterBefore<CivHooks::CvAIOperationNavalSuperiority_Init>(host, &BeforeCvAIOperationNavalSuperiority_Init);CivRegisterAfter<CivHooks::CvAIOperationNavalSuperiority_Init>(host, &AfterCvAIOperationNavalSuperiority_Init);CivRegisterReplace<CivHooks::CvAIOperationNavalSuperiority_Init>(host, &ReplaceCvAIOperationNavalSuperiority_Init);

Code

4167/// Kick off this operation4168void CvAIOperationNavalSuperiority::Init(int iID, PlayerTypes eOwner, PlayerTypes eEnemy, int /*iDefaultArea*/, CvCity* /*pTarget*/, CvCity* /*pMuster*/)4169{4170	Reset();4171	m_eMoveType = AI_OPERATION_MOVETYPE_FREEFORM_NAVAL;4172	m_iID = iID;4173	m_eOwner = eOwner;4174	m_eEnemy = eEnemy;41754176	if(iID != -1 && GetOperationStartCity())4177	{4178		// create the armies that are needed and set the state to ARMYAISTATE_WAITING_FOR_UNITS_TO_REINFORCE4179		CvPlayer& kPlayer = GET_PLAYER(m_eOwner);4180		CvArmyAI* pArmyAI = kPlayer.addArmyAI();4181		if(pArmyAI)4182		{4183			m_viArmyIDs.push_back(pArmyAI->GetID());4184			pArmyAI->Init(pArmyAI->GetID(),m_eOwner,m_iID);4185			pArmyAI->SetArmyAIState(ARMYAISTATE_WAITING_FOR_UNITS_TO_REINFORCE);4186			pArmyAI->SetFormationIndex(GetFormation());41874188			// Figure out the initial rally point4189			CvPlot* pTargetPlot = FindBestTarget();4190			if(pTargetPlot != NULL)4191			{4192				SetTargetPlot(pTargetPlot);4193				pArmyAI->SetGoalPlot(pTargetPlot);4194				if(SelectInitialMusterPoint(pArmyAI) != NULL)4195				{4196					pArmyAI->SetXY(GetMusterPlot()->getX(), GetMusterPlot()->getY());4197					SetDefaultArea(GetMusterPlot()->getArea());41984199					// Find the list of units we need to build before starting this operation in earnest4200					BuildListOfUnitsWeStillNeedToBuild();42014202					// try to get as many units as possible from existing units that are waiting around4203					if(GrabUnitsFromTheReserves(GetMusterPlot(), GetMusterPlot()))4204					{4205						pArmyAI->SetArmyAIState(ARMYAISTATE_WAITING_FOR_UNITS_TO_CATCH_UP);4206						m_eCurrentState = AI_OPERATION_STATE_MOVING_TO_TARGET;4207					}4208					else4209					{4210						m_eCurrentState = AI_OPERATION_STATE_RECRUITING_UNITS;4211					}42124213					LogOperationStart();4214				}4215				else4216				{4217					// No muster point, abort4218					m_eCurrentState = AI_OPERATION_STATE_ABORTED;4219					m_eAbortReason = AI_ABORT_NO_MUSTER;4220				}4221			}42224223			else4224			{4225				// Lost our target, abort4226				m_eCurrentState = AI_OPERATION_STATE_ABORTED;4227				m_eAbortReason = AI_ABORT_LOST_TARGET;4228			}4229		}4230	}4231}

Calls