Bazaar developer reference

CvTacticalAI::PlotOperationalArmyMoves()

Defined in
CvTacticalAI.cpp, line 2679
Class
CvTacticalAI
Hook name
CivHooks::CvTacticalAI_PlotOperationalArmyMoves

Hooks

static bool BeforeCvTacticalAI_PlotOperationalArmyMoves(CvTacticalAI* self);static void AfterCvTacticalAI_PlotOperationalArmyMoves(CvTacticalAI* self);static void ReplaceCvTacticalAI_PlotOperationalArmyMoves(void (*original)(CvTacticalAI*), CvTacticalAI* self);CivRegisterBefore<CivHooks::CvTacticalAI_PlotOperationalArmyMoves>(host, &BeforeCvTacticalAI_PlotOperationalArmyMoves);CivRegisterAfter<CivHooks::CvTacticalAI_PlotOperationalArmyMoves>(host, &AfterCvTacticalAI_PlotOperationalArmyMoves);CivRegisterReplace<CivHooks::CvTacticalAI_PlotOperationalArmyMoves>(host, &ReplaceCvTacticalAI_PlotOperationalArmyMoves);

Code

2678/// Process units that we recruited out of operational moves.  Haven't used them, so let them go ahead with those moves2679void CvTacticalAI::PlotOperationalArmyMoves()2680{2681	list<int>::iterator it;26822683	// Update all operations (moved down - previously was in the PlayerAI object)2684	CvAIOperation* nextOp = NULL;2685	nextOp = m_pPlayer->getFirstAIOperation();2686	while(nextOp != NULL)2687	{2688		if(nextOp->GetLastTurnMoved() < GC.getGame().getGameTurn())2689		{2690			switch(nextOp->GetMoveType())2691			{2692			case AI_OPERATION_MOVETYPE_SINGLE_HEX:2693				PlotSingleHexOperationMoves((CvAIEscortedOperation*)nextOp);2694				break;26952696			case AI_OPERATION_MOVETYPE_ENEMY_TERRITORY:2697				PlotEnemyTerritoryOperationMoves((CvAIEnemyTerritoryOperation*)nextOp);2698				break;26992700			case AI_OPERATION_MOVETYPE_NAVAL_ESCORT:2701				PlotNavalEscortOperationMoves((CvAINavalEscortedOperation*)nextOp);2702				break;27032704			case AI_OPERATION_MOVETYPE_FREEFORM_NAVAL:2705				PlotFreeformNavalOperationMoves((CvAINavalOperation*)nextOp);2706				break;2707			}27082709			nextOp->SetLastTurnMoved(GC.getGame().getGameTurn());2710			nextOp->CheckOnTarget();2711		}271227132714		nextOp = m_pPlayer->getNextAIOperation();2715	}27162717	bool bKilledSomething;2718	do2719	{2720		bKilledSomething = false;2721		nextOp = m_pPlayer->getFirstAIOperation();2722		while(nextOp != NULL)2723		{2724			if(nextOp->DoDelayedDeath())2725			{2726				bKilledSomething = true;2727				break;2728			}2729			nextOp = m_pPlayer->getNextAIOperation();2730		}2731		// hack2732	}2733	while(bKilledSomething);2734}

Calls

Called by