anchor.diff:              end;
             end else
             begin
  +            // hexagonal
               X := X - ((Mask xor PNativeInt(@Store.Info.FinishPoint)^) and Y and 1) - (Y shr 1);
               ChildNode.SortValue := {$ifdef CPUX86}ChildNode.{$endif}Path +
                  Cardinal(Store.Info.HeuristicsLine * (Y + (X and ((X shr HIGH_NATIVE_BIT) - 1))));
  
positive.code:   // clear weigths counters
    NodePtrs := NodePtrs shr 24;
    WeightCounts := @Buffer.WeightCounts[1];
    {$ifdef CPUX86}Store.NodePtrs := NodePtrs;{$endif}
    for i := 1 to NodePtrs{HighTile} do
    begin
      PInt64(WeightCounts)^ := 0;
  
negative.code:   CellOffsets: PCPFOffsets;
    Cell: PCPFCell;
    Node: PCPFNode;
    NodePtrs, N, X: NativeUInt;
    Length, i: NativeUInt;
    WeightCounts: ^TWeightCounts;
    Point: PPoint;
  
    Store: record
      FinishNode: PCPFNode;
      HighTile: NativeUInt;
      LastLine: NativeUInt{Boolean};
      {$ifdef CPUX86}
        StartNode: PCPFNode;
        Length: NativeUInt;
      {$else}
        _Self: Pointer;
  