CvAINavalEscortedOperation::RetargetCivilian(CvUnit *, CvArmyAI *)
- Defined in
- CvAIOperation.cpp, line 5302
- Class
- CvAINavalEscortedOperation
- Hook name
CivHooks::CvAINavalEscortedOperation_RetargetCivilian
Hooks
static bool BeforeCvAINavalEscortedOperation_RetargetCivilian(CvAINavalEscortedOperation* self, CvUnit* pCivilian, CvArmyAI* pArmy, bool& result);static void AfterCvAINavalEscortedOperation_RetargetCivilian(CvAINavalEscortedOperation* self, CvUnit* pCivilian, CvArmyAI* pArmy, bool& result);static bool ReplaceCvAINavalEscortedOperation_RetargetCivilian(bool (*original)(CvAINavalEscortedOperation*, CvUnit*, CvArmyAI*), CvAINavalEscortedOperation* self, CvUnit* pCivilian, CvArmyAI* pArmy);CivRegisterBefore<CivHooks::CvAINavalEscortedOperation_RetargetCivilian>(host, &BeforeCvAINavalEscortedOperation_RetargetCivilian);CivRegisterAfter<CivHooks::CvAINavalEscortedOperation_RetargetCivilian>(host, &AfterCvAINavalEscortedOperation_RetargetCivilian);CivRegisterReplace<CivHooks::CvAINavalEscortedOperation_RetargetCivilian>(host, &ReplaceCvAINavalEscortedOperation_RetargetCivilian);
Code
5301/// Start the civilian off to a new target plot5302bool CvAINavalEscortedOperation::RetargetCivilian(CvUnit* pCivilian, CvArmyAI* pArmy)5303{5304 CvPlot* pBetterTarget;53055306 // Find best city site (taking into account whether or not we are escorted)5307 pBetterTarget = FindBestTarget(pCivilian);53085309 // No targets at all! Abort5310 if(pBetterTarget == NULL)5311 {5312 m_eCurrentState = AI_OPERATION_STATE_ABORTED;5313 m_eAbortReason = AI_ABORT_NO_TARGET;5314 return false;5315 }53165317 // If this is a new target, switch to it5318 else if(pBetterTarget != GetTargetPlot())5319 {5320 SetTargetPlot(pBetterTarget);5321 pArmy->SetGoalPlot(pBetterTarget);5322 }53235324 pArmy->SetArmyAIState(ARMYAISTATE_MOVING_TO_DESTINATION);5325 m_eCurrentState = AI_OPERATION_STATE_MOVING_TO_TARGET;53265327 return true;5328}