private void tilesetInfoToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "Tile Set Binaries|*.tsb"; if (dialog.ShowDialog() == DialogResult.OK) { byte[] bytes = File.ReadAllBytes(dialog.FileName); try { List <TileData> ltd = Tileset.FromByteArray(bytes); ltd.Sort((o1, o2) => Math.Sign(o1.ID - o2.ID)); //Program.MasterTileset.TilesData.Clear(); //Program.MasterTileset.TilesData.AddRange(ltd); foreach (TileData td in ltd) { TileData ntd = td; int id = td.ID; if (id < 0 || id > Program.MasterTileset.TilesData.Count) { break; //Sorted ascending. } TileData source = Program.MasterTileset.TilesData[id]; ntd.LoadUnsavedDataFrom(source); Program.MasterTileset.TilesData[id] = ntd; } Program.MasterTileset.UpdateChildren(); this.Redraw(); } catch (Exception ex) { Console.WriteLine(ex); } } dialog.Dispose(); }