anchor.diff:  
           // continue if the path is shorter
           ChildPath := ChildNode.Path;
  -        if (Path >= ChildPath) then goto nextchild_continue;    *)
  +        if (Path >= ChildPath) then goto nextchild_continue;
   
           // new parent bits
           ChildNode.NodeInfo := ParentBits;
   
           // sort value as hot knownpath node marker
  -       // ChildSortValue := ChildNode.SortValue;
  +       (* ChildSortValue := ChildNode.SortValue;
   
           // new Path and SortValue
  -        //ChildNode.Path := Path;
  -       (* ChildNode.SortValue := Path + {heuristics}(ChildSortValue - ChildPath);
  +        ChildNode.Path := Path;
  +        ChildNode.SortValue := Path + {heuristics}(ChildSortValue - ChildPath);
   
           // remove from opened list
           if (ChildSortValue < NATTANABLE_LENGTH_LIMIT) then
  
positive.code: 
          heuristics_data:
            // (dX, dY) = ChildNode.Coordinates - Store.Info.FinishPoint;
           (* dX := Cardinal(ChildNode.Coordinates);
            dY := Word(dX);
            dX := dX shr 16;
            Mask := Cardinal(Store.Info.FinishPoint);
  
negative.code:   TileWeights: PCardinalList;
    Path: Cardinal;
    NodeXY, OffsetXY, ChildXY: Cardinal;
    dX, dY, X, Y: NativeInt;
    Mask: NativeInt;
  
    ChildSortValue, ChildPath: Cardinal;
  //  Left, Right: PCPFNode;
  
    PBufferHigh, PBufferBase, PBufferCurrent: ^PCPFNode;
  
  