private void btSave_Click(object sender, EventArgs e) { if (this.worldmap != null) { SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "map files (*.txt)|*.txt"; dlg.Title = "Save map"; dlg.CheckPathExists = true; dlg.CheckPathExists = true; dlg.ShowDialog(); if (dlg.FileName != "") { Rectangle rrr = new Rectangle(new Point(0, y_Axis - pb_background.Height + 1), pb_background.Size); root_node = new Node("0", rrr); List <Objects> tmplst = new List <Objects>(worldmap.ListObject); worldmap.ListObject.Clear(); foreach (Objects o in tmplst) { if (o.Type < 10 || o.Type == 20) { worldmap.ListObject.Add(o); } } foreach (Objects o in tmplst) { if (o.Type < 10 || o.Type == 20) { continue; } worldmap.ListObject.Add(o); } foreach (Objects o in worldmap.ListObject) { o.Id = worldmap.ListObject.IndexOf(o); root_node.Insert(o); } worldmap.saveMap(dlg.FileName, root_node); Rectangle re = new Rectangle(new Point(5665, 32), new Size(7200, 352)); List <Objects> l = root_node.Query(re); } } }