Bazaar developer reference

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

Defined in
CvAIOperation.cpp, line 3340
Class
CvAIOperationQuickColonize
Hook name
CivHooks::CvAIOperationQuickColonize_Init
Overrides
CvAIOperationFoundCity::Init(int, PlayerTypes, PlayerTypes, int, CvCity *, CvCity *)

Hooks

static bool BeforeCvAIOperationQuickColonize_Init(CvAIOperationQuickColonize* self, int iID, PlayerTypes eOwner, PlayerTypes arg2, int iDefaultArea, CvCity* arg4, CvCity* arg5);static void AfterCvAIOperationQuickColonize_Init(CvAIOperationQuickColonize* self, int iID, PlayerTypes eOwner, PlayerTypes arg2, int iDefaultArea, CvCity* arg4, CvCity* arg5);static void ReplaceCvAIOperationQuickColonize_Init(void (*original)(CvAIOperationQuickColonize*, int, PlayerTypes, PlayerTypes, int, CvCity*, CvCity*), CvAIOperationQuickColonize* self, int iID, PlayerTypes eOwner, PlayerTypes arg2, int iDefaultArea, CvCity* arg4, CvCity* arg5);CivRegisterBefore<CivHooks::CvAIOperationQuickColonize_Init>(host, &BeforeCvAIOperationQuickColonize_Init);CivRegisterAfter<CivHooks::CvAIOperationQuickColonize_Init>(host, &AfterCvAIOperationQuickColonize_Init);CivRegisterReplace<CivHooks::CvAIOperationQuickColonize_Init>(host, &ReplaceCvAIOperationQuickColonize_Init);

Code

3339/// Kick off this operation3340void CvAIOperationQuickColonize::Init(int iID, PlayerTypes eOwner, PlayerTypes /*eEnemy*/, int iDefaultArea, CvCity* /*pTarget*/, CvCity* /*pMuster*/)3341{3342	CvUnit* pOurCivilian;3343	CvPlot* pTargetSite;33443345	Reset();3346	m_eMoveType = AI_OPERATION_MOVETYPE_SINGLE_HEX;3347	m_iID = iID;3348	m_eOwner = eOwner;3349	m_iTargetArea = iDefaultArea;33503351	// Find the free civilian (that triggered this operation)3352	pOurCivilian = FindBestCivilian();33533354	if(pOurCivilian != NULL && iID != -1)3355	{3356		// Find a destination (not worrying about safe paths)3357		pTargetSite = FindBestTarget(pOurCivilian, false);33583359		if(pTargetSite != NULL)3360		{3361			SetTargetPlot(pTargetSite);33623363			CvArmyAI* pArmyAI = GET_PLAYER(m_eOwner).addArmyAI();3364			if(pArmyAI)3365			{3366				m_viArmyIDs.push_back(pArmyAI->GetID());3367				pArmyAI->Init(pArmyAI->GetID(),m_eOwner,m_iID);3368				pArmyAI->SetFormationIndex(GetFormation());33693370				// Figure out the initial rally point - for this operation it is wherever our civilian is standing3371				pArmyAI->SetGoalPlot(pTargetSite);3372				CvPlot* pMusterPt = pOurCivilian->plot();3373				SetMusterPlot(pMusterPt);3374				pArmyAI->SetXY(pMusterPt->getX(), pMusterPt->getY());3375				pArmyAI->SetArmyAIState(ARMYAISTATE_MOVING_TO_DESTINATION);3376				SetDefaultArea(pMusterPt->getArea());33773378				// Add the settler to our army3379				pArmyAI->AddUnit(pOurCivilian->GetID(), 0);3380				m_bEscorted = false;33813382				m_eCurrentState = AI_OPERATION_STATE_MOVING_TO_TARGET;3383				LogOperationStart();3384			}3385		}33863387		else3388		{3389			// Lost our target, abort3390			m_eCurrentState = AI_OPERATION_STATE_ABORTED;3391			m_eAbortReason = AI_ABORT_LOST_TARGET;3392		}3393	}3394}

Calls