Bazaar developer reference

CvTacticalAI::FindPassiveBarbarianLandMove(UnitHandle)

Defined in
CvTacticalAI.cpp, line 10020
Class
CvTacticalAI
Hook name
CivHooks::CvTacticalAI_FindPassiveBarbarianLandMove

Hooks

static bool BeforeCvTacticalAI_FindPassiveBarbarianLandMove(CvTacticalAI* self, UnitHandle pUnit, CvPlot*& result);static void AfterCvTacticalAI_FindPassiveBarbarianLandMove(CvTacticalAI* self, UnitHandle pUnit, CvPlot*& result);static CvPlot* ReplaceCvTacticalAI_FindPassiveBarbarianLandMove(CvPlot* (*original)(CvTacticalAI*, UnitHandle), CvTacticalAI* self, UnitHandle pUnit);CivRegisterBefore<CivHooks::CvTacticalAI_FindPassiveBarbarianLandMove>(host, &BeforeCvTacticalAI_FindPassiveBarbarianLandMove);CivRegisterAfter<CivHooks::CvTacticalAI_FindPassiveBarbarianLandMove>(host, &AfterCvTacticalAI_FindPassiveBarbarianLandMove);CivRegisterReplace<CivHooks::CvTacticalAI_FindPassiveBarbarianLandMove>(host, &ReplaceCvTacticalAI_FindPassiveBarbarianLandMove);

Code

10019/// Find a multi-turn target for a land barbarian to wander towards10020CvPlot* CvTacticalAI::FindPassiveBarbarianLandMove(UnitHandle pUnit)10021{10022	CvPlot* pBestMovePlot = NULL;10023	int iBestValue;10024	int iValue;1002510026	iBestValue = MAX_INT;10027	pBestMovePlot = NULL;1002810029	for(unsigned int iI = 0; iI < m_AllTargets.size(); iI++)10030	{10031		// Is this target a camp?10032		if(m_AllTargets[iI].GetTargetType()==AI_TACTICAL_TARGET_BARBARIAN_CAMP)10033		{10034			iValue = plotDistance(pUnit->getX(), pUnit->getY(), m_AllTargets[iI].GetTargetX(), m_AllTargets[iI].GetTargetY());10035			if(iValue < iBestValue)10036			{10037				iBestValue = iValue;10038				pBestMovePlot = GC.getMap().plot(m_AllTargets[iI].GetTargetX(), m_AllTargets[iI].GetTargetY());10039			}10040		}10041	}1004210043	if(pBestMovePlot == NULL)10044	{10045		pBestMovePlot = FindBarbarianExploreTarget(pUnit);10046	}1004710048	return pBestMovePlot;10049}

Calls

Called by