anchor.diff:  end;
   
   
  -procedure TKMFindClusters.ExpandPolygon(aIdx: Word);
  +procedure TKMFindClusters.ExpandPolygon(aIdx: Word; aCanBeExpanded: Boolean);
   var
     K, L, NearbyIdx, RefID, NearbyRefID: Integer;
   begin
  
positive.code:     // Expand polygon
      if not IsVisited(NearbyIdx) then
      begin
        MarkAsVisited( NearbyIdx, RefID,
                       fQueueArray[aIdx].Distance + KMDistanceWalk(fQueueArray[aIdx].DistPoint, gAIFields.NavMesh.Polygons[aIdx].NearbyPoints[K]),
                       gAIFields.NavMesh.Polygons[aIdx].NearbyPoints[K]);
        InsertAndSort(NearbyIdx);
      end
      // Merge clusters by changing reference (faster than copying arrays)
      else
  
negative.code:     procedure InitQueue(var aEnemy: TKMAllianceInfo2); reintroduce;
      function CanBeExpanded(const aIdx: Word): Boolean; override;
      procedure MarkAsVisited(const aIdx, aClusterID: Word; const aDistance: Cardinal; const aPoint: TKMPoint); reintroduce;
      procedure ExpandPolygon(aIdx: Word; aCanBeExpanded: Boolean);
      procedure Flood(var aEnemy: TKMAllianceInfo2); reintroduce;
    public
      function FindClusters(var aClusters: TKMCombatClusters; var aAllianceInfo: TKMAllianceInfo2; var aDefInfo: TKMInflInfoArray2; var aQueueArray: TPolygonsQueueArr): Boolean;
  