anchor.diff:    CellOffsets: PCPFOffsets;
     Cell: PCPFCell;
     Node: PCPFNode;
  -  NodePtrs, N: NativeUInt;
  +  NodePtrs, N, X: NativeUInt;
     Length, i: NativeUInt;
     WeightCounts: ^TWeightCounts;
     Point: PPoint;
   
     Store: record
       FinishNode: PCPFNode;
  -    SecondNodeInfo: NativeUInt;
  +    HighTile: NativeUInt;
  +    LastLine: NativeUInt{Boolean};
       {$ifdef CPUX86}
         StartNode: PCPFNode;
  -      NodePtrs: NativeUInt;
         Length: NativeUInt;
       {$else}
         _Self: Pointer;
  
positive.code:           CellInfo := CellInfo + Format(', way: %d%d%d',
              [(ChildList[0] shr 4) and 7, (ChildList[1] shr 4) and 7, (ChildList[2] shr 4) and 7]);
          end;
        end;
  
        CellInfo := CellInfo + ')';      
  
negative.code:       Point.Y := Word(N);
        Point.X := N shr 16;
      {$endif}
  
      // counters
      N := Node.NodeInfo;
      X := (N shr 23) and -2;
      {$ifdef CPUX86}
        Inc(Buffer.Values[X + Store.LastLine]);
        Store.LastLine := N and 1;
        Inc(Buffer.Values[X + (N and 1)]);
      {$else}
        _Buffer := @Buffer;
        Inc(_Buffer.Values[X + Store.LastLine]);
        Store.LastLine := N and 1;
        Inc(_Buffer.Values[X + (N and 1)]);
      {$endif}
    until ({$ifdef CPUX86}Store.{$endif}StartNode = Node);
  
    // correction
    {$ifdef CPUX86}
      Dec(Buffer.Values[X + (N and 1)]);
    {$else}
      Dec(_Buffer.Values[X + (N and 1)]);
    {$endif}
  
    // distance
  