anchor.diff:  
     // finish point node
     Node := AllocateHeuristedNode(Params.Finish.X, Params.Finish.Y);
  -  Node.NodeInfo := FLAG_KNOWN_PATH or FLAG_ATTAINABLE;
  +  Node.NodeInfo := Node.NodeInfo or {mark anyway}(FLAG_KNOWN_PATH + FLAG_ATTAINABLE);
     FinishNode := Node;
   
     // each start point find algorithm
  
positive.code:     function ActualizeStarts(Points: PPoint; Count: NativeUInt; Compare: Boolean): Boolean;
      function ActualizeExcludes(Points: PPoint; Count: NativeUInt; Compare: Boolean): Boolean;
      procedure ActualizeSectors;
      procedure FlushHeuristedNodes(const StartPoint: TCPFStart; const FailureNode: TCPFNode);
      procedure AddHeuristedNodes(const First, Last: PCPFNode);
      procedure ReleaseAttainableNodes;
      procedure ReleaseHeuristedNodes;
      procedure ReleaseAllocatedNodes(const CleanupCells: Boolean);
      procedure CacheAttainablePath(var StartPoint: TCPFStart; const FinishNode: PCPFNode);
      procedure FillAttainablePath(const StartNode, FinishNode: PCPFNode);
      procedure FillStandardPath(const StartNode, FinishNode: PCPFNode);
    {$ifdef CPFLIB}
    public
      procedure Destroy;
  
negative.code:   Result := False;
  end;
  
  procedure FloodTileMapSectors(const Cell: PCPFCell; const Sector: PByte;
    const Offsets: TCPFOffsets
    {$ifdef LARGEINT}; NodeBuffers: PCPFNodeBuffers{$endif});
  label
  