public TitleScreen() { InitializeComponent(); AllowDrop = true; DragEnter += tabMain_DragEnter; DragDrop += tabMain_DragDrop; PB_Image.AllowDrop = true; PB_Image.DragEnter += tabMain_DragEnter; PB_Image.DragDrop += tabMain_DragDrop; // Add tooltip to image new ToolTip().SetToolTip(PB_Image, "Click to toggle Green Screen\nRightClick for I/O\nCTRL+Click for Copy->Clipboard."); // Add context menus ContextMenuStrip mnu = new ContextMenuStrip(); ToolStripMenuItem mnuR = new ToolStripMenuItem("Replace with..."); ToolStripMenuItem mnuS = new ToolStripMenuItem("Save as..."); // Assign event handlers mnuR.Click += clickOpen; mnuS.Click += clickSave; // Add to main context menu mnu.Items.AddRange(new ToolStripItem[] { mnuR, mnuS, }); // Assign PB_Image.ContextMenuStrip = mnu; // Set up languages string[] languages = (Main.oras ? new[] { "JP1" } : new string[] {}).Concat(new[] { "DE", "ES", "FR", "IT", "JP", "KO", "EN" }).ToArray(); string[] games = Main.oras ? new[] { "OR", "AS" } : new[] { "X", "Y" }; for (int i = 0; i < darcs.Length / 2; i++) { CB_DARC.Items.Add($"{games[0]} - {languages[i]}"); } for (int i = darcs.Length / 2; i < darcs.Length; i++) { CB_DARC.Items.Add($"{games[1]} - {languages[i - darcs.Length/2]}"); } // Load darcs for (int i = 0; i < darcs.Length; i++) { // Get DARC name and assign the decompressed name usedFiles[i] = "titlescreen\\" + (compressed ? "dec_" : "") + Path.GetFileName(files[darcFiles[i]]); if (compressed) // Decompress file (XY does not compress) { CTR.LZSS.Decompress(files[darcFiles[i]], usedFiles[i]); } // Read decompressed file var data = File.ReadAllBytes(usedFiles[i]); // Find darc data offset (ignore header) int pos = 0; while (BitConverter.ToUInt32(data, pos) != 0x63726164) { pos += 4; if (pos >= data.Length) { throw new Exception("Invalid DARC?\n\n" + usedFiles[i]); } } var darcData = data.Skip(pos).ToArray(); darcs[i] = new CTR.DARC(darcData); } CB_DARC.SelectedIndex = CB_DARC.Items.Count - 1; // last (english game2) }
public TitleScreenEditor6() { InitializeComponent(); AllowDrop = true; DragEnter += tabMain_DragEnter; DragDrop += tabMain_DragDrop; PB_Image.AllowDrop = true; PB_Image.DragEnter += tabMain_DragEnter; PB_Image.DragDrop += tabMain_DragDrop; // Add tooltip to image new ToolTip().SetToolTip(PB_Image, "Click to toggle Green Screen\nRightClick for I/O\nCTRL+Click for Copy->Clipboard."); // Add context menus ContextMenuStrip mnu = new ContextMenuStrip(); ToolStripMenuItem mnuR = new ToolStripMenuItem("Replace with..."); ToolStripMenuItem mnuS = new ToolStripMenuItem("Save as..."); // Assign event handlers mnuR.Click += clickOpen; mnuS.Click += clickSave; // Add to main context menu mnu.Items.AddRange(new ToolStripItem[] { mnuR, mnuS, }); // Assign PB_Image.ContextMenuStrip = mnu; // Set up languages string[] languages = (Main.Config.ORAS ? new[] {"JP1"} : new string[] {}).Concat(new[] {"DE", "ES", "FR", "IT", "JP", "KO", "EN"}).ToArray(); string[] games = Main.Config.ORAS ? new[] {"OR", "AS"} : new[] {"X", "Y"}; for (int i = 0; i < darcs.Length/2; i++) CB_DARC.Items.Add($"{games[0]} - {languages[i]}"); for (int i = darcs.Length/2; i < darcs.Length; i++) CB_DARC.Items.Add($"{games[1]} - {languages[i - darcs.Length/2]}"); // Load darcs for (int i = 0; i < darcs.Length; i++) { // Get DARC name and assign the decompressed name usedFiles[i] = "titlescreen\\" + (compressed ? "dec_" : "") + Path.GetFileName(files[darcFiles[i]]); if (compressed) // Decompress file (XY does not compress) CTR.LZSS.Decompress(files[darcFiles[i]], usedFiles[i]); // Read decompressed file var data = File.ReadAllBytes(usedFiles[i]); // Find darc data offset (ignore header) int pos = 0; while (BitConverter.ToUInt32(data, pos) != 0x63726164) { pos += 4; if (pos >= data.Length) throw new Exception("Invalid DARC?\n\n" + usedFiles[i]); } var darcData = data.Skip(pos).ToArray(); darcs[i] = new CTR.DARC(darcData); } CB_DARC.SelectedIndex = CB_DARC.Items.Count - 1; // last (english game2) }