Bazaar developer reference

CvTacticalAI::PlotGuardImprovementMoves(int)

Defined in
CvTacticalAI.cpp, line 3167
Class
CvTacticalAI
Hook name
CivHooks::CvTacticalAI_PlotGuardImprovementMoves

Hooks

static bool BeforeCvTacticalAI_PlotGuardImprovementMoves(CvTacticalAI* self, int iNumTurnsAway);static void AfterCvTacticalAI_PlotGuardImprovementMoves(CvTacticalAI* self, int iNumTurnsAway);static void ReplaceCvTacticalAI_PlotGuardImprovementMoves(void (*original)(CvTacticalAI*, int), CvTacticalAI* self, int iNumTurnsAway);CivRegisterBefore<CivHooks::CvTacticalAI_PlotGuardImprovementMoves>(host, &BeforeCvTacticalAI_PlotGuardImprovementMoves);CivRegisterAfter<CivHooks::CvTacticalAI_PlotGuardImprovementMoves>(host, &AfterCvTacticalAI_PlotGuardImprovementMoves);CivRegisterReplace<CivHooks::CvTacticalAI_PlotGuardImprovementMoves>(host, &ReplaceCvTacticalAI_PlotGuardImprovementMoves);

Code

3166/// Make a defensive move to guard an improvement3167void CvTacticalAI::PlotGuardImprovementMoves(int iNumTurnsAway)3168{3169	CvTacticalTarget* pTarget;3170	pTarget = GetFirstZoneTarget(AI_TACTICAL_TARGET_IMPROVEMENT_TO_DEFEND);3171	while(pTarget != NULL)3172	{3173		// Grab units that make sense for this move type3174		CvPlot* pPlot = GC.getMap().plot(pTarget->GetTargetX(), pTarget->GetTargetY());3175		FindUnitsForThisMove((TacticalAIMoveTypes)m_CachedInfoTypes[eTACTICAL_BASTION_ALREADY_THERE], pPlot, iNumTurnsAway);31763177		if(m_CurrentMoveHighPriorityUnits.size() + m_CurrentMoveUnits.size() > 0)3178		{3179			ExecuteMoveToTarget(pPlot);3180			if(GC.getLogging() && GC.getAILogging())3181			{3182				CvString strLogString;3183				strLogString.Format("Guard Improvement, X: %d, Y: %d, Turns Away: %d", pTarget->GetTargetX(), pTarget->GetTargetY(), iNumTurnsAway);3184				LogTacticalMessage(strLogString);3185			}3186		}3187		pTarget = GetNextZoneTarget();3188	}3189}

Calls

Called by