Bazaar developer reference

CvTacticalAI::ExecuteRepositionMoves()

Defined in
CvTacticalAI.cpp, line 6770
Class
CvTacticalAI
Hook name
CivHooks::CvTacticalAI_ExecuteRepositionMoves

Hooks

static bool BeforeCvTacticalAI_ExecuteRepositionMoves(CvTacticalAI* self);static void AfterCvTacticalAI_ExecuteRepositionMoves(CvTacticalAI* self);static void ReplaceCvTacticalAI_ExecuteRepositionMoves(void (*original)(CvTacticalAI*), CvTacticalAI* self);CivRegisterBefore<CivHooks::CvTacticalAI_ExecuteRepositionMoves>(host, &BeforeCvTacticalAI_ExecuteRepositionMoves);CivRegisterAfter<CivHooks::CvTacticalAI_ExecuteRepositionMoves>(host, &AfterCvTacticalAI_ExecuteRepositionMoves);CivRegisterReplace<CivHooks::CvTacticalAI_ExecuteRepositionMoves>(host, &ReplaceCvTacticalAI_ExecuteRepositionMoves);

Code

6769/// Execute moving units to a better location6770void CvTacticalAI::ExecuteRepositionMoves()6771{6772	CvPlot* pBestPlot = NULL;6773	CvString strTemp;67746775	for(unsigned int iI = 0; iI < m_CurrentMoveUnits.size(); iI++)6776	{6777		UnitHandle pUnit = m_pPlayer->getUnit(m_CurrentMoveUnits[iI].GetID());6778		if(pUnit)6779		{6780			strTemp = pUnit->getUnitInfo().GetDescription();67816782			// LAND MOVES6783			if(pUnit->getDomainType() == DOMAIN_LAND)6784			{6785				pBestPlot = FindNearbyTarget(pUnit, m_iRepositionRange);67866787				if(pBestPlot)6788				{6789					if(MoveToEmptySpaceNearTarget(pUnit, pBestPlot, (pUnit->getDomainType()==DOMAIN_LAND)))6790					{6791						pUnit->finishMoves();6792						UnitProcessed(m_CurrentMoveUnits[iI].GetID(), pUnit->IsCombatUnit());6793						if(GC.getLogging() && GC.getAILogging())6794						{6795							CvString strLogString;6796							strLogString.Format("%s moved to empty space near target, X: %d, Y: %d, Current X: %d, Current Y: %d", strTemp.GetCString(),6797							                    pBestPlot->getX(), pBestPlot->getY(), pUnit->getX(), pUnit->getY());6798							LogTacticalMessage(strLogString);6799						}6800					}6801				}6802			}6803		}6804	}6805}

Calls

Called by