Exemplo n.º 1
0
        private void Setproperties_btn_Click(object sender, EventArgs e)
        {
            bg = (BackgroundEntry)tilesetListBox.SelectedItem;

            bool IsLevelBG = true;

            if (bg.id > 75 || bg.mappedTileset)
            {
                IsLevelBG = false;
            }
            SetBGPropertiesDialog newBg = new SetBGPropertiesDialog(bg.id, bg.name.Split(':')[1].Remove(0, 1), bg.GFXFileID, bg.PalFileID, bg.LayoutFileID, bg.BitmapOffset, bg.PaletteOffsets, IsLevelBG);

            if (newBg.Canceled)
            {
                return;
            }

            string listName = bg.topLayer ? "Foregrounds" : "Backgrounds";

            if (bg.mappedTileset)
            {
                listName = "MappedTileset";
            }

            if (string.IsNullOrWhiteSpace(newBg.bgName))
            {
                ROM.UserInfo.removeListItem(listName, bg.id, true);
                string newName = LanguageManager.GetList(listName)[bg.id];
                bool   empty   = false;
                if (string.IsNullOrWhiteSpace(newName.Split(':')[1]))
                {
                    newName += " " + LanguageManager.Get("BackgroundList", "empty");
                    empty    = true;
                }

                tilesetListBox.Items[tilesetListBox.SelectedIndex] = new BackgroundEntry(bg.topLayer, bg.id, newName, bg.mappedTileset, empty);
                return;
            }

            string NewFullName = string.Format("{0}: {1}", bg.id, newBg.bgName);

            if (!IsLevelBG)
            {
                NewFullName = string.Format("{0}: {1}@{2}@{3}@{4}@{5}@{6}@not_level_bg", bg.id, newBg.bgName, newBg.bgNCGID, newBg.bgNCLID, newBg.bgNSCID, newBg.bgBMPOffs, newBg.bgPALOffs);
            }
            else
            {
                ROM.SetFileIDFromTable(bg.id, bg.topLayer ? ROM.Data.Table_FG_NCG : ROM.Data.Table_BG_NCG, (ushort)newBg.bgNCGID);
                ROM.SetFileIDFromTable(bg.id, bg.topLayer ? ROM.Data.Table_FG_NCL : ROM.Data.Table_BG_NCL, (ushort)newBg.bgNCLID);
                ROM.SetFileIDFromTable(bg.id, bg.topLayer ? ROM.Data.Table_FG_NSC : ROM.Data.Table_BG_NSC, (ushort)newBg.bgNSCID);
            }

            ROM.UserInfo.setListItem(listName, bg.id, NewFullName, true);
            tilesetListBox.Items[tilesetListBox.SelectedIndex] = new BackgroundEntry(bg.topLayer, bg.id, NewFullName, false);
        }