CvTacticalAI::FindCitiesWithinStrikingDistance(CvPlot *)
- Defined in
- CvTacticalAI.cpp, line 9250
- Class
- CvTacticalAI
- Hook name
CivHooks::CvTacticalAI_FindCitiesWithinStrikingDistance
Hooks
static bool BeforeCvTacticalAI_FindCitiesWithinStrikingDistance(CvTacticalAI* self, CvPlot* pTargetPlot, bool& result);static void AfterCvTacticalAI_FindCitiesWithinStrikingDistance(CvTacticalAI* self, CvPlot* pTargetPlot, bool& result);static bool ReplaceCvTacticalAI_FindCitiesWithinStrikingDistance(bool (*original)(CvTacticalAI*, CvPlot*), CvTacticalAI* self, CvPlot* pTargetPlot);CivRegisterBefore<CivHooks::CvTacticalAI_FindCitiesWithinStrikingDistance>(host, &BeforeCvTacticalAI_FindCitiesWithinStrikingDistance);CivRegisterAfter<CivHooks::CvTacticalAI_FindCitiesWithinStrikingDistance>(host, &AfterCvTacticalAI_FindCitiesWithinStrikingDistance);CivRegisterReplace<CivHooks::CvTacticalAI_FindCitiesWithinStrikingDistance>(host, &ReplaceCvTacticalAI_FindCitiesWithinStrikingDistance);
Code
9249/// Fills m_CurrentMoveCities with all cities within bombard range of a target (returns TRUE if 1 or more found)9250bool CvTacticalAI::FindCitiesWithinStrikingDistance(CvPlot* pTargetPlot)9251{9252 list<int>::iterator it;9253 CvCity* pLoopCity;9254 int iLoop;92559256 bool rtnValue = false;9257 m_CurrentMoveCities.clear();92589259 // Loop through all of our cities9260 for(pLoopCity = m_pPlayer->firstCity(&iLoop); pLoopCity != NULL; pLoopCity = m_pPlayer->nextCity(&iLoop))9261 {9262 if(pLoopCity->canRangeStrikeAt(pTargetPlot->getX(), pTargetPlot->getY()) && !IsCityInQueuedAttack(pLoopCity))9263 {9264 CvTacticalCity city;9265 city.SetID(pLoopCity->GetID());9266 m_CurrentMoveCities.push_back(city);9267 rtnValue = true;9268 }9269 }92709271 // Now sort them in the order we'd like them to attack9272 std::stable_sort(m_CurrentMoveCities.begin(), m_CurrentMoveCities.end());92739274 return rtnValue;9275}
Calls
- CvCity::canRangeStrikeAt(int, int) const
- CvCity::GetID() const
- CvPlayer::firstCity(int *, bool)
- CvPlayer::nextCity(int *, bool)
- CvPlot::getX() const
- CvPlot::getY() const
- CvTacticalAI::IsCityInQueuedAttack(const CvCity *)
- CvTacticalCity::CvTacticalCity()
- CvTacticalCity::SetID(int)
std::list::_Iterator::_Iteratorstd::stable_sortstd::vector::beginstd::vector::clearstd::vector::endstd::vector::push_back