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}