anchor.diff:  end;
   
   
  +// Prepare new Queue
   procedure TForwardFF.MakeNewQueue();
   begin
  -  fVisitedIdx := fVisitedIdx + 3; // There is 1 FF forward, 1 FF backward and 1 FF for positioning in 1 round
  -
  +  fVisitedIdx := fVisitedIdx + 3; // There is 1 FF forward, 1 FF backward and 1 FF for positioning in 1 cycle
  +  // Check length
     if (Length(fQueueArray) < Length(gAIFields.NavMesh.Polygons)) then
     begin
       SetLength(fQueueArray, Length(gAIFields.NavMesh.Polygons));
  
positive.code: 
  function TBackwardFF.FindDefenceLines(aOwner: TKMHandIndex): TKMDefenceLines;
  begin
    BackwardFlood();
    Result := BestDefLines;
  end;
  
  
  function TBackwardFF.FindDefensivePolygons(aOwner: TKMHandIndex; var aBaseCnt: Word; aMinDefeces: Boolean): TKMDefencePosArr;
  begin
    BackwardFlood();
    FindDefencePos(aBaseCnt, aMinDefeces);
    Result := DefPosArr;
  end;
  
  
  
  
  procedure TForwardFF.DEBUG();
  var
    I, cnt: Integer;
  
negative.code:   TBackwardFF = class(TNavMeshFloodFill)
    private
    protected
      fDefLinesRequired: Boolean;
      fOwner: TKMHandIndex;
      fBestEvaluation: Single;
      fDefInfo: TDefInfoArray;
  
      function CanBeExpanded(const aIdx: Word): Boolean; override;
      procedure BackwardFlood();
      procedure EvaluateDefence(const aIdx: Word);
      function FindDefencePos(var aBaseCnt, aFirstLine: Word; aMinDefeces: Boolean): Boolean;
    public
      //D_INIT_ARR, D_INIT_FLOOD: TKMWordArray;
      BestDefLines: TKMDefenceLines;
      DefPosArr: TKMDefencePosArr;
  
  