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
- CvGlobals::getAILogging()
- CvGlobals::getLogging()
- CvGlobals::getMap()
- CvMap::plot(int, int) const
CvString::CvStringCvString::Format- CvTacticalAI::ExecuteMoveToTarget(CvPlot *)
- CvTacticalAI::FindUnitsForThisMove(TacticalAIMoveTypes, CvPlot *, int, bool)
- CvTacticalAI::GetFirstZoneTarget(AITacticalTargetType)
- CvTacticalAI::GetNextZoneTarget()
- CvTacticalAI::LogTacticalMessage(CvString &, bool)
- CvTacticalTarget::GetTargetX()
- CvTacticalTarget::GetTargetY()
std::vector::size