anchor.diff:      procedure SetTile(const X, Y: Word; const Value: TPathMapTile);
       procedure SetSectorTest(const Value: Boolean);
       procedure SetUseCache(const Value: Boolean);
  -    function DoFindPath(MapSelf: Pointer; FinishNode: PPathMapNode): Boolean;
  +    function DoFindPath(MapSelf: Pointer; StartNode: PPathMapNode): PPathMapNode;
     {$ifdef CPFLIB}
     public
       procedure Destroy;
  
positive.code:   _5 = (1 shl 5);
    _6 = (1 shl 6);
    _7 = (1 shl 7);
  
    POINT_OFFSETS: array[0..7] of TYXSmallPoint = (
      {0} (y: -1; x: -1),
  
negative.code:   PPathMapNode = ^TPathMapNode;
    TPathMapNode = packed record
      SortValue: Cardinal; // path + heuristics to start point
      Path: Cardinal; // path from start point to the cell
      Coordinates: TCPFPoint;
      Prev, Next: PPathMapNode;
      case Integer of
      0: (
           ParentAndFlags: Byte
           {
             Parent:3;
             case Boolean of
               False: (Way:3; ParentDependent:1);
                True: (Child:3; Attainable:1);
             end;
             CachedPath:1;
           };
           Mask: Byte;
           ParentMask: Byte;
           Tile: Byte;
         );
      1: (NodeInfo: Cardinal);
    end;
  
  
  