public void Add(MapItem item) { if (item is MapObject) { MapObject o = (MapObject)item; int id = 0; while (layer.GetChild("obj").childs.Contains(id.ToString())) { id++; } o.ID = id; o.Object.Name = o.ID.ToString(); objects.Add(o); objects.Sort(Map.CompareItems); layer.GetChild("obj").Add(o.Object); OrderObjects(); } else if (item is MapTile) { MapTile t = (MapTile)item; string style = info.GetString("tS"); IMGFile tilesF = MapEditor.file.Directory.GetIMG("Tile/" + style + ".img"); if (tilesF.GetChild(t.Object.GetString("u") + "/" + t.Object.GetInt("no").ToString()) == null) { t.Object.SetInt("no", MapEditor.Instance.random.Next(tilesF.GetChild(t.Object.GetString("u")).childs.Count)); } IMGEntry image = MapEditor.file.Directory.GetIMG("Tile/" + style + ".img").GetChild(t.Object.GetString("u") + "/" + t.Object.GetInt("no").ToString()); if (t.Image != image) { t.Image = image; } int id = 0; while (layer.GetChild("tile").childs.Contains(id.ToString())) { id++; } t.ID = id; t.Object.Name = t.ID.ToString(); tiles.Add(t); tiles.Sort(Map.CompareItems); layer.GetChild("tile").Add(t.Object); OrderTiles(); } else { Map.Instance.Add(item); } }
public GetMapInfo(IMGEntry info) { InitializeComponent(); List <string> MusicNames = new List <string>(); lock (MapEditor.SoundLock) { foreach (IMGFile bgms in MapEditor.sound.Directory.IMGs.Values) { if (bgms.Name.Substring(0, 3) == "Bgm") { foreach (IMGEntry sound in bgms.childs.Values) { MusicNames.Add(bgms.Name + "/" + sound.Name); } } } } MusicNames.Sort(); BGMsList.Items.AddRange(MusicNames.ToArray()); BGMsList.SelectedItem = info.GetString("bgm").Replace("/", ".img/"); int returnMap = info.GetInt("returnMap"); if (returnMap == 999999999) { IsReturnMap.Checked = true; ReturnMap.Enabled = false; } else { IsReturnMap.Checked = false; ReturnMap.Enabled = true; } ReturnMap.Text = returnMap.ToString(); IsTown.Checked = info.GetInt("town") == 1; IsSwim.Checked = info.GetInt("swim") == 1; IsMiniMap.Checked = info.parent.GetChild("miniMap") != null; selectedMark = info.GetString("mapMark"); MarkPreview.Image = MapMarkSelect.GetMark(selectedMark); Bitmap background = new Bitmap(800, 600); using (Graphics g = Graphics.FromImage(background)) { foreach (MapBack b in Map.Instance.backs) { b.Draw(g); } } Bitmap thumb = new Bitmap(160, 120); using (Graphics g = Graphics.FromImage(thumb)) { g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.DrawImage(background, 0, 0, 160, 120); g.Dispose(); } BackgroundPreview.Image = thumb; }