anchor.diff:    MapWidth, MapHeight: Cardinal;
     FinishX, FinishY: Integer;
     S: PPoint;
  +  Actual, R, ActualFinish, ActualStarts: Boolean;
   begin
     // test start points coordinates
     MapWidth := Self.Width;
  
positive.code:     function DoFindPathLoop(StartNode: PCPFMapNode): PCPFMapNode;
      function DoFindPath(const Parameters: TPathMapFindParameters): PPathMapResult;
    private
      FWeights: record
        Current: PCPFWeights;
        UpdateId: Cardinal;
        Default: PCPFWeights;
      end;
      FStartPoints: record
        Buffer: TCPFBuffer;
        Count: NativeUInt;
      end;
      FExcludedPoints: record
        Buffer: TCPFBuffer;
        Count: NativeUInt;
      end;
      FFinishPoint: TPoint;
      FFoundPath: record
        Buffer: TCPFBuffer;
        Length: NativeUInt;
      end;
      // todo
  
  
    {$ifdef CPFLIB}
    public
      procedure Destroy;
  
negative.code:   TPathMap = {$ifdef CPFLIB}object{$else}class{$endif}(TCPFClass)
    private
      FFindResult: TPathMapResult;
      FInfo: TCPFMapInfo;
      FWidth: Word;
      FHeight: Word;
  