anchor.diff:    // Result
     Result := Node;
   
  -  // store current Info
  -  CopyInfo(TPathMapPtr(Store.Self).FInfo, Store.Info);
  +  // actualize node storage (new node pointer)
  +  TPathMapPtr(Store.Self).FInfo.NodeStorage.NewNode := Store.Info.NodeStorage.NewNode;
  +end;
  +
  +procedure TPathMap.GrowNodeStorage(var Buffer: TPathMapNodeStorage);
  +begin
  +  FInfo.NodeStorage := Buffer;
  +  // todo
  +
  +
  +  Buffer := FInfo.NodeStorage;
   end;
   
   function TPathMap.AllocateNode(const X, Y: NativeInt): PPathMapNode;
  
positive.code:   // todo
  end;
  
  procedure CopyInfo(var Dest, Src: TPathMapInfo);
  begin
    Dest := Src;
  end;
  
  function TPathMap.DoFindPath(MapSelf: Pointer; StartNode: PPathMapNode): PPathMapNode;
  label
    nextchild_continue, nextchild, child_tobuffer, next_current, current_initialize;
  const
  
negative.code:     HeuristicsDiagonal: NativeInt;
      TileWeights: array[0..1] of PCardinalList;
      CellOffsets: array[0..7] of NativeInt;
      FinishPoint: TCPFPoint;
      NodeStorage: TPathMapNodeStorage;
    end;
  
    // main path finding class
  