anchor.diff:    end;
     // todo
     StartNode.Path := 0;
  -  StartNode.SortValue := 0{Path} + 0{CalculateHeuristics};
  +  StartNode.SortValue := 0{Path} + CalculateHeuristics(Start, Finish);
   
     // cache finish point and mark as known attainable
     FinishNode := AllocateNode(Start.X, Start.Y);
  
positive.code:   _5 = (1 shl 5);
    _6 = (1 shl 6);
    _7 = (1 shl 7);
  
    UNSUPPORTED_TILE_WEIGHT = High(Cardinal) shr 1;
  
  
negative.code:     procedure SetCaching(const Value: Boolean);
      procedure CachingChanged;
      function AllocateNode(const X, Y: NativeInt): PPathMapNode;
      function CalculateHeuristics(const Start, Finish: TPoint): NativeInt;
      function DoFindPath(MapSelf: Pointer; StartNode: PPathMapNode): PPathMapNode;
    {$ifdef CPFLIB}
    public
  