anchor.diff:  {$endif}
   
   procedure TTileMap.UpdateCellMasks(const ChangedArea: TRect);
  +label
  +  fillmask, nextcell;
   const
     NOT_TOP_MASK = not (_0 or _1 or _2);
     NOT_RIGHT_MASK = not (_2 or _3 or _4);
     NOT_BOTTOM_MASK = not (_4 or _5 or _6);
     NOT_LEFT_MASK = not (_6 or _7 or _0);
  -  ROUND_MASKS: array[0..3] of Integer = (NOT_TOP_MASK, NOT_RIGHT_MASK, NOT_BOTTOM_MASK, NOT_LEFT_MASK);
   var
     AWidth, AHeight: Integer;
  -  X, Left, Top, Right, Bottom: Integer;
  +  X, Y, Left, Top, Right, Bottom: Integer;
     Rounded: Boolean;
     CellOffsets: PCPFOffsets;
  -  Cell: PCPFNode;
  +  Cell: PCPFCell;
  +  Node: PCPFNode;
     FlagHexagonal: Integer;
     CellLineOffset: NativeUInt;
   
     i, j: Integer;
  +  CellInfo: NativeUInt;
  +  DefaultMask, Mask, Flags: Integer;
  +
  +  {$ifdef LARGEINT}
  +    NodeBuffers: PCPFNodeBuffers;
  +  {$endif}
   begin
     AWidth := Self.Width;
     AHeight := Self.Height;
  
positive.code:         NodeXY{ChildPath} := ChildNode.Path;
          if (Path >= NodeXY{ChildPath}) then goto nextchild_continue;
  
          // new Params
          ChildNode.NodeInfo := ParentBits;
          ChildXY{ChildSortValue} := ChildNode.SortValue;
          ChildNode.Path := Path;
  
negative.code:   end;
    FInfo.NodeAllocator.Buffers[AllocatorCount] := FNodes.Storage.Buffers[AllocatorCount];
  
    // params
    Node := FInfo.NodeAllocator.Buffers[AllocatorCount];
    Inc(FInfo.NodeAllocator.Count);
    FInfo.NodeAllocator.NewNode := Node;
  