Bazaar developer reference

CvUnit::IsFriendlyUnitAdjacent(bool) const

Defined in
CvUnit.cpp, line 14975
Class
CvUnit
Hook name
CivHooks::CvUnit_IsFriendlyUnitAdjacent

Hooks

static bool BeforeCvUnit_IsFriendlyUnitAdjacent(const CvUnit* self, bool bCombatUnit, bool& result);static void AfterCvUnit_IsFriendlyUnitAdjacent(const CvUnit* self, bool bCombatUnit, bool& result);static bool ReplaceCvUnit_IsFriendlyUnitAdjacent(bool (*original)(const CvUnit*, bool), const CvUnit* self, bool bCombatUnit);CivRegisterBefore<CivHooks::CvUnit_IsFriendlyUnitAdjacent>(host, &BeforeCvUnit_IsFriendlyUnitAdjacent);CivRegisterAfter<CivHooks::CvUnit_IsFriendlyUnitAdjacent>(host, &AfterCvUnit_IsFriendlyUnitAdjacent);CivRegisterReplace<CivHooks::CvUnit_IsFriendlyUnitAdjacent>(host, &ReplaceCvUnit_IsFriendlyUnitAdjacent);

Code

14974/// Is there a friendly Unit adjacent to us?14975bool CvUnit::IsFriendlyUnitAdjacent(bool bCombatUnit) const14976{14977	CvPlot* pLoopPlot;14978	IDInfo* pUnitNode;1497914980	CvUnit* pLoopUnit;1498114982	CvPlot* pPlot = plot();1498314984	TeamTypes eTeam = getTeam();1498514986	for(int iI = 0; iI < NUM_DIRECTION_TYPES; iI++)14987	{14988		pLoopPlot = plotDirection(getX(), getY(), ((DirectionTypes)iI));1498914990		if(pLoopPlot != NULL)14991		{14992			// Must be in same area14993			if(pLoopPlot->getArea() == pPlot->getArea())14994			{14995				pUnitNode = pLoopPlot->headUnitNode();1499614997				while(pUnitNode != NULL)14998				{14999					pLoopUnit = ::getUnit(*pUnitNode);15000					pUnitNode = pLoopPlot->nextUnitNode(pUnitNode);1500115002					if(pLoopUnit && pLoopUnit->getTeam() == eTeam)15003					{15004						// Combat Unit?15005						if(!bCombatUnit || pLoopUnit->IsCombatUnit())15006						{15007							return true;15008						}15009					}15010				}15011			}15012		}15013	}1501415015	return false;15016}

Calls

Called by