diff --git a/NUS Downloader/Database.cs b/NUS Downloader/Database.cs index c7a4471..44a7f25 100644 --- a/NUS Downloader/Database.cs +++ b/NUS Downloader/Database.cs @@ -19,6 +19,7 @@ namespace NUS_Downloader private string IosTag = "IOS"; private string VcTag = "VC"; private string WwTag = "WW"; + private string UpdateTag = "UPD"; private string[] VcConsoles = new string[11] { "C64", "GEN", "MSX", "N64", "NEO", "NES", "SMS", "SNES", "TG16", "TGCD", "ARC" }; @@ -574,5 +575,47 @@ namespace NUS_Downloader return regionItems; } + + public ToolStripMenuItem[] LoadScripts() + { + if (databaseString.Length < 1) + { + throw new Exception("Load the database into a memory stream first!"); + } + + XmlDocument xDoc = new XmlDocument(); + xDoc.LoadXml(databaseString); + + XmlNodeList ScriptXMLNodes = xDoc.GetElementsByTagName(UpdateTag); + + ToolStripMenuItem[] scriptCollection = new ToolStripMenuItem[ScriptXMLNodes.Count]; + + for (int x = 0; x < ScriptXMLNodes.Count; x++) + { + ToolStripMenuItem XMLToolStripItem = new ToolStripMenuItem(); + XmlAttributeCollection XMLAttributes = ScriptXMLNodes[x].Attributes; + XmlNodeList ChildrenOfTheNode = ScriptXMLNodes[x].ChildNodes; + + for (int z = 0; z < ChildrenOfTheNode.Count; z++) + { + switch (ChildrenOfTheNode[z].Name) + { + case "name": + XMLToolStripItem.Text = ChildrenOfTheNode[z].InnerText; + break; + case "script": + XMLToolStripItem.ToolTipText = ChildrenOfTheNode[z].InnerText; + break; + default: + break; + } + XMLToolStripItem.Image = Properties.Resources.script_start; + + } + scriptCollection[x] = XMLToolStripItem; + } + + return scriptCollection; + } } } diff --git a/NUS Downloader/Form1.Designer.cs b/NUS Downloader/Form1.Designer.cs index 34fc003..08cc985 100644 --- a/NUS Downloader/Form1.Designer.cs +++ b/NUS Downloader/Form1.Designer.cs @@ -63,14 +63,19 @@ namespace NUS_Downloader this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.RegionCodesList = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); + this.updateDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.extrasStrip = new System.Windows.Forms.ContextMenuStrip(this.components); + this.loadInfoFromTMDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.proxySettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); + this.aboutNUSDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.proxyBox = new System.Windows.Forms.GroupBox(); this.label13 = new System.Windows.Forms.Label(); this.label12 = new System.Windows.Forms.Label(); this.ProxyUser = new System.Windows.Forms.TextBox(); this.SaveProxyBtn = new System.Windows.Forms.Button(); + this.ProxyAssistBtn = new System.Windows.Forms.Button(); this.ProxyURL = new System.Windows.Forms.TextBox(); this.ProxyVerifyBox = new System.Windows.Forms.GroupBox(); this.SaveProxyPwdPermanentBtn = new System.Windows.Forms.Button(); @@ -81,7 +86,15 @@ namespace NUS_Downloader this.consoleCBox = new System.Windows.Forms.ComboBox(); this.scriptsbutton = new System.Windows.Forms.Button(); this.scriptsStrip = new System.Windows.Forms.ContextMenuStrip(this.components); + this.scriptsLocalMenuEntry = new System.Windows.Forms.ToolStripMenuItem(); + this.scriptsDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.loadNUSScriptToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.emulateUpdate = new System.Windows.Forms.ToolStripMenuItem(); + this.uSANTSCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.europePALToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.japanNTSCJToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.koreaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.iosPatchGroupBox = new System.Windows.Forms.GroupBox(); this.label2 = new System.Windows.Forms.Label(); this.iosPatchesListBox = new System.Windows.Forms.CheckedListBox(); @@ -89,28 +102,12 @@ namespace NUS_Downloader this.richPanel = new System.Windows.Forms.Panel(); this.saveaswadbtn = new System.Windows.Forms.Button(); this.iosPatchCheckbox = new System.Windows.Forms.CheckBox(); - this.ProxyAssistBtn = new System.Windows.Forms.Button(); this.databaseButton = new System.Windows.Forms.Button(); this.keepenccontents = new System.Windows.Forms.CheckBox(); this.clearButton = new System.Windows.Forms.Button(); this.packbox = new System.Windows.Forms.CheckBox(); this.decryptbox = new System.Windows.Forms.CheckBox(); this.localuse = new System.Windows.Forms.CheckBox(); - this.updateDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.loadInfoFromTMDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.proxySettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.aboutNUSDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.scriptsLocalMenuEntry = new System.Windows.Forms.ToolStripMenuItem(); - this.scriptsDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.PALMassUpdate = new System.Windows.Forms.ToolStripMenuItem(); - this.NTSCMassUpdate = new System.Windows.Forms.ToolStripMenuItem(); - this.KoreaMassUpdate = new System.Windows.Forms.ToolStripMenuItem(); - this.loadNUSScriptToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.emulateUpdate = new System.Windows.Forms.ToolStripMenuItem(); - this.uSANTSCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.europePALToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.japanNTSCJToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.koreaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.titleversion = new wmgCMS.WaterMarkTextBox(); this.titleidbox = new wmgCMS.WaterMarkTextBox(); this.dlprogress = new wyDay.Controls.Windows7ProgressBar(); @@ -324,6 +321,14 @@ namespace NUS_Downloader this.toolStripSeparator4.Name = "toolStripSeparator4"; this.toolStripSeparator4.Size = new System.Drawing.Size(160, 6); // + // updateDatabaseToolStripMenuItem + // + this.updateDatabaseToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.database_save; + this.updateDatabaseToolStripMenuItem.Name = "updateDatabaseToolStripMenuItem"; + this.updateDatabaseToolStripMenuItem.Size = new System.Drawing.Size(163, 22); + this.updateDatabaseToolStripMenuItem.Text = "Update Database"; + this.updateDatabaseToolStripMenuItem.Click += new System.EventHandler(this.updateDatabaseToolStripMenuItem_Click); + // // extrasStrip // this.extrasStrip.AllowMerge = false; @@ -336,16 +341,40 @@ namespace NUS_Downloader this.extrasStrip.Name = "extrasStrip"; this.extrasStrip.Size = new System.Drawing.Size(183, 82); // + // loadInfoFromTMDToolStripMenuItem + // + this.loadInfoFromTMDToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.page_white_magnify; + this.loadInfoFromTMDToolStripMenuItem.Name = "loadInfoFromTMDToolStripMenuItem"; + this.loadInfoFromTMDToolStripMenuItem.Size = new System.Drawing.Size(182, 22); + this.loadInfoFromTMDToolStripMenuItem.Text = "Load Info from TMD"; + this.loadInfoFromTMDToolStripMenuItem.Click += new System.EventHandler(this.loadInfoFromTMDToolStripMenuItem_Click); + // // toolStripSeparator3 // this.toolStripSeparator3.Name = "toolStripSeparator3"; this.toolStripSeparator3.Size = new System.Drawing.Size(179, 6); // + // proxySettingsToolStripMenuItem + // + this.proxySettingsToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.server_link; + this.proxySettingsToolStripMenuItem.Name = "proxySettingsToolStripMenuItem"; + this.proxySettingsToolStripMenuItem.Size = new System.Drawing.Size(182, 22); + this.proxySettingsToolStripMenuItem.Text = "Proxy Settings"; + this.proxySettingsToolStripMenuItem.Click += new System.EventHandler(this.proxySettingsToolStripMenuItem_Click); + // // toolStripSeparator6 // this.toolStripSeparator6.Name = "toolStripSeparator6"; this.toolStripSeparator6.Size = new System.Drawing.Size(179, 6); // + // aboutNUSDToolStripMenuItem + // + this.aboutNUSDToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.information; + this.aboutNUSDToolStripMenuItem.Name = "aboutNUSDToolStripMenuItem"; + this.aboutNUSDToolStripMenuItem.Size = new System.Drawing.Size(182, 22); + this.aboutNUSDToolStripMenuItem.Text = "About NUSD"; + this.aboutNUSDToolStripMenuItem.Click += new System.EventHandler(this.aboutNUSDToolStripMenuItem_Click); + // // proxyBox // this.proxyBox.BackColor = System.Drawing.Color.White; @@ -400,6 +429,17 @@ namespace NUS_Downloader this.SaveProxyBtn.UseVisualStyleBackColor = true; this.SaveProxyBtn.Click += new System.EventHandler(this.SaveProxyBtn_Click); // + // ProxyAssistBtn + // + this.ProxyAssistBtn.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.ProxyAssistBtn.Image = global::NUS_Downloader.Properties.Resources.help; + this.ProxyAssistBtn.Location = new System.Drawing.Point(177, 79); + this.ProxyAssistBtn.Name = "ProxyAssistBtn"; + this.ProxyAssistBtn.Size = new System.Drawing.Size(29, 26); + this.ProxyAssistBtn.TabIndex = 28; + this.ProxyAssistBtn.UseVisualStyleBackColor = true; + this.ProxyAssistBtn.Click += new System.EventHandler(this.ProxyAssistBtn_Click); + // // ProxyURL // this.ProxyURL.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; @@ -514,11 +554,72 @@ namespace NUS_Downloader this.scriptsStrip.ShowItemToolTips = false; this.scriptsStrip.Size = new System.Drawing.Size(220, 98); // + // scriptsLocalMenuEntry + // + this.scriptsLocalMenuEntry.Enabled = false; + this.scriptsLocalMenuEntry.Image = global::NUS_Downloader.Properties.Resources.script_code; + this.scriptsLocalMenuEntry.Name = "scriptsLocalMenuEntry"; + this.scriptsLocalMenuEntry.Size = new System.Drawing.Size(219, 22); + this.scriptsLocalMenuEntry.Text = "Scripts (Local)"; + // + // scriptsDatabaseToolStripMenuItem + // + this.scriptsDatabaseToolStripMenuItem.Enabled = false; + this.scriptsDatabaseToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.script_code_red; + this.scriptsDatabaseToolStripMenuItem.Name = "scriptsDatabaseToolStripMenuItem"; + this.scriptsDatabaseToolStripMenuItem.Size = new System.Drawing.Size(219, 22); + this.scriptsDatabaseToolStripMenuItem.Text = "Scripts (Database)"; + // + // loadNUSScriptToolStripMenuItem + // + this.loadNUSScriptToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.script_go; + this.loadNUSScriptToolStripMenuItem.Name = "loadNUSScriptToolStripMenuItem"; + this.loadNUSScriptToolStripMenuItem.Size = new System.Drawing.Size(219, 22); + this.loadNUSScriptToolStripMenuItem.Text = "Load NUS Script"; + this.loadNUSScriptToolStripMenuItem.Click += new System.EventHandler(this.loadNUSScriptToolStripMenuItem_Click); + // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; this.toolStripSeparator2.Size = new System.Drawing.Size(216, 6); // + // emulateUpdate + // + this.emulateUpdate.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.uSANTSCToolStripMenuItem, + this.europePALToolStripMenuItem, + this.japanNTSCJToolStripMenuItem, + this.koreaToolStripMenuItem}); + this.emulateUpdate.Image = global::NUS_Downloader.Properties.Resources.server_connect; + this.emulateUpdate.Name = "emulateUpdate"; + this.emulateUpdate.Size = new System.Drawing.Size(219, 22); + this.emulateUpdate.Text = "Emulate Wii System Update"; + this.emulateUpdate.DropDownItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.emulateUpdate_DropDownItemClicked); + // + // uSANTSCToolStripMenuItem + // + this.uSANTSCToolStripMenuItem.Name = "uSANTSCToolStripMenuItem"; + this.uSANTSCToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.uSANTSCToolStripMenuItem.Text = "USA"; + // + // europePALToolStripMenuItem + // + this.europePALToolStripMenuItem.Name = "europePALToolStripMenuItem"; + this.europePALToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.europePALToolStripMenuItem.Text = "EUROPE"; + // + // japanNTSCJToolStripMenuItem + // + this.japanNTSCJToolStripMenuItem.Name = "japanNTSCJToolStripMenuItem"; + this.japanNTSCJToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.japanNTSCJToolStripMenuItem.Text = "JAPAN"; + // + // koreaToolStripMenuItem + // + this.koreaToolStripMenuItem.Name = "koreaToolStripMenuItem"; + this.koreaToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.koreaToolStripMenuItem.Text = "KOREA"; + // // iosPatchGroupBox // this.iosPatchGroupBox.Controls.Add(this.label2); @@ -612,17 +713,6 @@ namespace NUS_Downloader this.iosPatchCheckbox.UseVisualStyleBackColor = true; this.iosPatchCheckbox.CheckedChanged += new System.EventHandler(this.iosPatchCheckbox_CheckedChanged); // - // ProxyAssistBtn - // - this.ProxyAssistBtn.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.ProxyAssistBtn.Image = global::NUS_Downloader.Properties.Resources.help; - this.ProxyAssistBtn.Location = new System.Drawing.Point(177, 79); - this.ProxyAssistBtn.Name = "ProxyAssistBtn"; - this.ProxyAssistBtn.Size = new System.Drawing.Size(29, 26); - this.ProxyAssistBtn.TabIndex = 28; - this.ProxyAssistBtn.UseVisualStyleBackColor = true; - this.ProxyAssistBtn.Click += new System.EventHandler(this.ProxyAssistBtn_Click); - // // databaseButton // this.databaseButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup; @@ -713,124 +803,6 @@ namespace NUS_Downloader this.localuse.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.localuse.UseVisualStyleBackColor = true; // - // updateDatabaseToolStripMenuItem - // - this.updateDatabaseToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.database_save; - this.updateDatabaseToolStripMenuItem.Name = "updateDatabaseToolStripMenuItem"; - this.updateDatabaseToolStripMenuItem.Size = new System.Drawing.Size(163, 22); - this.updateDatabaseToolStripMenuItem.Text = "Update Database"; - this.updateDatabaseToolStripMenuItem.Click += new System.EventHandler(this.updateDatabaseToolStripMenuItem_Click); - // - // loadInfoFromTMDToolStripMenuItem - // - this.loadInfoFromTMDToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.page_white_magnify; - this.loadInfoFromTMDToolStripMenuItem.Name = "loadInfoFromTMDToolStripMenuItem"; - this.loadInfoFromTMDToolStripMenuItem.Size = new System.Drawing.Size(182, 22); - this.loadInfoFromTMDToolStripMenuItem.Text = "Load Info from TMD"; - this.loadInfoFromTMDToolStripMenuItem.Click += new System.EventHandler(this.loadInfoFromTMDToolStripMenuItem_Click); - // - // proxySettingsToolStripMenuItem - // - this.proxySettingsToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.server_link; - this.proxySettingsToolStripMenuItem.Name = "proxySettingsToolStripMenuItem"; - this.proxySettingsToolStripMenuItem.Size = new System.Drawing.Size(182, 22); - this.proxySettingsToolStripMenuItem.Text = "Proxy Settings"; - this.proxySettingsToolStripMenuItem.Click += new System.EventHandler(this.proxySettingsToolStripMenuItem_Click); - // - // aboutNUSDToolStripMenuItem - // - this.aboutNUSDToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.information; - this.aboutNUSDToolStripMenuItem.Name = "aboutNUSDToolStripMenuItem"; - this.aboutNUSDToolStripMenuItem.Size = new System.Drawing.Size(182, 22); - this.aboutNUSDToolStripMenuItem.Text = "About NUSD"; - this.aboutNUSDToolStripMenuItem.Click += new System.EventHandler(this.aboutNUSDToolStripMenuItem_Click); - // - // scriptsLocalMenuEntry - // - this.scriptsLocalMenuEntry.Enabled = false; - this.scriptsLocalMenuEntry.Image = global::NUS_Downloader.Properties.Resources.script_code; - this.scriptsLocalMenuEntry.Name = "scriptsLocalMenuEntry"; - this.scriptsLocalMenuEntry.Size = new System.Drawing.Size(219, 22); - this.scriptsLocalMenuEntry.Text = "Scripts (Local)"; - // - // scriptsDatabaseToolStripMenuItem - // - this.scriptsDatabaseToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.PALMassUpdate, - this.NTSCMassUpdate, - this.KoreaMassUpdate}); - this.scriptsDatabaseToolStripMenuItem.Enabled = false; - this.scriptsDatabaseToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.script_code_red; - this.scriptsDatabaseToolStripMenuItem.Name = "scriptsDatabaseToolStripMenuItem"; - this.scriptsDatabaseToolStripMenuItem.Size = new System.Drawing.Size(219, 22); - this.scriptsDatabaseToolStripMenuItem.Text = "Scripts (Database)"; - // - // PALMassUpdate - // - this.PALMassUpdate.Enabled = false; - this.PALMassUpdate.Name = "PALMassUpdate"; - this.PALMassUpdate.Size = new System.Drawing.Size(104, 22); - this.PALMassUpdate.Text = "PAL"; - // - // NTSCMassUpdate - // - this.NTSCMassUpdate.Enabled = false; - this.NTSCMassUpdate.Name = "NTSCMassUpdate"; - this.NTSCMassUpdate.Size = new System.Drawing.Size(104, 22); - this.NTSCMassUpdate.Text = "NTSC"; - // - // KoreaMassUpdate - // - this.KoreaMassUpdate.Enabled = false; - this.KoreaMassUpdate.Name = "KoreaMassUpdate"; - this.KoreaMassUpdate.Size = new System.Drawing.Size(104, 22); - this.KoreaMassUpdate.Text = "Korea"; - // - // loadNUSScriptToolStripMenuItem - // - this.loadNUSScriptToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.script_go; - this.loadNUSScriptToolStripMenuItem.Name = "loadNUSScriptToolStripMenuItem"; - this.loadNUSScriptToolStripMenuItem.Size = new System.Drawing.Size(219, 22); - this.loadNUSScriptToolStripMenuItem.Text = "Load NUS Script"; - this.loadNUSScriptToolStripMenuItem.Click += new System.EventHandler(this.loadNUSScriptToolStripMenuItem_Click); - // - // emulateUpdate - // - this.emulateUpdate.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.uSANTSCToolStripMenuItem, - this.europePALToolStripMenuItem, - this.japanNTSCJToolStripMenuItem, - this.koreaToolStripMenuItem}); - this.emulateUpdate.Image = global::NUS_Downloader.Properties.Resources.server_connect; - this.emulateUpdate.Name = "emulateUpdate"; - this.emulateUpdate.Size = new System.Drawing.Size(219, 22); - this.emulateUpdate.Text = "Emulate Wii System Update"; - this.emulateUpdate.DropDownItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.emulateUpdate_DropDownItemClicked); - // - // uSANTSCToolStripMenuItem - // - this.uSANTSCToolStripMenuItem.Name = "uSANTSCToolStripMenuItem"; - this.uSANTSCToolStripMenuItem.Size = new System.Drawing.Size(117, 22); - this.uSANTSCToolStripMenuItem.Text = "USA"; - // - // europePALToolStripMenuItem - // - this.europePALToolStripMenuItem.Name = "europePALToolStripMenuItem"; - this.europePALToolStripMenuItem.Size = new System.Drawing.Size(117, 22); - this.europePALToolStripMenuItem.Text = "EUROPE"; - // - // japanNTSCJToolStripMenuItem - // - this.japanNTSCJToolStripMenuItem.Name = "japanNTSCJToolStripMenuItem"; - this.japanNTSCJToolStripMenuItem.Size = new System.Drawing.Size(117, 22); - this.japanNTSCJToolStripMenuItem.Text = "JAPAN"; - // - // koreaToolStripMenuItem - // - this.koreaToolStripMenuItem.Name = "koreaToolStripMenuItem"; - this.koreaToolStripMenuItem.Size = new System.Drawing.Size(117, 22); - this.koreaToolStripMenuItem.Text = "KOREA"; - // // titleversion // this.titleversion.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); @@ -977,9 +949,6 @@ namespace NUS_Downloader private System.Windows.Forms.ToolStripMenuItem scriptsLocalMenuEntry; private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripMenuItem scriptsDatabaseToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem PALMassUpdate; - private System.Windows.Forms.ToolStripMenuItem NTSCMassUpdate; - private System.Windows.Forms.ToolStripMenuItem KoreaMassUpdate; private System.Windows.Forms.ToolStripMenuItem aboutNUSDToolStripMenuItem; private System.Windows.Forms.CheckBox checkBox1; private System.Windows.Forms.Button SaveProxyPwdPermanentBtn; diff --git a/NUS Downloader/Form1.cs b/NUS Downloader/Form1.cs index 83891f5..21b1417 100644 --- a/NUS Downloader/Form1.cs +++ b/NUS Downloader/Form1.cs @@ -38,7 +38,7 @@ using System.Diagnostics; namespace NUS_Downloader { - public partial class Form1 : Form + partial class Form1 : Form { private readonly string CURRENT_DIR = Directory.GetCurrentDirectory(); @@ -115,9 +115,10 @@ namespace NUS_Downloader WriteStatus("REMEMBER TO CHANGE TO THE RELEASE CONFIGURATION AND CHANGE VERSION NUMBER BEFORE BUILDING!", warningcolor); WriteStatus("\r\n"); } + /* KoreaMassUpdate.DropDownItemClicked += new ToolStripItemClickedEventHandler(upditem_itemclicked); NTSCMassUpdate.DropDownItemClicked += new ToolStripItemClickedEventHandler(upditem_itemclicked); - PALMassUpdate.DropDownItemClicked += new ToolStripItemClickedEventHandler(upditem_itemclicked); + PALMassUpdate.DropDownItemClicked += new ToolStripItemClickedEventHandler(upditem_itemclicked);*/ // Database BGLoader this.fds = new BackgroundWorker(); @@ -251,6 +252,7 @@ namespace NUS_Downloader ClearDatabaseStrip(); FillDatabaseStrip(worker); LoadRegionCodes(); + FillDatabaseScripts(); ShowInnerToolTips(false); } @@ -259,10 +261,11 @@ namespace NUS_Downloader //this.databaseButton.Enabled = true; this.databaseButton.Text = "Database..."; this.databaseButton.Image = null; + /* if (this.KoreaMassUpdate.HasDropDownItems || this.PALMassUpdate.HasDropDownItems || this.NTSCMassUpdate.HasDropDownItems) { this.scriptsbutton.Enabled = true; - } + }*/ } private void DoAllDatabaseyStuff_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e) @@ -1375,7 +1378,6 @@ namespace NUS_Downloader // TODO: make this check InvokeRequired... if (this.InvokeRequired) { - Debug.Write("TOLDYOUSO!"); BootChecksCallback bcc = new BootChecksCallback(LoadRegionCodes); this.Invoke(bcc); return; @@ -1468,6 +1470,18 @@ namespace NUS_Downloader // Do nothing, some objects will not cast. } } + foreach (ToolStripItem item in scriptsStrip.Items) + { + try + { + ToolStripMenuItem menuitem = (ToolStripMenuItem)item; + menuitem.DropDown.ShowItemToolTips = false; + } + catch (Exception) + { + // Do nothing, some objects will not cast. + } + } } /// @@ -1561,36 +1575,6 @@ namespace NUS_Downloader return resultArray; } - /* - /// - /// Does byte[] contain byte[]? - /// - /// The large byte[]. - /// Small byte[] which may be in large one. - /// messed up int[] with offsets. - private int[] ByteArrayContainsByteArray(byte[] bigboy, byte[] littleman) - { - // bigboy.Contains(littleman); - // returns offset { cnt , ofst }; - int[] offset = new int[5]; - for (int a = 0; a < (bigboy.Length - littleman.Length); a++) - { - int matches = 0; - for (int b = 0; b < littleman.Length; b++) - { - if (bigboy[a + b] == littleman[b]) - matches += 1; - } - if (matches == littleman.Length) - { - offset[offset[0] + 1] = a; - offset[0] += 1; - } - } - - return offset; - }*/ - private WebClient ConfigureWithProxy(WebClient client) { // Proxy @@ -2422,5 +2406,25 @@ namespace NUS_Downloader iosPatchCheckbox.Checked = false; //packbox.Enabled = false; } + + private void FillDatabaseScripts() + { + Database databaseObj = new Database(); + databaseObj.LoadDatabaseToStream(Path.Combine(CURRENT_DIR, "database.xml")); + + ToolStripMenuItem[] scriptItems = databaseObj.LoadScripts(); + for (int a = 0; a < scriptItems.Length; a++) + { + scriptItems[a].DropDownItemClicked += new ToolStripItemClickedEventHandler(ScriptItem_Clicked); + + AddToolStripItemToStrip(scriptsDatabaseToolStripMenuItem, scriptItems[a]); + //SystemMenuList.DropDownItems.Add(systemItems[a]); + } + SetPropertyThreadSafe(scriptsDatabaseToolStripMenuItem, true, "Enabled"); + SetPropertyThreadSafe(scriptsDatabaseToolStripMenuItem, true, "Visible"); + } + + public void ScriptItem_Clicked(object sender, ToolStripItemClickedEventArgs e) + { } } } \ No newline at end of file diff --git a/NUS Downloader/Latest/NUS Downloader.exe b/NUS Downloader/Latest/NUS Downloader.exe index c287ba3..b12248e 100644 Binary files a/NUS Downloader/Latest/NUS Downloader.exe and b/NUS Downloader/Latest/NUS Downloader.exe differ diff --git a/NUS Downloader/NUS Downloader.csproj b/NUS Downloader/NUS Downloader.csproj index 8e93624..a7f6af2 100644 --- a/NUS Downloader/NUS Downloader.csproj +++ b/NUS Downloader/NUS Downloader.csproj @@ -121,7 +121,6 @@ - Component diff --git a/NUS Downloader/WADPacker.cs b/NUS Downloader/WADPacker.cs deleted file mode 100644 index 1e1f656..0000000 --- a/NUS Downloader/WADPacker.cs +++ /dev/null @@ -1,225 +0,0 @@ -/////////////////////////////////////////// -// NUS Downloader: WADPacker.cs // -// $Rev:: $ // -// $Author:: $ // -// $Date:: $ // -/////////////////////////////////////////// - -/////////////////////////////////////// -// Copyright (C) 2010 -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see -/////////////////////////////////////// - -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; - -namespace NUS_Downloader -{ - /// - /// Class for handling WAD Packaging. - /// - class WADPacker - { - // WAD Component Variables - private byte[] Certsys; - public byte[] Certs { get { return Certsys;} set { Certsys = value; CertChainSize = Certsys.Length; } } - private byte[] tmd; - public byte[] TMD { get { return tmd; } - set - { - tmd = value; - TMDContentCount = ContentCount(TMD); - TMDSize = 484 + (TMDContentCount * 36); - } } - public byte[] Ticket; - private int TMDContentCount; - - // WAD Contents - private byte[][] TMDContents; - public byte[][] Contents { get { return TMDContents; } - set { - TMDContents = value; - for (int a = 0; a < TMDContents.Length; a++) - { - DataSize += TMDContents[a].Length; - } - } } - - // WAD Saving Variables - public string Directory; - public string FileName; - - // TMD Informations - public string[] tmdnames; - public string[] tmdsizes; - - // WAD Header Variables - private const int HeaderSize = 0x20; - private int CertChainSize; - private const int TicketSize = 0x2A4; - private int TMDSize; - private int DataSize; - private byte[] WADMagic = new byte[8] { 0x00, 0x00, 0x00, 0x20, 0x49, 0x73, 0x00, 0x00 }; - private byte[] RESERVED_CONST = new byte[4] { 0x00, 0x00, 0x00, 0x00 }; - private byte[] TIKSIZE_CONST = new byte[4] { 0x00, 0x00, 0x02, 0xA4 }; - - // Report Status back in EventHandler - public delegate void StatusChangedEventHandler(string status); - public event StatusChangedEventHandler StatusChanged; - - - /// - /// Pads byte[]. - /// - /// The byte[] or binary to be padded. - /// How much to pad by. - /// Padded byte[] - private long PadToMultipleOf(long src, int pad) - { - long len = (src + pad - 1) / pad * pad; - return len; - } - - /// - /// Converts an integer into its equivilant byte array. - /// - /// The integer - /// Length you desire the byte[] to be. - /// - private byte[] ConvertInttoByteArray(int theInt, int arrayLen) - { - byte[] resultArray = new byte[arrayLen]; - for (int i = arrayLen - 1; i >= 0; i--) - { - resultArray[i] = (byte)((theInt >> (8 * i)) & 0xFF); - } - Array.Reverse(resultArray); - - // Fix duplication, rewrite extra to 0x00; - if (arrayLen > 4) - { - for (int i = 0; i < (arrayLen - 4); i++) - resultArray[i] = 0x00; - } - return resultArray; - } - - /// - /// Handles the size mismatch. - /// - /// The contentsize. - /// The actualsize. - void HandleMismatch(int contentsize, int actualsize) - { - if (contentsize != actualsize) - if ((contentsize - actualsize) > 16) - StatusChanged(String.Format(" (BAD Mismatch) (Dif: {0}", (contentsize - actualsize))); - //else - //statusbox.Text += " (Safe Mismatch)"; - } - - /// - /// Returns content count of TMD - /// - /// The TMD. - /// int Count of Contents - private int ContentCount(byte[] tmd) - { - return (tmd[0x1DE] * 256) + tmd[0x1DF]; - } - - /// - /// Packs the WAD file, saves it to specified location. - /// - public void PackWAD() - { - if ((String.IsNullOrEmpty(Directory)) || (String.IsNullOrEmpty(FileName))) - { - StatusChanged("ERROR: No Directory/FileName provided!"); - return; - } - - FileStream wadfs = new FileStream(Path.Combine(Directory, FileName), FileMode.Create); - - // Seek the beginning of the WAD... - wadfs.Seek(0, SeekOrigin.Begin); - - // Write initial part of header (WADType) - wadfs.Write(WADMagic, 0, WADMagic.Length); - - // Write CertChainLength - wadfs.Seek(0x08, SeekOrigin.Begin); - byte[] chainsize = ConvertInttoByteArray(CertChainSize, 4); - wadfs.Write(chainsize, 0, chainsize.Length); - - // Write res - wadfs.Seek(0x0C, SeekOrigin.Begin); - wadfs.Write(RESERVED_CONST, 0, RESERVED_CONST.Length); - - // Write ticketsize - wadfs.Seek(0x10, SeekOrigin.Begin); - wadfs.Write(TIKSIZE_CONST, 0, TIKSIZE_CONST.Length); - - // Write tmdsize - wadfs.Seek(0x14, SeekOrigin.Begin); - byte[] tmdsize = ConvertInttoByteArray(TMDSize, 4); - wadfs.Write(tmdsize, 0, tmdsize.Length); - - // Write data size - wadfs.Seek(0x18, SeekOrigin.Begin); - wadfs.Write(ConvertInttoByteArray(DataSize, 4), 0, 4); - StatusChanged(" - Header wrote (0x00)"); - - // Write cert[] to 0x40. - wadfs.Seek(0x40, SeekOrigin.Begin); - wadfs.Write(Certsys, 0, Certsys.Length); - StatusChanged(String.Format(" - Certs wrote (0x{0})", Convert.ToString(64, 16))); - - // Pad to next 64 byte boundary. - wadfs.Seek(2624, SeekOrigin.Begin); - - // Write ticket at this point... - wadfs.Write(Ticket, 0, TicketSize); - StatusChanged(String.Format(" - Ticket wrote (0x{0})", Convert.ToString((wadfs.Length - 0x2A4), 16))); - - // Pad to next 64 byte boundary. - wadfs.Seek(PadToMultipleOf(wadfs.Length, 64), SeekOrigin.Begin); - - // Write TMD at this point... - wadfs.Write(tmd, 0, TMDSize); - StatusChanged(String.Format(" - TMD wrote (0x{0})", Convert.ToString((wadfs.Length - TMDSize), 16))); - - // Add the individual contents - for (int a = 0; a < TMDContentCount; a++) - { - // Pad to next 64 byte boundary... - wadfs.Seek(PadToMultipleOf(wadfs.Length, 64), SeekOrigin.Begin); - - wadfs.Write(TMDContents[a], 0, Contents[a].Length); - - StatusChanged(String.Format(" - {0} wrote (0x{1})", tmdnames[a], Convert.ToString((wadfs.Length - TMDContents[a].Length), 16))); - HandleMismatch(int.Parse(tmdsizes[a], System.Globalization.NumberStyles.HexNumber), TMDContents[a].Length); - } - - // Close filesystem... - wadfs.Close(); - - // Finished. - StatusChanged("WAD Created: " + FileName); - } - } -}