private void deleteDescriptions_Click(object sender, EventArgs e) { if (!descExists) { return; } if (MessageBox.Show(LanguageManager.Get("TilesetEditor", "sureDelDescriptions"), LanguageManager.Get("TilesetEditor", "titleDelDescriptions"), MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No) { return; } ROM.UserInfo.descriptions.Remove(TilesetID); createDescriptions.Visible = true; deleteDescriptions.Visible = false; tilesetObjectEditor1.descBox.Visible = false; tilesetObjectEditor1.descLbl.Visible = false; if (TilesetID != 65535) // The Jyotyu tileset { t.UseNotes = false; } else //Restore the original notes { t.ObjNotes = NSMBGraphics.GetDescriptions(LanguageManager.GetList("ObjNotes")); } descExists = false; objectPickerControl1.Invalidate(true); }
public List <string> getFullList(string name) { List <string> fullList = LanguageManager.GetList(name); List <string> newList = new List <string>(); foreach (string i in fullList) { newList.Add(i); } if (lists.ContainsKey(name)) { foreach (KeyValuePair <int, string> item in lists[name]) { if (newList.Count > item.Key) { newList[item.Key] = item.Value; } } } if (name == "Music") { for (int l = 0; l < ROM.MusicNumbers.Length; l++) { newList[l] = string.Format("{0:X2}: {1}", ROM.MusicNumbers[l], newList[l]); } } return(newList); }
public TilesetChooser() { InitializeComponent(); if (Properties.Settings.Default.mdi) { this.MdiParent = MdiParentForm.instance; } LanguageManager.ApplyToContainer(this, "TilesetChooser"); // Add tilesets to list int index = 0; string[] parsedlist = new string[76]; foreach (string name in LanguageManager.GetList("Tilesets")) { string trimmedname = name.Trim(); if (trimmedname == "") { continue; } parsedlist[index] = trimmedname; index += 1; } tilesetComboBox.Items.AddRange(parsedlist); this.Icon = Properties.Resources.nsmbe; }
private void populateListBox(ListBox listBox, int maxID, string listName) { List <String> strings = LanguageManager.GetList(listName); listBox.BeginUpdate(); listBox.Items.Clear(); for (int i = 0; i < maxID; i++) { listBox.Items.Add(string.Format(LanguageManager.Get("BehaviorEditor", "unknown"), i)); } foreach (string item in strings) { int where = item.IndexOf('='); int idx; if (item.StartsWith("0x")) { idx = int.Parse(item.Substring(2, where - 2), System.Globalization.NumberStyles.AllowHexSpecifier); } else { idx = int.Parse(item.Substring(0, where)); } string text = item.Substring(where + 1); listBox.Items[idx] = text; } listBox.EndUpdate(); }
private void setData(uint data, bool updateHex) { currentFlags = ((data & 0xFFFF0000) >> 16) | ((data & 0xF00) << 8); currentSubType = (int)(data & 0xF000) >> 12; currentParam = (int)data & 0xFF; DataUpdateFlag++; // populate the simple fields for (int i = 0; i < 20; i++) { flagsListBox.SetItemChecked(i, (currentFlags & (1 << i)) != 0); } subTypeComboBox.SelectedIndex = currentSubType; // set up the pipe/door stuff pipeDoorMainTypeComboBox.Items.AddRange( LanguageManager.GetList("DoorPipeMainSelection").ToArray()); populateListBox(pipeDoorTypeListBox, 32, "PipeTileType"); updateParamTypeAndData(); if (updateHex) { updateHexEditor(); } DataUpdateFlag--; Visible = true; }
public LevelConfig(LevelEditorControl EdControl) { InitializeComponent(); this.EdControl = EdControl; this.Level = EdControl.Level; tabControl1.SelectTab(0); LanguageManager.ApplyToContainer(this, "LevelConfig"); // Load lists loadList("Foregrounds", bgTopLayerComboBox); loadList("Backgrounds", bgBottomLayerComboBox); loadList("Tilesets", tilesetComboBox); // Load modifier lists ComboBox target = null; foreach (string name in LanguageManager.GetList("Modifiers")) { string trimmedname = name.Trim(); if (trimmedname == "") { continue; } if (trimmedname[0] == '-') { switch (trimmedname) { case "-1": target = set1ComboBox; break; case "-2": target = set2ComboBox; break; case "-3": target = set3ComboBox; break; case "-4": target = set4ComboBox; break; case "-5": target = set5ComboBox; break; case "-6": target = set6ComboBox; break; case "-7": target = set7ComboBox; break; case "-8": target = set8ComboBox; break; case "-9": target = set9ComboBox; break; case "-10": target = set10ComboBox; break; case "-16": target = set16ComboBox; break; } } else { target.Items.Add(trimmedname); } } }
public EntranceEditor(LevelEditorControl ec) { InitializeComponent(); EdControl = ec; UpdateList(); if (entranceTypeComboBox.Items.Count == 0) { entranceTypeComboBox.Items.AddRange(LanguageManager.GetList("EntranceTypes").ToArray()); } LanguageManager.ApplyToContainer(this, "EntranceEditor"); }
public ViewEditor(LevelEditorControl EdControl, List <NSMBView> l, bool EdVi) { InitializeComponent(); this.EdControl = EdControl; this.lst = l; EditingViews = EdVi; LanguageManager.ApplyToContainer(this, "ViewEditor"); music.Items.AddRange(ROM.UserInfo.getFullList("Music").ToArray()); lightList.Items.AddRange(LanguageManager.GetList("3DLighting").ToArray()); UpdateList(); }
public BehaviorEditor() { InitializeComponent(); Visible = false; // Set up stuff that won't change flagsListBox.Items.AddRange( LanguageManager.GetList("BehaviourFlags").ToArray()); subTypeComboBox.Items.AddRange( LanguageManager.GetList("TileSubTypes").ToArray()); }
private void LoadLevelNames() { List <string> LevelNames = LanguageManager.GetList("LevelNames"); TreeNode WorldNode = null; string WorldID = null; TreeNode LevelNode; TreeNode AreaNode; for (int NameIdx = 0; NameIdx < LevelNames.Count; NameIdx++) { LevelNames[NameIdx] = LevelNames[NameIdx].Trim(); if (LevelNames[NameIdx] == "") { continue; } if (LevelNames[NameIdx][0] == '-') { // Create a world string[] ParseWorld = LevelNames[NameIdx].Substring(1).Split('|'); WorldNode = levelTreeView.Nodes.Add("ln" + NameIdx.ToString(), ParseWorld[0]); WorldID = ParseWorld[1]; } else { // Create a level string[] ParseLevel = LevelNames[NameIdx].Split('|'); if (ParseLevel[2] == "1") { // One area only; no need for a subfolder here LevelNode = WorldNode.Nodes.Add("ln" + NameIdx.ToString(), ParseLevel[0]); LevelNode.Tag = WorldID + ParseLevel[1] + "_1"; } else { // Create a subfolder LevelNode = WorldNode.Nodes.Add("ln" + NameIdx.ToString(), ParseLevel[0]); int AreaCount = int.Parse(ParseLevel[2]); for (int AreaIdx = 1; AreaIdx <= AreaCount; AreaIdx++) { AreaNode = LevelNode.Nodes.Add("ln" + NameIdx.ToString() + "a" + AreaIdx.ToString(), "Area " + AreaIdx.ToString()); AreaNode.Tag = WorldID + ParseLevel[1] + "_" + AreaIdx.ToString(); } } } } }
public GoodTabsPanel(LevelEditorControl EdControl) { InitializeComponent(); this.EdControl = EdControl; ToolTips = LanguageManager.GetList("TabText"); images = new ImageList(); images.ColorDepth = ColorDepth.Depth32Bit; images.Images.Add(Properties.Resources.config); images.Images.Add(Properties.Resources.block); images.Images.Add(Properties.Resources.bug); images.Images.Add(Properties.Resources.door); images.Images.Add(Properties.Resources.views); images.Images.Add(Properties.Resources.zones); images.Images.Add(Properties.Resources.paths); images.Images.Add(Properties.Resources.paths_progress); tabControl1.ImageList = images; objects = new ObjectEditor(EdControl); sprites = new SpriteEditor(EdControl); entrances = new EntranceEditor(EdControl); views = new ViewEditor(EdControl, EdControl.Level.Views, true); zones = new ViewEditor(EdControl, EdControl.Level.Zones, false); paths = new PathEditor(EdControl, EdControl.Level.Paths); progresspaths = new PathEditor(EdControl, EdControl.Level.ProgressPaths); config = new LevelConfig(EdControl); config.LoadSettings(); EdControl.config = config; controls = new Control[] { config, objects, sprites, entrances, views, zones, paths, progresspaths }; foreach (Control c in controls) { AddTab(c); } tabControl1.SelectedIndex = 1; //Select nothing SelectObjects(new List <LevelItem>()); }
private void RenameBtn_Click(object sender, EventArgs e) { if (tilesetListBox.SelectedIndex < 2) { MessageBox.Show(LanguageManager.Get("TilesetList", "errorRename")); return; } string newName; if (textForm.ShowDialog(LanguageManager.Get("TilesetList", "renamePrompt"), tilesetListBox.SelectedItem.ToString(), out newName) == DialogResult.OK) { if (newName == string.Empty) { ROM.UserInfo.removeListItem("Tilesets", tilesetListBox.SelectedIndex - 2, true); tilesetListBox.Items[tilesetListBox.SelectedIndex] = LanguageManager.GetList("Tilesets")[tilesetListBox.SelectedIndex - 2]; return; } ROM.UserInfo.setListItem("Tilesets", tilesetListBox.SelectedIndex - 2, newName, true); tilesetListBox.Items[tilesetListBox.SelectedIndex] = newName; } }
public void createDescriptions(int tilesetNum) { List <string> descList = new List <string>(); for (int l = 0; l < 256; l++) { descList.Add(""); } if (tilesetNum == 65535) { List <string> defaults = LanguageManager.GetList("ObjNotes"); for (int l = 0; l < defaults.Count; l++) { int idx = defaults[l].IndexOf("="); int num; if (int.TryParse(defaults[l].Substring(0, idx), out num)) { descList[num] = defaults[l].Substring(idx + 1); } } } descriptions.Add(tilesetNum, descList); }
public string ToStringNormal() { return(String.Format("{0}: {1} ({2},{3})", Number, LanguageManager.GetList("EntranceTypes")[Type], X, Y)); }
public override string ToString() { return(string.Format(LanguageManager.GetList("UndoActions")[24], LanguageManager.Get("PathEditor", PropNum + 7).Replace(":", ""))); }
private void renameBtn_Click(object sender, EventArgs e) { if (musicList.SelectedIndex == -1) { return; } string newName; string oldName = musicList.SelectedItem.ToString(); oldName = oldName.Substring(oldName.IndexOf(" ") + 1); if (textForm.ShowDialog(LanguageManager.Get("LevelChooser", "rnmmusic"), oldName, out newName) == DialogResult.OK) { if (newName == string.Empty) { ROM.UserInfo.removeListItem("Music", musicList.SelectedIndex, true); musicList.Items[musicList.SelectedIndex] = string.Format("{0:X2}: {1}", ROM.MusicNumbers[musicList.SelectedIndex], LanguageManager.GetList("Music")[musicList.SelectedIndex]); return; } ROM.UserInfo.setListItem("Music", musicList.SelectedIndex, newName, true); musicList.Items[musicList.SelectedIndex] = string.Format("{0:X2}: {1}", ROM.MusicNumbers[musicList.SelectedIndex], newName); } }
private void RenameBtn_Click(object sender, EventArgs e) { string newName; BackgroundEntry bg = tilesetListBox.SelectedItem as BackgroundEntry; string listName = bg.topLayer ? "Foregrounds" : "Backgrounds"; if (textForm.ShowDialog(LanguageManager.Get("BackgroundList", "renamePrompt"), bg.name, out newName) == DialogResult.OK) { if (newName == string.Empty) { ROM.UserInfo.removeListItem(listName, bg.id, true); tilesetListBox.Items[tilesetListBox.SelectedIndex] = new BackgroundEntry(bg.topLayer, bg.id, LanguageManager.GetList(listName)[bg.id]); return; } ROM.UserInfo.setListItem(listName, bg.id, newName, true); tilesetListBox.Items[tilesetListBox.SelectedIndex] = new BackgroundEntry(bg.topLayer, bg.id, newName); } }
public override string ToString() { return(LanguageManager.GetList("UndoActions")[20]); }
public override string ToString() { return(string.Format(LanguageManager.GetList("UndoActions")[16], LanguageManager.Get("EntranceEditor", PropNum + 5).Replace(":", ""))); }
public void LoadTilesets(ushort TilesetID, int JyotyuPalOverride) { Tilesets = new NSMBTileset[3]; Console.WriteLine("JyotyuPalOverride = {0}, JyotyuPal offset = {1}...", JyotyuPalOverride, ROM.Overlay0[ROM.GetOffset(ROM.Data.Table_Jyotyu_NCL) + JyotyuPalOverride]); byte JyotyuPalID = ROM.Overlay0[ROM.GetOffset(ROM.Data.Table_Jyotyu_NCL) + JyotyuPalOverride]; File JyotyuPalFile = null; if (JyotyuPalID == 1) { JyotyuPalFile = ROM.FS.getFileByName("d_2d_A_J_jyotyu_B_ncl.bin"); } else if (JyotyuPalID == 2) { JyotyuPalFile = ROM.FS.getFileByName("d_2d_A_J_jyotyu_R_ncl.bin"); } else if (JyotyuPalID == 3) { JyotyuPalFile = ROM.FS.getFileByName("d_2d_A_J_jyotyu_W_ncl.bin"); } else { JyotyuPalFile = ROM.FS.getFileByName("d_2d_A_J_jyotyu_ncl.bin"); } Tilesets[0] = new NSMBTileset( ROM.FS.getFileByName("d_2d_A_J_jyotyu_ncg.bin"), JyotyuPalFile, ROM.FS.getFileByName("d_2d_PA_A_J_jyotyu.bin"), ROM.FS.getFileByName("A_J_jyotyu.bin"), ROM.FS.getFileByName("A_J_jyotyu_hd.bin"), null, true, 0); LoadTileset1(TilesetID); Tilesets[2] = new NSMBTileset( ROM.FS.getFileByName("d_2d_I_S_tikei_nohara_ncg.bin"), ROM.FS.getFileByName("d_2d_I_S_tikei_nohara_ncl.bin"), ROM.FS.getFileByName("d_2d_PA_I_S_nohara.bin"), ROM.FS.getFileByName("I_S_nohara.bin"), ROM.FS.getFileByName("I_S_nohara_hd.bin"), ROM.FS.getFileByName("NoHaRaSubUnitChangeData.bin"), false, 2); // Patch in a bunch of overrides to the normal tileset // Now works directly on the map16 data Tilesets[0].UseOverrides = true; Tilesets[0].Overrides[36] = 135; Tilesets[0].Overrides[112] = 26; Tilesets[0].Overrides[113] = 27; Tilesets[0].Overrides[114] = 53; Tilesets[0].Overrides[115] = 55; Tilesets[0].Overrides[116] = 28; Tilesets[0].Overrides[117] = 57; Tilesets[0].Overrides[118] = 0; Tilesets[0].Overrides[119] = 1; Tilesets[0].Overrides[120] = 4; Tilesets[0].Overrides[121] = 5; Tilesets[0].Overrides[122] = 30; Tilesets[0].Overrides[123] = 31; Tilesets[0].Overrides[124] = 8; Tilesets[0].Overrides[125] = 9; Tilesets[0].Overrides[126] = 20; Tilesets[0].Overrides[127] = 21; Tilesets[0].Overrides[128] = 24; Tilesets[0].Overrides[129] = 25; Tilesets[0].Overrides[132] = 29; Tilesets[0].Overrides[130] = 54; Tilesets[0].Overrides[131] = 56; Tilesets[0].Overrides[133] = 58; Tilesets[0].Overrides[134] = 2; Tilesets[0].Overrides[135] = 3; Tilesets[0].Overrides[136] = 6; Tilesets[0].Overrides[137] = 7; Tilesets[0].Overrides[138] = 12; Tilesets[0].Overrides[139] = 13; Tilesets[0].Overrides[140] = 10; Tilesets[0].Overrides[141] = 11; Tilesets[0].Overrides[142] = 22; Tilesets[0].Overrides[143] = 23; Tilesets[0].Overrides[145] = 32; Tilesets[0].Overrides[146] = 19; Tilesets[0].Overrides[147] = 17; Tilesets[0].Overrides[148] = 18; Tilesets[0].Overrides[149] = 14; Tilesets[0].Overrides[150] = 22; Tilesets[0].Overrides[151] = 23; Tilesets[0].Overrides[152] = 71; Tilesets[0].Overrides[153] = 72; Tilesets[0].Overrides[154] = 15; Tilesets[0].Overrides[155] = 16; Tilesets[0].Overrides[156] = 20; Tilesets[0].Overrides[157] = 21; Tilesets[0].Overrides[158] = 28; Tilesets[0].Overrides[159] = 29; Tilesets[0].Overrides[160] = 71; Tilesets[0].Overrides[161] = 72; Tilesets[0].Overrides[171] = 53; Tilesets[0].Overrides[172] = 57; Tilesets[0].Overrides[173] = 55; Tilesets[0].Overrides[174] = 26; Tilesets[0].Overrides[175] = 27; Tilesets[0].Overrides[187] = 54; Tilesets[0].Overrides[188] = 58; Tilesets[0].Overrides[189] = 56; Tilesets[0].Overrides[190] = 24; Tilesets[0].Overrides[191] = 25; Tilesets[0].Overrides[192] = 59; Tilesets[0].Overrides[193] = 63; Tilesets[0].Overrides[194] = 61; Tilesets[0].Overrides[195] = 65; Tilesets[0].Overrides[196] = 69; Tilesets[0].Overrides[197] = 67; Tilesets[0].Overrides[198] = 33; Tilesets[0].Overrides[199] = 34; Tilesets[0].Overrides[200] = 41; Tilesets[0].Overrides[201] = 42; Tilesets[0].Overrides[202] = 37; Tilesets[0].Overrides[203] = 38; Tilesets[0].Overrides[204] = 47; Tilesets[0].Overrides[205] = 48; Tilesets[0].Overrides[206] = 51; Tilesets[0].Overrides[207] = 52; Tilesets[0].Overrides[208] = 60; Tilesets[0].Overrides[209] = 64; Tilesets[0].Overrides[210] = 62; Tilesets[0].Overrides[211] = 66; Tilesets[0].Overrides[212] = 70; Tilesets[0].Overrides[213] = 68; Tilesets[0].Overrides[214] = 35; Tilesets[0].Overrides[215] = 36; Tilesets[0].Overrides[216] = 43; Tilesets[0].Overrides[217] = 44; Tilesets[0].Overrides[218] = 39; Tilesets[0].Overrides[219] = 40; Tilesets[0].Overrides[220] = 49; Tilesets[0].Overrides[221] = 50; Tilesets[0].Overrides[222] = 45; Tilesets[0].Overrides[223] = 46; Tilesets[0].Overrides[228] = 41; Tilesets[0].Overrides[229] = 42; Tilesets[0].Overrides[230] = 45; Tilesets[0].Overrides[231] = 65; Tilesets[0].Overrides[232] = 69; Tilesets[0].Overrides[233] = 67; Tilesets[0].Overrides[234] = 47; Tilesets[0].Overrides[235] = 48; Tilesets[0].Overrides[236] = 52; Tilesets[0].Overrides[237] = 59; Tilesets[0].Overrides[238] = 63; Tilesets[0].Overrides[239] = 61; Tilesets[0].Overrides[244] = 43; Tilesets[0].Overrides[245] = 44; Tilesets[0].Overrides[246] = 46; Tilesets[0].Overrides[247] = 66; Tilesets[0].Overrides[248] = 70; Tilesets[0].Overrides[249] = 68; Tilesets[0].Overrides[250] = 49; Tilesets[0].Overrides[251] = 50; Tilesets[0].Overrides[252] = 51; Tilesets[0].Overrides[253] = 60; Tilesets[0].Overrides[254] = 64; Tilesets[0].Overrides[255] = 62; // Tilesets[0].repaintAllMap16(); RepatchBlocks(Properties.Settings.Default.SmallBlockOverlays); // Enable notes for the normal tileset Tilesets[0].UseNotes = true; if (ROM.UserInfo.descriptions.ContainsKey(65535)) { Tilesets[0].ObjNotes = ROM.UserInfo.descriptions[65535].ToArray(); } else { Tilesets[0].ObjNotes = GetDescriptions(LanguageManager.GetList("ObjNotes")); } if (ROM.UserInfo.descriptions.ContainsKey(TilesetID)) { Tilesets[1].ObjNotes = ROM.UserInfo.descriptions[TilesetID].ToArray();; Tilesets[1].UseNotes = true; } if (ROM.UserInfo.descriptions.ContainsKey(65534)) { Tilesets[2].ObjNotes = ROM.UserInfo.descriptions[65534].ToArray(); Tilesets[2].UseNotes = true; } }
public DataFinder() { InitializeComponent(); if (Properties.Settings.Default.mdi) { this.MdiParent = MdiParentForm.instance; } List <string> LevelNames = LanguageManager.GetList("LevelNames"); Levels = new List <string>(); LevelFiles = new List <string>(); string WorldID = null; for (int NameIdx = 0; NameIdx < LevelNames.Count; NameIdx++) { LevelNames[NameIdx] = LevelNames[NameIdx].Trim(); if (LevelNames[NameIdx] == "") { continue; } if (LevelNames[NameIdx][0] == '-') { string[] ParseWorld = LevelNames[NameIdx].Substring(1).Split('|'); WorldID = ParseWorld[1]; } else { string[] ParseLevel = LevelNames[NameIdx].Split('|'); if (ParseLevel[2] == "1") { Levels.Add(ParseLevel[0]); LevelFiles.Add(WorldID + ParseLevel[1] + "_1"); } else { int AreaCount = int.Parse(ParseLevel[2]); for (int AreaIdx = 1; AreaIdx <= AreaCount; AreaIdx++) { Levels.Add(ParseLevel[0] + " area " + AreaIdx.ToString()); LevelFiles.Add(WorldID + ParseLevel[1] + "_" + AreaIdx.ToString()); } } } } //now pad the level names to the same size to get the data aligned !!! int longestName = 0; foreach (string s in Levels) { if (s.Length > longestName) { longestName = s.Length; } } for (int i = 0; i < Levels.Count; i++) { int pad = longestName - Levels[i].Length; for (int j = 0; j < pad; j++) { Levels[i] += " "; } } this.Icon = Properties.Resources.nsmbe; }