diff --git a/Novetus/NovetusCMD/NovetusCMD.cs b/Novetus/NovetusCMD/NovetusCMD.cs index c2bdf7f..48b8e03 100644 --- a/Novetus/NovetusCMD/NovetusCMD.cs +++ b/Novetus/NovetusCMD/NovetusCMD.cs @@ -142,10 +142,11 @@ namespace NovetusCMD static void WriteConfigValues() { GlobalFuncs.Config(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName, true); + GlobalFuncs.ReadClientValues(); GlobalFuncs.ConsolePrint("Config Saved.", 3); } - static void ReadConfigValues() + static void ReadConfigValues(bool initial = false) { GlobalFuncs.Config(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName, false); GlobalFuncs.ConsolePrint("Config loaded.", 3); @@ -274,11 +275,11 @@ namespace NovetusCMD WriteConfigValues(); } - ReadConfigValues(); + ReadConfigValues(true); } else { - GlobalFuncs.ReadClientValues(); + GlobalFuncs.ReadClientValues(true); } InitUPnP(); diff --git a/Novetus/NovetusCore/CharCustom/CustomizationFuncs.cs b/Novetus/NovetusCore/CharCustom/CustomizationFuncs.cs index 856a898..3dc27b1 100644 --- a/Novetus/NovetusCore/CharCustom/CustomizationFuncs.cs +++ b/Novetus/NovetusCore/CharCustom/CustomizationFuncs.cs @@ -137,7 +137,7 @@ using System.Windows.Forms; string mapfile = GlobalPaths.BasePathLauncher + "\\preview\\content\\fonts\\3DView.rbxl"; string rbxexe = GlobalPaths.BasePathLauncher + "\\preview\\3DView.exe"; string quote = "\""; - string args = quote + mapfile + "\" -script \"" + GlobalFuncs.ChangeGameSettings() + " dofile('" + luafile + "'); _G.CS3DView(0,'Player'," + GlobalVars.Loadout + ");" + quote; + string args = quote + mapfile + "\" -script \" dofile('" + luafile + "'); _G.CS3DView(0,'Player'," + GlobalVars.Loadout + ");" + quote; try { Process client = new Process(); diff --git a/Novetus/NovetusCore/Classes/FileFormat.cs b/Novetus/NovetusCore/Classes/FileFormat.cs index 6845d98..0399be8 100644 --- a/Novetus/NovetusCore/Classes/FileFormat.cs +++ b/Novetus/NovetusCore/Classes/FileFormat.cs @@ -16,7 +16,7 @@ public class FileFormat ScriptMD5 = ""; Fix2007 = false; AlreadyHasSecurity = false; - NoGraphicsOptions = false; + ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp; CommandLineArgs = ""; } @@ -29,7 +29,7 @@ public class FileFormat public string ScriptMD5 { get; set; } public bool Fix2007 { get; set; } public bool AlreadyHasSecurity { get; set; } - public bool NoGraphicsOptions { get; set; } + public Settings.GraphicsOptions.ClientLoadOptions ClientLoadOptions { get; set; } public string CommandLineArgs { get; set; } } #endregion @@ -52,9 +52,9 @@ public class FileFormat DiscordPresence = true; MapPath = ""; MapPathSnip = ""; - GraphicsMode = Settings.GraphicsOptions.Mode.OpenGL; + GraphicsMode = Settings.GraphicsOptions.Mode.Automatic; ReShade = false; - QualityLevel = Settings.GraphicsOptions.Level.Ultra; + QualityLevel = Settings.GraphicsOptions.Level.Automatic; LauncherStyle = Settings.UIOptions.Style.Extended; ReShadeFPSDisplay = false; ReShadePerformanceMode = false; diff --git a/Novetus/NovetusCore/SDK/RobloxXMLLocalizer.cs b/Novetus/NovetusCore/Classes/RobloxXML.cs similarity index 92% rename from Novetus/NovetusCore/SDK/RobloxXMLLocalizer.cs rename to Novetus/NovetusCore/Classes/RobloxXML.cs index 3d37383..0b7b911 100644 --- a/Novetus/NovetusCore/SDK/RobloxXMLLocalizer.cs +++ b/Novetus/NovetusCore/Classes/RobloxXML.cs @@ -24,6 +24,15 @@ public enum RobloxFileType } #endregion +#region XML Types +public enum XMLTypes +{ + Token, + Bool, + Float +} +#endregion + #region Roblox Type Definitions public struct RobloxDefs { @@ -294,8 +303,8 @@ public struct RobloxDefs } #endregion -#region Roblox XML Localizer -public static class RobloxXMLLocalizer +#region Roblox XML Parser +public static class RobloxXML { public static void DownloadFromNodes(string filepath, VarStorage.AssetCacheDef assetdef, string name = "", string meshname = "") { @@ -407,6 +416,39 @@ public static class RobloxXMLLocalizer } } + public static string GetStringForXMLType(XMLTypes type) + { + switch (type) + { + case XMLTypes.Bool: + return "bool"; + case XMLTypes.Float: + return "float"; + case XMLTypes.Token: + default: + return "token"; + } + } + + public static void EditRenderSettings(XDocument doc, string setting, string value, XMLTypes type) + { + var v = from nodes in doc.Descendants("Item") + where nodes.Attribute("class").Value == "RenderSettings" + select nodes; + + foreach (var item in v) + { + var v2 = from nodes in item.Descendants(GetStringForXMLType(type)) + where nodes.Attribute("name").Value == setting + select nodes; + + foreach (var item2 in v2) + { + item2.Value = value; + } + } + } + private static void DownloadFilesFromNode(string url, string path, string fileext, string id) { if (!string.IsNullOrWhiteSpace(id)) @@ -424,12 +466,12 @@ public static class RobloxXMLLocalizer } } - private static string RemoveInvalidXmlChars(string content) + public static string RemoveInvalidXmlChars(string content) { return new string(content.Where(ch => XmlConvert.IsXmlChar(ch)).ToArray()); } - private static string ReplaceHexadecimalSymbols(string txt) + public static string ReplaceHexadecimalSymbols(string txt) { string r = "[\x00-\x08\x0B\x0C\x0E-\x1F\x26]"; return Regex.Replace(txt, r, "", RegexOptions.Compiled); diff --git a/Novetus/NovetusCore/Classes/Settings.cs b/Novetus/NovetusCore/Classes/Settings.cs index ec7aedb..7b7c00c 100644 --- a/Novetus/NovetusCore/Classes/Settings.cs +++ b/Novetus/NovetusCore/Classes/Settings.cs @@ -1,4 +1,6 @@ #region Settings +using System; + public class Settings { #region Graphics Options @@ -7,13 +9,14 @@ public class Settings { public enum Mode { - None = 0, + Automatic = 0, OpenGL = 1, DirectX = 2 } public enum Level { + Automatic = 0, VeryLow = 1, Low = 2, Medium = 3, @@ -21,6 +24,18 @@ public class Settings Ultra = 5 } + public enum ClientLoadOptions + { + Client_2007_NoGraphicsOptions = 0, + Client_2007 = 1, + Client_2008AndUp = 2, + Client_2008AndUp_LegacyOpenGL = 3, + Client_2008AndUp_QualityLevel21 = 4, + Client_2008AndUp_NoGraphicsOptions = 5, + Client_2008AndUp_ForceAutomatic = 6, + Client_2008AndUp_ForceAutomaticQL21 = 7 + } + public static Mode GetModeForInt(int level) { switch (level) @@ -30,7 +45,7 @@ public class Settings case 2: return Mode.DirectX; default: - return Mode.None; + return Mode.Automatic; } } @@ -51,6 +66,8 @@ public class Settings { switch (level) { + case 0: + return Level.Automatic; case 1: return Level.VeryLow; case 2: @@ -69,6 +86,8 @@ public class Settings { switch (level) { + case Level.Automatic: + return 0; case Level.VeryLow: return 1; case Level.Low: @@ -82,6 +101,79 @@ public class Settings return 5; } } + + public static ClientLoadOptions GetClientLoadOptionsForInt(int level) + { + switch (level) + { + case 1: + return ClientLoadOptions.Client_2007; + case 2: + return ClientLoadOptions.Client_2008AndUp; + case 3: + return ClientLoadOptions.Client_2008AndUp_LegacyOpenGL; + case 4: + return ClientLoadOptions.Client_2008AndUp_QualityLevel21; + case 5: + return ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions; + case 6: + return ClientLoadOptions.Client_2008AndUp_ForceAutomatic; + case 7: + return ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21; + default: + return ClientLoadOptions.Client_2007_NoGraphicsOptions; + } + } + + public static ClientLoadOptions GetClientLoadOptionsForBool(bool level) + { + switch (level) + { + case false: + return ClientLoadOptions.Client_2008AndUp; + default: + return ClientLoadOptions.Client_2007_NoGraphicsOptions; + } + } + + public static int GetIntForClientLoadOptions(ClientLoadOptions level) + { + switch (level) + { + case ClientLoadOptions.Client_2007: + return 1; + case ClientLoadOptions.Client_2008AndUp: + return 2; + case ClientLoadOptions.Client_2008AndUp_LegacyOpenGL: + return 3; + case ClientLoadOptions.Client_2008AndUp_QualityLevel21: + return 4; + case ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions: + return 5; + case ClientLoadOptions.Client_2008AndUp_ForceAutomatic: + return 6; + case ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21: + return 7; + default: + return 0; + } + } + + public static string GetPathForClientLoadOptions(ClientLoadOptions level) + { + switch (level) + { + case ClientLoadOptions.Client_2008AndUp_QualityLevel21: + case ClientLoadOptions.Client_2008AndUp_LegacyOpenGL: + case ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions: + case ClientLoadOptions.Client_2008AndUp_ForceAutomatic: + case ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21: + case ClientLoadOptions.Client_2008AndUp: + return Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Roblox"; + default: + return Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Roblox"; + } + } } #endregion diff --git a/Novetus/NovetusCore/NovetusCore.projitems b/Novetus/NovetusCore/NovetusCore.projitems index dfd2448..87901bb 100644 --- a/Novetus/NovetusCore/NovetusCore.projitems +++ b/Novetus/NovetusCore/NovetusCore.projitems @@ -15,11 +15,11 @@ + - diff --git a/Novetus/NovetusCore/SDK/Forms/ClientinfoCreator.Designer.cs b/Novetus/NovetusCore/SDK/Forms/ClientinfoCreator.Designer.cs index 018d905..9a63a85 100644 --- a/Novetus/NovetusCore/SDK/Forms/ClientinfoCreator.Designer.cs +++ b/Novetus/NovetusCore/SDK/Forms/ClientinfoCreator.Designer.cs @@ -64,6 +64,7 @@ partial class ClientinfoEditor this.soloToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.studioToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.no3dToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.sharedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.variablesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.generalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.mapfileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -73,6 +74,8 @@ partial class ClientinfoEditor this.ipToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.portToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.addonscriptpathToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.scripttypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.versionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.serverToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.limitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.securityToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -144,16 +147,13 @@ partial class ClientinfoEditor this.label7 = new System.Windows.Forms.Label(); this.label8 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label(); - this.checkBox5 = new System.Windows.Forms.CheckBox(); - this.scripttypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.sharedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.versionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); this.menuStrip1.SuspendLayout(); this.SuspendLayout(); // // checkBox1 // - this.checkBox1.Location = new System.Drawing.Point(10, 58); + this.checkBox1.Location = new System.Drawing.Point(10, 50); this.checkBox1.Name = "checkBox1"; this.checkBox1.Size = new System.Drawing.Size(210, 24); this.checkBox1.TabIndex = 0; @@ -163,7 +163,7 @@ partial class ClientinfoEditor // // checkBox2 // - this.checkBox2.Location = new System.Drawing.Point(10, 78); + this.checkBox2.Location = new System.Drawing.Point(10, 70); this.checkBox2.Name = "checkBox2"; this.checkBox2.Size = new System.Drawing.Size(210, 20); this.checkBox2.TabIndex = 1; @@ -191,7 +191,7 @@ partial class ClientinfoEditor // // label2 // - this.label2.Location = new System.Drawing.Point(8, 44); + this.label2.Location = new System.Drawing.Point(8, 36); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(80, 17); this.label2.TabIndex = 6; @@ -199,7 +199,7 @@ partial class ClientinfoEditor // // checkBox3 // - this.checkBox3.Location = new System.Drawing.Point(10, 96); + this.checkBox3.Location = new System.Drawing.Point(10, 88); this.checkBox3.Name = "checkBox3"; this.checkBox3.Size = new System.Drawing.Size(211, 20); this.checkBox3.TabIndex = 13; @@ -209,7 +209,7 @@ partial class ClientinfoEditor // // label3 // - this.label3.Location = new System.Drawing.Point(309, 52); + this.label3.Location = new System.Drawing.Point(309, 34); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(92, 13); this.label3.TabIndex = 14; @@ -218,7 +218,7 @@ partial class ClientinfoEditor // textBox2 // this.textBox2.BackColor = System.Drawing.SystemColors.Control; - this.textBox2.Location = new System.Drawing.Point(309, 68); + this.textBox2.Location = new System.Drawing.Point(309, 50); this.textBox2.Name = "textBox2"; this.textBox2.ReadOnly = true; this.textBox2.Size = new System.Drawing.Size(311, 20); @@ -227,7 +227,7 @@ partial class ClientinfoEditor // // textBox3 // - this.textBox3.Location = new System.Drawing.Point(309, 107); + this.textBox3.Location = new System.Drawing.Point(309, 89); this.textBox3.Name = "textBox3"; this.textBox3.ReadOnly = true; this.textBox3.Size = new System.Drawing.Size(312, 20); @@ -236,7 +236,7 @@ partial class ClientinfoEditor // // label4 // - this.label4.Location = new System.Drawing.Point(309, 91); + this.label4.Location = new System.Drawing.Point(309, 73); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(92, 13); this.label4.TabIndex = 17; @@ -244,7 +244,7 @@ partial class ClientinfoEditor // // button4 // - this.button4.Location = new System.Drawing.Point(309, 140); + this.button4.Location = new System.Drawing.Point(309, 122); this.button4.Name = "button4"; this.button4.Size = new System.Drawing.Size(312, 29); this.button4.TabIndex = 18; @@ -254,7 +254,7 @@ partial class ClientinfoEditor // // checkBox4 // - this.checkBox4.Location = new System.Drawing.Point(237, 58); + this.checkBox4.Location = new System.Drawing.Point(237, 50); this.checkBox4.Name = "checkBox4"; this.checkBox4.Size = new System.Drawing.Size(50, 24); this.checkBox4.TabIndex = 19; @@ -265,7 +265,7 @@ partial class ClientinfoEditor // // checkBox6 // - this.checkBox6.Location = new System.Drawing.Point(10, 114); + this.checkBox6.Location = new System.Drawing.Point(10, 106); this.checkBox6.Name = "checkBox6"; this.checkBox6.Size = new System.Drawing.Size(262, 21); this.checkBox6.TabIndex = 20; @@ -275,7 +275,7 @@ partial class ClientinfoEditor // // checkBox7 // - this.checkBox7.Location = new System.Drawing.Point(10, 131); + this.checkBox7.Location = new System.Drawing.Point(10, 123); this.checkBox7.Name = "checkBox7"; this.checkBox7.Size = new System.Drawing.Size(262, 22); this.checkBox7.TabIndex = 21; @@ -309,28 +309,28 @@ partial class ClientinfoEditor // newToolStripMenuItem // this.newToolStripMenuItem.Name = "newToolStripMenuItem"; - this.newToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.newToolStripMenuItem.Size = new System.Drawing.Size(157, 22); this.newToolStripMenuItem.Text = "New"; this.newToolStripMenuItem.Click += new System.EventHandler(this.NewToolStripMenuItemClick); // // loadToolStripMenuItem // this.loadToolStripMenuItem.Name = "loadToolStripMenuItem"; - this.loadToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.loadToolStripMenuItem.Size = new System.Drawing.Size(157, 22); this.loadToolStripMenuItem.Text = "Load"; this.loadToolStripMenuItem.Click += new System.EventHandler(this.LoadToolStripMenuItemClick); // // saveToolStripMenuItem // this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; - this.saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.saveToolStripMenuItem.Size = new System.Drawing.Size(157, 22); this.saveToolStripMenuItem.Text = "Save"; this.saveToolStripMenuItem.Click += new System.EventHandler(this.SaveToolStripMenuItemClick); // // saveAsTextFileToolStripMenuItem // this.saveAsTextFileToolStripMenuItem.Name = "saveAsTextFileToolStripMenuItem"; - this.saveAsTextFileToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.saveAsTextFileToolStripMenuItem.Size = new System.Drawing.Size(157, 22); this.saveAsTextFileToolStripMenuItem.Text = "Save as Text File"; this.saveAsTextFileToolStripMenuItem.Click += new System.EventHandler(this.saveAsTextFileToolStripMenuItem_Click); // @@ -354,44 +354,51 @@ partial class ClientinfoEditor this.no3dToolStripMenuItem, this.sharedToolStripMenuItem}); this.tagsToolStripMenuItem.Name = "tagsToolStripMenuItem"; - this.tagsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.tagsToolStripMenuItem.Size = new System.Drawing.Size(157, 22); this.tagsToolStripMenuItem.Text = "Add Tags"; // // clientToolStripMenuItem // this.clientToolStripMenuItem.Name = "clientToolStripMenuItem"; - this.clientToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.clientToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.clientToolStripMenuItem.Text = ""; this.clientToolStripMenuItem.Click += new System.EventHandler(this.clientToolStripMenuItem_Click); // // serverToolStripMenuItem // this.serverToolStripMenuItem.Name = "serverToolStripMenuItem"; - this.serverToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.serverToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.serverToolStripMenuItem.Text = ""; this.serverToolStripMenuItem.Click += new System.EventHandler(this.serverToolStripMenuItem_Click); // // soloToolStripMenuItem // this.soloToolStripMenuItem.Name = "soloToolStripMenuItem"; - this.soloToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.soloToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.soloToolStripMenuItem.Text = ""; this.soloToolStripMenuItem.Click += new System.EventHandler(this.soloToolStripMenuItem_Click); // // studioToolStripMenuItem // this.studioToolStripMenuItem.Name = "studioToolStripMenuItem"; - this.studioToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.studioToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.studioToolStripMenuItem.Text = ""; this.studioToolStripMenuItem.Click += new System.EventHandler(this.studioToolStripMenuItem_Click); // // no3dToolStripMenuItem // this.no3dToolStripMenuItem.Name = "no3dToolStripMenuItem"; - this.no3dToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.no3dToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.no3dToolStripMenuItem.Text = ""; this.no3dToolStripMenuItem.Click += new System.EventHandler(this.no3dToolStripMenuItem_Click); // + // sharedToolStripMenuItem + // + this.sharedToolStripMenuItem.Name = "sharedToolStripMenuItem"; + this.sharedToolStripMenuItem.Size = new System.Drawing.Size(125, 22); + this.sharedToolStripMenuItem.Text = ""; + this.sharedToolStripMenuItem.Click += new System.EventHandler(this.sharedToolStripMenuItem_Click); + // // variablesToolStripMenuItem // this.variablesToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -402,7 +409,7 @@ partial class ClientinfoEditor this.debuggingToolStripMenuItem, this.argsToolStripMenuItem}); this.variablesToolStripMenuItem.Name = "variablesToolStripMenuItem"; - this.variablesToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.variablesToolStripMenuItem.Size = new System.Drawing.Size(157, 22); this.variablesToolStripMenuItem.Text = "Add Variables"; // // generalToolStripMenuItem @@ -418,7 +425,7 @@ partial class ClientinfoEditor this.scripttypeToolStripMenuItem, this.versionToolStripMenuItem}); this.generalToolStripMenuItem.Name = "generalToolStripMenuItem"; - this.generalToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.generalToolStripMenuItem.Size = new System.Drawing.Size(133, 22); this.generalToolStripMenuItem.Text = "General"; // // mapfileToolStripMenuItem @@ -470,12 +477,26 @@ partial class ClientinfoEditor this.addonscriptpathToolStripMenuItem.Text = "%addonscriptpath%"; this.addonscriptpathToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // + // scripttypeToolStripMenuItem + // + this.scripttypeToolStripMenuItem.Name = "scripttypeToolStripMenuItem"; + this.scripttypeToolStripMenuItem.Size = new System.Drawing.Size(181, 22); + this.scripttypeToolStripMenuItem.Text = "%scripttype%"; + this.scripttypeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); + // + // versionToolStripMenuItem + // + this.versionToolStripMenuItem.Name = "versionToolStripMenuItem"; + this.versionToolStripMenuItem.Size = new System.Drawing.Size(181, 22); + this.versionToolStripMenuItem.Text = "%version%"; + this.versionToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); + // // serverToolStripMenuItem1 // this.serverToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.limitToolStripMenuItem}); this.serverToolStripMenuItem1.Name = "serverToolStripMenuItem1"; - this.serverToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); + this.serverToolStripMenuItem1.Size = new System.Drawing.Size(133, 22); this.serverToolStripMenuItem1.Text = "Server"; // // limitToolStripMenuItem @@ -494,7 +515,7 @@ partial class ClientinfoEditor this.md5scriptdToolStripMenuItem, this.md5exedToolStripMenuItem}); this.securityToolStripMenuItem.Name = "securityToolStripMenuItem"; - this.securityToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.securityToolStripMenuItem.Size = new System.Drawing.Size(133, 22); this.securityToolStripMenuItem.Text = "Security"; // // md5launcherToolStripMenuItem @@ -540,7 +561,7 @@ partial class ClientinfoEditor this.idToolStripMenuItem, this.tripcodeToolStripMenuItem}); this.playerToolStripMenuItem.Name = "playerToolStripMenuItem"; - this.playerToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.playerToolStripMenuItem.Size = new System.Drawing.Size(133, 22); this.playerToolStripMenuItem.Text = "Player"; // // customizationToolStripMenuItem @@ -556,7 +577,7 @@ partial class ClientinfoEditor this.extraToolStripMenuItem, this.charappToolStripMenuItem}); this.customizationToolStripMenuItem.Name = "customizationToolStripMenuItem"; - this.customizationToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.customizationToolStripMenuItem.Size = new System.Drawing.Size(151, 22); this.customizationToolStripMenuItem.Text = "Customization"; // // bodyColorsToolStripMenuItem @@ -569,7 +590,7 @@ partial class ClientinfoEditor this.rarmcolorToolStripMenuItem, this.rlegcolorToolStripMenuItem}); this.bodyColorsToolStripMenuItem.Name = "bodyColorsToolStripMenuItem"; - this.bodyColorsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.bodyColorsToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.bodyColorsToolStripMenuItem.Text = "Body Colors"; // // headcolorToolStripMenuItem @@ -627,7 +648,7 @@ partial class ClientinfoEditor this.hat2wsToolStripMenuItem, this.hat3wsToolStripMenuItem}); this.hatsToolStripMenuItem.Name = "hatsToolStripMenuItem"; - this.hatsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.hatsToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.hatsToolStripMenuItem.Text = "Hats"; // // hat1ToolStripMenuItem @@ -700,7 +721,7 @@ partial class ClientinfoEditor this.facedToolStripMenuItem, this.facewsToolStripMenuItem}); this.facesToolStripMenuItem.Name = "facesToolStripMenuItem"; - this.facesToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.facesToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.facesToolStripMenuItem.Text = "Faces"; // // faceToolStripMenuItem @@ -731,7 +752,7 @@ partial class ClientinfoEditor this.headdToolStripMenuItem, this.headwsToolStripMenuItem}); this.headsToolStripMenuItem.Name = "headsToolStripMenuItem"; - this.headsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.headsToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.headsToolStripMenuItem.Text = "Heads"; // // headToolStripMenuItem @@ -762,7 +783,7 @@ partial class ClientinfoEditor this.tshirtdToolStripMenuItem, this.tshirtwsToolStripMenuItem}); this.tShirtsToolStripMenuItem.Name = "tShirtsToolStripMenuItem"; - this.tShirtsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.tShirtsToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.tShirtsToolStripMenuItem.Text = "T-Shirts"; // // tshirtToolStripMenuItem @@ -793,7 +814,7 @@ partial class ClientinfoEditor this.shirtdToolStripMenuItem, this.shirtwsToolStripMenuItem}); this.shirtsToolStripMenuItem.Name = "shirtsToolStripMenuItem"; - this.shirtsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.shirtsToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.shirtsToolStripMenuItem.Text = "Shirts"; // // shirtToolStripMenuItem @@ -824,7 +845,7 @@ partial class ClientinfoEditor this.pantsdToolStripMenuItem, this.pantswsToolStripMenuItem}); this.pantsToolStripMenuItem.Name = "pantsToolStripMenuItem"; - this.pantsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.pantsToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.pantsToolStripMenuItem.Text = "Pants"; // // pantsToolStripMenuItem1 @@ -860,90 +881,90 @@ partial class ClientinfoEditor this.iconeToolStripMenuItem, this.iconToolStripMenuItem}); this.extraToolStripMenuItem.Name = "extraToolStripMenuItem"; - this.extraToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.extraToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.extraToolStripMenuItem.Text = "Extra"; // // extraToolStripMenuItem1 // this.extraToolStripMenuItem1.Name = "extraToolStripMenuItem1"; - this.extraToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); + this.extraToolStripMenuItem1.Size = new System.Drawing.Size(134, 22); this.extraToolStripMenuItem1.Text = "%extra%"; this.extraToolStripMenuItem1.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // extradToolStripMenuItem // this.extradToolStripMenuItem.Name = "extradToolStripMenuItem"; - this.extradToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.extradToolStripMenuItem.Size = new System.Drawing.Size(134, 22); this.extradToolStripMenuItem.Text = "%extrad%"; this.extradToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // extrawsToolStripMenuItem // this.extrawsToolStripMenuItem.Name = "extrawsToolStripMenuItem"; - this.extrawsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.extrawsToolStripMenuItem.Size = new System.Drawing.Size(134, 22); this.extrawsToolStripMenuItem.Text = "%extraws%"; this.extrawsToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // hat4ToolStripMenuItem // this.hat4ToolStripMenuItem.Name = "hat4ToolStripMenuItem"; - this.hat4ToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.hat4ToolStripMenuItem.Size = new System.Drawing.Size(134, 22); this.hat4ToolStripMenuItem.Text = "%hat4%"; this.hat4ToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // hat4dToolStripMenuItem // this.hat4dToolStripMenuItem.Name = "hat4dToolStripMenuItem"; - this.hat4dToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.hat4dToolStripMenuItem.Size = new System.Drawing.Size(134, 22); this.hat4dToolStripMenuItem.Text = "%hat4d%"; this.hat4dToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // hat4wsToolStripMenuItem // this.hat4wsToolStripMenuItem.Name = "hat4wsToolStripMenuItem"; - this.hat4wsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.hat4wsToolStripMenuItem.Size = new System.Drawing.Size(134, 22); this.hat4wsToolStripMenuItem.Text = "%hat4ws%"; this.hat4wsToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // iconeToolStripMenuItem // this.iconeToolStripMenuItem.Name = "iconeToolStripMenuItem"; - this.iconeToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.iconeToolStripMenuItem.Size = new System.Drawing.Size(134, 22); this.iconeToolStripMenuItem.Text = "%icone%"; this.iconeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // iconToolStripMenuItem // this.iconToolStripMenuItem.Name = "iconToolStripMenuItem"; - this.iconToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.iconToolStripMenuItem.Size = new System.Drawing.Size(134, 22); this.iconToolStripMenuItem.Text = "%icon%"; this.iconToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // charappToolStripMenuItem // this.charappToolStripMenuItem.Name = "charappToolStripMenuItem"; - this.charappToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.charappToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.charappToolStripMenuItem.Text = "%charapp%"; this.charappToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // nameToolStripMenuItem // this.nameToolStripMenuItem.Name = "nameToolStripMenuItem"; - this.nameToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.nameToolStripMenuItem.Size = new System.Drawing.Size(151, 22); this.nameToolStripMenuItem.Text = "%name%"; this.nameToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // idToolStripMenuItem // this.idToolStripMenuItem.Name = "idToolStripMenuItem"; - this.idToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.idToolStripMenuItem.Size = new System.Drawing.Size(151, 22); this.idToolStripMenuItem.Text = "%id%"; this.idToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // tripcodeToolStripMenuItem // this.tripcodeToolStripMenuItem.Name = "tripcodeToolStripMenuItem"; - this.tripcodeToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.tripcodeToolStripMenuItem.Size = new System.Drawing.Size(151, 22); this.tripcodeToolStripMenuItem.Text = "%tripcode%"; this.tripcodeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // @@ -952,7 +973,7 @@ partial class ClientinfoEditor this.debuggingToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.donothingToolStripMenuItem}); this.debuggingToolStripMenuItem.Name = "debuggingToolStripMenuItem"; - this.debuggingToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.debuggingToolStripMenuItem.Size = new System.Drawing.Size(133, 22); this.debuggingToolStripMenuItem.Text = "Debugging"; // // donothingToolStripMenuItem @@ -965,30 +986,30 @@ partial class ClientinfoEditor // argsToolStripMenuItem // this.argsToolStripMenuItem.Name = "argsToolStripMenuItem"; - this.argsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.argsToolStripMenuItem.Size = new System.Drawing.Size(133, 22); this.argsToolStripMenuItem.Text = "%args%"; this.argsToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); // // documentationToolStripMenuItem1 // this.documentationToolStripMenuItem1.Name = "documentationToolStripMenuItem1"; - this.documentationToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); + this.documentationToolStripMenuItem1.Size = new System.Drawing.Size(157, 22); this.documentationToolStripMenuItem1.Text = "Documentation"; this.documentationToolStripMenuItem1.Click += new System.EventHandler(this.documentationToolStripMenuItem_Click); // // textBox4 // - this.textBox4.Location = new System.Drawing.Point(309, 204); + this.textBox4.Location = new System.Drawing.Point(309, 173); this.textBox4.Multiline = true; this.textBox4.Name = "textBox4"; this.textBox4.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.textBox4.Size = new System.Drawing.Size(311, 125); + this.textBox4.Size = new System.Drawing.Size(311, 156); this.textBox4.TabIndex = 23; this.textBox4.TextChanged += new System.EventHandler(this.TextBox4TextChanged); // // label5 // - this.label5.Location = new System.Drawing.Point(308, 185); + this.label5.Location = new System.Drawing.Point(309, 154); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(229, 16); this.label5.TabIndex = 24; @@ -1039,37 +1060,24 @@ partial class ClientinfoEditor this.label9.TabIndex = 30; this.label9.Text = "Not Loaded"; // - // checkBox5 + // comboBox1 // - this.checkBox5.AutoSize = true; - this.checkBox5.Location = new System.Drawing.Point(10, 152); - this.checkBox5.Name = "checkBox5"; - this.checkBox5.Size = new System.Drawing.Size(198, 17); - this.checkBox5.TabIndex = 31; - this.checkBox5.Text = "Doesn\'t have graphics mode options"; - this.checkBox5.UseVisualStyleBackColor = true; - this.checkBox5.CheckedChanged += new System.EventHandler(this.checkBox5_CheckedChanged); - // - // scripttypeToolStripMenuItem - // - this.scripttypeToolStripMenuItem.Name = "scripttypeToolStripMenuItem"; - this.scripttypeToolStripMenuItem.Size = new System.Drawing.Size(181, 22); - this.scripttypeToolStripMenuItem.Text = "%scripttype%"; - this.scripttypeToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); - // - // sharedToolStripMenuItem - // - this.sharedToolStripMenuItem.Name = "sharedToolStripMenuItem"; - this.sharedToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.sharedToolStripMenuItem.Text = ""; - this.sharedToolStripMenuItem.Click += new System.EventHandler(this.sharedToolStripMenuItem_Click); - // - // versionToolStripMenuItem - // - this.versionToolStripMenuItem.Name = "versionToolStripMenuItem"; - this.versionToolStripMenuItem.Size = new System.Drawing.Size(181, 22); - this.versionToolStripMenuItem.Text = "%version%"; - this.versionToolStripMenuItem.Click += new System.EventHandler(this.variableToolStripMenuItem_Click); + this.comboBox1.DropDownWidth = 350; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "No Graphics Mode (2007 Only)", + "Use Graphics Mode (2007-Early 2008 Only)", + "Use Graphics Mode (Mid 2008+ Only)", + "Use Graphics Mode (Mid 2008+ Only, Force Legacy OpenGL)", + "Use Graphics Mode (Mid 2008+ Only, Uses Quality Level 21)", + "No Graphics Mode (Mid 2008+ Only)", + "Force Automatic Graphics Mode (Mid 2008+ Only)", + "Force Automatic Graphics Mode (Mid 2008+ Only, Uses Quality Level 21)"}); + this.comboBox1.Location = new System.Drawing.Point(10, 144); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(279, 21); + this.comboBox1.TabIndex = 32; + this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); // // ClientinfoEditor // @@ -1077,7 +1085,7 @@ partial class ClientinfoEditor this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.SystemColors.ControlLightLight; this.ClientSize = new System.Drawing.Size(632, 336); - this.Controls.Add(this.checkBox5); + this.Controls.Add(this.comboBox1); this.Controls.Add(this.label9); this.Controls.Add(this.label8); this.Controls.Add(this.label7); @@ -1218,10 +1226,10 @@ partial class ClientinfoEditor private System.Windows.Forms.ToolStripMenuItem saveAsTextFileToolStripMenuItem; private System.Windows.Forms.Label label8; private System.Windows.Forms.Label label9; - private System.Windows.Forms.CheckBox checkBox5; private System.Windows.Forms.ToolStripMenuItem hat4ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem mapfilecToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem scripttypeToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem sharedToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem versionToolStripMenuItem; + private System.Windows.Forms.ComboBox comboBox1; } diff --git a/Novetus/NovetusCore/SDK/Forms/ClientinfoCreator.cs b/Novetus/NovetusCore/SDK/Forms/ClientinfoCreator.cs index fa27027..1190c03 100644 --- a/Novetus/NovetusCore/SDK/Forms/ClientinfoCreator.cs +++ b/Novetus/NovetusCore/SDK/Forms/ClientinfoCreator.cs @@ -40,6 +40,7 @@ using System.Globalization; void ClientinfoCreatorLoad(object sender, EventArgs e) { checkBox4.Visible = GlobalVars.AdminMode; + NewClientInfo(); } void CheckBox3CheckedChanged(object sender, EventArgs e) @@ -132,41 +133,10 @@ using System.Globalization; SelectedClientInfo.AlreadyHasSecurity = checkBox7.Checked; } - void checkBox5_CheckedChanged(object sender, EventArgs e) - { - SelectedClientInfo.NoGraphicsOptions = checkBox5.Checked; - } - void NewToolStripMenuItemClick(object sender, EventArgs e) { label9.Text = "Not Loaded"; - SelectedClientInfo.UsesPlayerName = false; - SelectedClientInfo.UsesID = false; - SelectedClientInfo.Warning = ""; - SelectedClientInfo.LegacyMode = false; - SelectedClientInfo.Fix2007 = false; - SelectedClientInfo.AlreadyHasSecurity = false; - SelectedClientInfo.NoGraphicsOptions = false; - SelectedClientInfo.Description = ""; - SelectedClientInfo.ClientMD5 = ""; - SelectedClientInfo.ScriptMD5 = ""; - SelectedClientInfo.CommandLineArgs = ""; - Locked = false; - SelectedClientInfoPath = ""; - checkBox1.Checked = SelectedClientInfo.UsesPlayerName; - checkBox2.Checked = SelectedClientInfo.UsesID; - checkBox3.Checked = SelectedClientInfo.LegacyMode; - checkBox4.Checked = Locked; - checkBox6.Checked = SelectedClientInfo.Fix2007; - checkBox7.Checked = SelectedClientInfo.AlreadyHasSecurity; - checkBox5.Checked = SelectedClientInfo.NoGraphicsOptions; - textBox3.Text = SelectedClientInfo.ScriptMD5.ToUpper(CultureInfo.InvariantCulture); - textBox2.Text = SelectedClientInfo.ClientMD5.ToUpper(CultureInfo.InvariantCulture); - textBox1.Text = SelectedClientInfo.Description; - textBox4.Text = SelectedClientInfo.CommandLineArgs; - textBox5.Text = SelectedClientInfo.Warning; - textBox2.BackColor = System.Drawing.SystemColors.Control; - textBox3.BackColor = System.Drawing.SystemColors.Control; + NewClientInfo(); } void LoadToolStripMenuItemClick(object sender, EventArgs e) @@ -183,7 +153,7 @@ using System.Globalization; { string file, usesplayername, usesid, warning, legacymode, clientmd5, scriptmd5, desc, locked, fix2007, alreadyhassecurity, - cmdargsornogfxoptions, commandargsver2; + cmdargsorclientoptions, commandargsver2; using (StreamReader reader = new StreamReader(ofd.FileName)) { @@ -195,12 +165,12 @@ using System.Globalization; try { IsVersion2 = true; - label9.Text = "v2"; + label9.Text = "v2 (v" + GlobalVars.ProgramInformation.Version + ")"; ConvertedLine = SecurityFuncs.Base64DecodeNew(file); } catch (Exception) { - label9.Text = "v1"; + label9.Text = "v1 (v1.1)"; ConvertedLine = SecurityFuncs.Base64DecodeOld(file); } @@ -215,7 +185,7 @@ using System.Globalization; locked = SecurityFuncs.Base64Decode(result[7]); fix2007 = SecurityFuncs.Base64Decode(result[8]); alreadyhassecurity = SecurityFuncs.Base64Decode(result[9]); - cmdargsornogfxoptions = SecurityFuncs.Base64Decode(result[10]); + cmdargsorclientoptions = SecurityFuncs.Base64Decode(result[10]); commandargsver2 = ""; try { @@ -226,9 +196,9 @@ using System.Globalization; } catch (Exception) { - if (!label9.Text.Equals("v1")) + if (!label9.Text.Equals("v1 (v1.1)")) { - label9.Text = "v2 (DEV)"; + label9.Text = "v2 (v1.2 Snapshot 7440)"; IsVersion2 = false; } } @@ -238,6 +208,7 @@ using System.Globalization; bool lockcheck = Convert.ToBoolean(locked); if (lockcheck) { + NewClientInfo(); MessageBox.Show("This client is locked and therefore it cannot be loaded.", "Novetus Launcher - Error when loading client", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } @@ -267,15 +238,23 @@ using System.Globalization; { if (IsVersion2) { - SelectedClientInfo.NoGraphicsOptions = Convert.ToBoolean(cmdargsornogfxoptions); + if (cmdargsorclientoptions.Equals("True") || cmdargsorclientoptions.Equals("False")) + { + label9.Text = "v2 (v1.2.3)"; + SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.GetClientLoadOptionsForBool(Convert.ToBoolean(cmdargsorclientoptions)); + } + else + { + SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.GetClientLoadOptionsForInt(Convert.ToInt32(cmdargsorclientoptions)); + } SelectedClientInfo.CommandLineArgs = commandargsver2; } } catch (Exception) { //Again, fake it. - SelectedClientInfo.NoGraphicsOptions = false; - SelectedClientInfo.CommandLineArgs = cmdargsornogfxoptions; + SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp; + SelectedClientInfo.CommandLineArgs = cmdargsorclientoptions; } } @@ -287,7 +266,34 @@ using System.Globalization; checkBox3.Checked = SelectedClientInfo.LegacyMode; checkBox6.Checked = SelectedClientInfo.Fix2007; checkBox7.Checked = SelectedClientInfo.AlreadyHasSecurity; - checkBox5.Checked = SelectedClientInfo.NoGraphicsOptions; + + switch (SelectedClientInfo.ClientLoadOptions) + { + case Settings.GraphicsOptions.ClientLoadOptions.Client_2007: + comboBox1.SelectedIndex = 1; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp: + comboBox1.SelectedIndex = 2; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL: + comboBox1.SelectedIndex = 3; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21: + comboBox1.SelectedIndex = 4; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions: + comboBox1.SelectedIndex = 5; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomatic: + comboBox1.SelectedIndex = 6; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21: + comboBox1.SelectedIndex = 7; + break; + default: + comboBox1.SelectedIndex = 0; + break; + } textBox3.Text = SelectedClientInfo.ScriptMD5.ToUpper(CultureInfo.InvariantCulture); textBox2.Text = SelectedClientInfo.ClientMD5.ToUpper(CultureInfo.InvariantCulture); textBox1.Text = SelectedClientInfo.Description; @@ -321,7 +327,7 @@ using System.Globalization; SecurityFuncs.Base64Encode(Locked.ToString()), SecurityFuncs.Base64Encode(SelectedClientInfo.Fix2007.ToString()), SecurityFuncs.Base64Encode(SelectedClientInfo.AlreadyHasSecurity.ToString()), - SecurityFuncs.Base64Encode(SelectedClientInfo.NoGraphicsOptions.ToString()), + SecurityFuncs.Base64Encode(Settings.GraphicsOptions.GetIntForClientLoadOptions(SelectedClientInfo.ClientLoadOptions).ToString()), SecurityFuncs.Base64Encode(SelectedClientInfo.CommandLineArgs.ToString()) }; File.WriteAllText(sfd.FileName, SecurityFuncs.Base64Encode(string.Join("|", lines))); @@ -329,7 +335,7 @@ using System.Globalization; } } - label9.Text = "v2"; + label9.Text = "v2 (v" + GlobalVars.ProgramInformation.Version + ")"; textBox2.BackColor = System.Drawing.SystemColors.Control; textBox3.BackColor = System.Drawing.SystemColors.Control; } @@ -357,7 +363,7 @@ using System.Globalization; Locked.ToString(), SelectedClientInfo.Fix2007.ToString(), SelectedClientInfo.AlreadyHasSecurity.ToString(), - SelectedClientInfo.NoGraphicsOptions.ToString(), + Settings.GraphicsOptions.GetIntForClientLoadOptions(SelectedClientInfo.ClientLoadOptions).ToString(), SelectedClientInfo.CommandLineArgs.ToString() }; File.WriteAllLines(sfd.FileName, lines); @@ -418,13 +424,103 @@ using System.Globalization; ToolStripMenuItem senderitem = (ToolStripMenuItem)sender; AddClientinfoText(senderitem.Text); } + + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + switch (comboBox1.SelectedIndex) + { + case 1: + SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2007; + break; + case 2: + SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp; + break; + case 3: + SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL; + break; + case 4: + SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21; + break; + case 5: + SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions; + break; + case 6: + SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomatic; + break; + case 7: + SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21; + break; + default: + SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2007_NoGraphicsOptions; + break; + } + } #endregion - #region Functions + #region Functions private void AddClientinfoText(string text) { textBox4.Paste(text); } - #endregion - } + + void NewClientInfo() + { + label9.Text = "Not Loaded"; + SelectedClientInfo.UsesPlayerName = false; + SelectedClientInfo.UsesID = false; + SelectedClientInfo.Warning = ""; + SelectedClientInfo.LegacyMode = false; + SelectedClientInfo.Fix2007 = false; + SelectedClientInfo.AlreadyHasSecurity = false; + SelectedClientInfo.ClientLoadOptions = Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp; + SelectedClientInfo.Description = ""; + SelectedClientInfo.ClientMD5 = ""; + SelectedClientInfo.ScriptMD5 = ""; + SelectedClientInfo.CommandLineArgs = ""; + Locked = false; + SelectedClientInfoPath = ""; + checkBox1.Checked = SelectedClientInfo.UsesPlayerName; + checkBox2.Checked = SelectedClientInfo.UsesID; + checkBox3.Checked = SelectedClientInfo.LegacyMode; + checkBox4.Checked = Locked; + checkBox6.Checked = SelectedClientInfo.Fix2007; + checkBox7.Checked = SelectedClientInfo.AlreadyHasSecurity; + switch (SelectedClientInfo.ClientLoadOptions) + { + case Settings.GraphicsOptions.ClientLoadOptions.Client_2007: + comboBox1.SelectedIndex = 1; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp: + comboBox1.SelectedIndex = 2; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL: + comboBox1.SelectedIndex = 3; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21: + comboBox1.SelectedIndex = 4; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions: + comboBox1.SelectedIndex = 5; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomatic: + comboBox1.SelectedIndex = 6; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21: + comboBox1.SelectedIndex = 7; + break; + default: + comboBox1.SelectedIndex = 0; + break; + } + textBox3.Text = SelectedClientInfo.ScriptMD5.ToUpper(CultureInfo.InvariantCulture); + textBox2.Text = SelectedClientInfo.ClientMD5.ToUpper(CultureInfo.InvariantCulture); + textBox1.Text = SelectedClientInfo.Description; + textBox4.Text = SelectedClientInfo.CommandLineArgs; + textBox5.Text = SelectedClientInfo.Warning; + textBox2.BackColor = System.Drawing.SystemColors.Control; + textBox3.BackColor = System.Drawing.SystemColors.Control; + } #endregion +} +#endregion + diff --git a/Novetus/NovetusCore/SDK/Forms/NovetusSDK.cs b/Novetus/NovetusCore/SDK/Forms/NovetusSDK.cs index bdc1ee2..cd631db 100644 --- a/Novetus/NovetusCore/SDK/Forms/NovetusSDK.cs +++ b/Novetus/NovetusCore/SDK/Forms/NovetusSDK.cs @@ -25,6 +25,11 @@ public partial class NovetusSDK : Form private void NovetusSDK_Close(object sender, CancelEventArgs e) { GlobalFuncs.Config(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName, true); +#if LAUNCHER + GlobalFuncs.ReadClientValues(null); +#else + GlobalFuncs.ReadClientValues(); +#endif } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) diff --git a/Novetus/NovetusCore/SDK/SDKFuncs.cs b/Novetus/NovetusCore/SDK/SDKFuncs.cs index fe67da2..e9985c7 100644 --- a/Novetus/NovetusCore/SDK/SDKFuncs.cs +++ b/Novetus/NovetusCore/SDK/SDKFuncs.cs @@ -267,44 +267,44 @@ class SDKFuncs } //meshes worker.ReportProgress(5); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Fonts); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Fonts, 1, 1, 1, 1); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Fonts); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Fonts, 1, 1, 1, 1); //skybox worker.ReportProgress(10); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sky); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sky, 1, 0, 0, 0); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sky, 2, 0, 0, 0); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sky, 3, 0, 0, 0); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sky, 4, 0, 0, 0); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sky, 5, 0, 0, 0); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 1, 0, 0, 0); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 2, 0, 0, 0); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 3, 0, 0, 0); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 4, 0, 0, 0); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 5, 0, 0, 0); //decal worker.ReportProgress(15); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Decal); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Decal); //texture worker.ReportProgress(20); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Texture); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Texture); //tools and hopperbin worker.ReportProgress(25); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Tool); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Tool); worker.ReportProgress(30); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.HopperBin); + RobloxXML.DownloadFromNodes(path, RobloxDefs.HopperBin); //sound worker.ReportProgress(40); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sound); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sound); worker.ReportProgress(50); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ImageLabel); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ImageLabel); //clothing worker.ReportProgress(60); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Shirt); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Shirt); worker.ReportProgress(65); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ShirtGraphic); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ShirtGraphic); worker.ReportProgress(70); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Pants); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Pants); //scripts worker.ReportProgress(80); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Script); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Script); worker.ReportProgress(90); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.LocalScript); + RobloxXML.DownloadFromNodes(path, RobloxDefs.LocalScript); worker.ReportProgress(100); break; case RobloxFileType.RBXM: @@ -325,44 +325,44 @@ class SDKFuncs worker.ReportProgress(0); } //meshes - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Fonts); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Fonts, 1, 1, 1, 1); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Fonts); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Fonts, 1, 1, 1, 1); //skybox worker.ReportProgress(10); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sky); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sky, 1, 0, 0, 0); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sky, 2, 0, 0, 0); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sky, 3, 0, 0, 0); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sky, 4, 0, 0, 0); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sky, 5, 0, 0, 0); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 1, 0, 0, 0); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 2, 0, 0, 0); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 3, 0, 0, 0); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 4, 0, 0, 0); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sky, 5, 0, 0, 0); //decal worker.ReportProgress(15); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Decal); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Decal); //texture worker.ReportProgress(20); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Texture); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Texture); //tools and hopperbin worker.ReportProgress(25); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Tool); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Tool); worker.ReportProgress(30); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.HopperBin); + RobloxXML.DownloadFromNodes(path, RobloxDefs.HopperBin); //sound worker.ReportProgress(40); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Sound); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Sound); worker.ReportProgress(50); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ImageLabel); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ImageLabel); //clothing worker.ReportProgress(60); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Shirt); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Shirt); worker.ReportProgress(65); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ShirtGraphic); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ShirtGraphic); worker.ReportProgress(70); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Pants); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Pants); //scripts worker.ReportProgress(80); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.Script); + RobloxXML.DownloadFromNodes(path, RobloxDefs.Script); worker.ReportProgress(90); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.LocalScript); + RobloxXML.DownloadFromNodes(path, RobloxDefs.LocalScript); worker.ReportProgress(100); break; case RobloxFileType.Hat: @@ -383,15 +383,15 @@ class SDKFuncs worker.ReportProgress(0); } //meshes - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ItemHatFonts, itemname, meshname); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ItemHatFonts, 1, 1, 1, 1, itemname); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHatFonts, itemname, meshname); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHatFonts, 1, 1, 1, 1, itemname); worker.ReportProgress(25); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ItemHatSound); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHatSound); //scripts worker.ReportProgress(50); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ItemHatScript); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHatScript); worker.ReportProgress(75); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ItemHatLocalScript); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHatLocalScript); worker.ReportProgress(100); break; case RobloxFileType.Head: @@ -412,8 +412,8 @@ class SDKFuncs worker.ReportProgress(0); } //meshes - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ItemHeadFonts, itemname); - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ItemHeadFonts, 1, 1, 1, 1, itemname); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHeadFonts, itemname); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemHeadFonts, 1, 1, 1, 1, itemname); worker.ReportProgress(100); break; case RobloxFileType.Face: @@ -434,7 +434,7 @@ class SDKFuncs worker.ReportProgress(0); } //decal - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ItemFaceTexture, itemname); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemFaceTexture, itemname); worker.ReportProgress(100); break; case RobloxFileType.TShirt: @@ -455,7 +455,7 @@ class SDKFuncs worker.ReportProgress(0); } //texture - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ItemTShirtTexture, itemname); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemTShirtTexture, itemname); worker.ReportProgress(100); break; case RobloxFileType.Shirt: @@ -476,7 +476,7 @@ class SDKFuncs worker.ReportProgress(0); } //texture - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ItemShirtTexture, itemname); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemShirtTexture, itemname); worker.ReportProgress(100); break; case RobloxFileType.Pants: @@ -497,7 +497,7 @@ class SDKFuncs worker.ReportProgress(0); } //texture - RobloxXMLLocalizer.DownloadFromNodes(path, RobloxDefs.ItemPantsTexture, itemname); + RobloxXML.DownloadFromNodes(path, RobloxDefs.ItemPantsTexture, itemname); worker.ReportProgress(100); break; default: diff --git a/Novetus/NovetusCore/StorageAndFunctions/GlobalFuncs.cs b/Novetus/NovetusCore/StorageAndFunctions/GlobalFuncs.cs index 319310e..801dfb5 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/GlobalFuncs.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/GlobalFuncs.cs @@ -2,6 +2,8 @@ using Nini.Config; using NLog; using System; +using System.Collections.Generic; +using System.Data.SqlClient; using System.Diagnostics; using System.Drawing; using System.Drawing.Imaging; @@ -11,6 +13,7 @@ using System.Reflection; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows.Forms; +using System.Xml.Linq; #endregion #region Global Functions @@ -368,6 +371,60 @@ public class GlobalFuncs ReloadLoadoutValue(); } + public static void ReShade(string cfgpath, string cfgname, bool write) + { + string fullpath = cfgpath + "\\" + cfgname; + + if (!File.Exists(fullpath)) + { + File.Copy(GlobalPaths.ConfigDir + "\\ReShade_default.ini", fullpath); + ReShadeValues(fullpath, write, true); + } + else + { + ReShadeValues(fullpath, write, true); + } + + string clientdir = GlobalPaths.ClientDir; + DirectoryInfo dinfo = new DirectoryInfo(clientdir); + DirectoryInfo[] Dirs = dinfo.GetDirectories(); + foreach (DirectoryInfo dir in Dirs) + { + string fulldirpath = dir.FullName + @"\" + cfgname; + string fulldllpath = dir.FullName + @"\opengl32.dll"; + + if (GlobalVars.UserConfiguration.ReShade) + { + if (!File.Exists(fulldirpath)) + { + File.Copy(fullpath, fulldirpath); + ReShadeValues(fulldirpath, write, false); + } + else + { + ReShadeValues(fulldirpath, write, false); + } + + if (!File.Exists(fulldllpath)) + { + File.Copy(GlobalPaths.ConfigDirData + "\\opengl32.dll", fulldllpath); + } + } + else + { + if (File.Exists(fulldirpath)) + { + File.Delete(fulldirpath); + } + + if (File.Exists(fulldllpath)) + { + File.Delete(fulldllpath); + } + } + } + } + public static void ReShadeValues(string cfgpath, bool write, bool setglobals) { if (write) @@ -433,22 +490,22 @@ public class GlobalFuncs } #if LAUNCHER - public static void ReadClientValues(RichTextBox box) + public static void ReadClientValues(RichTextBox box, bool initial = false) #else - public static void ReadClientValues() + public static void ReadClientValues(bool initial = false) #endif { #if LAUNCHER - ReadClientValues(GlobalVars.UserConfiguration.SelectedClient, box); + ReadClientValues(GlobalVars.UserConfiguration.SelectedClient, box, initial); #else - ReadClientValues(GlobalVars.UserConfiguration.SelectedClient); + ReadClientValues(GlobalVars.UserConfiguration.SelectedClient, initial); #endif } #if LAUNCHER - public static void ReadClientValues(string ClientName, RichTextBox box) + public static void ReadClientValues(string ClientName, RichTextBox box, bool initial = false) #else - public static void ReadClientValues(string ClientName) + public static void ReadClientValues(string ClientName, bool initial = false) #endif { string name = ClientName; @@ -464,21 +521,43 @@ public class GlobalFuncs #endif name = GlobalVars.ProgramInformation.DefaultClient; #if LAUNCHER - ReadClientValues(name, box); + ReadClientValues(name, box, initial); #else - ReadClientValues(name); + ReadClientValues(name, initial); #endif } else { LoadClientValues(clientpath); + + if (initial) + { #if LAUNCHER ConsolePrint("Client '" + name + "' successfully loaded.", 3, box); #elif CMD GlobalFuncs.ConsolePrint("Client '" + name + "' successfully loaded.", 3); #elif URI #endif + } } + + string terms = "_" + ClientName + "_default"; + string[] dirs = Directory.GetFiles(GlobalPaths.ConfigDirClients); + + foreach (string dir in dirs) + { + if (dir.Contains(terms) && dir.EndsWith(".xml")) + { + string fullpath = dir.Replace("_default", ""); + + if (!File.Exists(fullpath)) + { + File.Copy(dir, fullpath); + } + } + } + + ChangeGameSettings(ClientName); } public static void FixedFileCopy(string src, string dest, bool overwrite) @@ -518,7 +597,7 @@ public class GlobalFuncs string file, usesplayername, usesid, warning, legacymode, clientmd5, scriptmd5, desc, fix2007, alreadyhassecurity, - nographicsoptions, commandlineargs; + clientloadoptions, commandlineargs; using (StreamReader reader = new StreamReader(clientpath)) { @@ -536,7 +615,7 @@ public class GlobalFuncs desc = SecurityFuncs.Base64Decode(result[6]); fix2007 = SecurityFuncs.Base64Decode(result[8]); alreadyhassecurity = SecurityFuncs.Base64Decode(result[9]); - nographicsoptions = SecurityFuncs.Base64Decode(result[10]); + clientloadoptions = SecurityFuncs.Base64Decode(result[10]); try { commandlineargs = SecurityFuncs.Base64Decode(result[11]); @@ -544,7 +623,7 @@ public class GlobalFuncs catch { //fake this option until we properly apply it. - nographicsoptions = "False"; + clientloadoptions = "2"; commandlineargs = SecurityFuncs.Base64Decode(result[10]); } @@ -557,62 +636,16 @@ public class GlobalFuncs info.Description = desc; info.Fix2007 = Convert.ToBoolean(fix2007); info.AlreadyHasSecurity = Convert.ToBoolean(alreadyhassecurity); - info.NoGraphicsOptions = Convert.ToBoolean(nographicsoptions); - info.CommandLineArgs = commandlineargs; - } - - public static void ReShade(string cfgpath, string cfgname, bool write) - { - string fullpath = cfgpath + "\\" + cfgname; - - if (!File.Exists(fullpath)) + if (clientloadoptions.Equals("True") || clientloadoptions.Equals("False")) { - File.Copy(GlobalPaths.ConfigDir + "\\ReShade_default.ini", fullpath); - ReShadeValues(fullpath, write, true); + info.ClientLoadOptions = Settings.GraphicsOptions.GetClientLoadOptionsForBool(Convert.ToBoolean(clientloadoptions)); } else { - ReShadeValues(fullpath, write, true); - } - - string clientdir = GlobalPaths.ClientDir; - DirectoryInfo dinfo = new DirectoryInfo(clientdir); - DirectoryInfo[] Dirs = dinfo.GetDirectories(); - foreach (DirectoryInfo dir in Dirs) - { - string fulldirpath = dir.FullName + @"\" + cfgname; - string fulldllpath = dir.FullName + @"\opengl32.dll"; - - if (GlobalVars.UserConfiguration.ReShade) - { - if (!File.Exists(fulldirpath)) - { - File.Copy(fullpath, fulldirpath); - ReShadeValues(fulldirpath, write, false); - } - else - { - ReShadeValues(fulldirpath, write, false); - } - - if (!File.Exists(fulldllpath)) - { - File.Copy(GlobalPaths.ConfigDirData + "\\opengl32.dll", fulldllpath); - } - } - else - { - if (File.Exists(fulldirpath)) - { - File.Delete(fulldirpath); - } - - if (File.Exists(fulldllpath)) - { - File.Delete(fulldllpath); - } - } + info.ClientLoadOptions = Settings.GraphicsOptions.GetClientLoadOptionsForInt(Convert.ToInt32(clientloadoptions)); } + + info.CommandLineArgs = commandlineargs; } public static void ResetConfigValues() @@ -629,9 +662,9 @@ public class GlobalFuncs GlobalVars.UserConfiguration.DiscordPresence = true; GlobalVars.UserConfiguration.MapPath = GlobalPaths.MapsDir + @"\\" + GlobalVars.ProgramInformation.DefaultMap; GlobalVars.UserConfiguration.MapPathSnip = GlobalPaths.MapsDirBase + @"\\" + GlobalVars.ProgramInformation.DefaultMap; - GlobalVars.UserConfiguration.GraphicsMode = Settings.GraphicsOptions.Mode.OpenGL; + GlobalVars.UserConfiguration.GraphicsMode = Settings.GraphicsOptions.Mode.Automatic; GlobalVars.UserConfiguration.ReShade = false; - GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.Ultra; + GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.Automatic; GlobalVars.UserConfiguration.LauncherStyle = Settings.UIOptions.Style.Extended; ResetCustomizationValues(); } @@ -863,22 +896,47 @@ public class GlobalFuncs } } - public static string ChangeGameSettings() + public static void ChangeGameSettings(string ClientName) { - string result = ""; + FileFormat.ClientInfo info = GetClientInfoValues(ClientName); - if (!GlobalVars.SelectedClientInfo.NoGraphicsOptions) + int GraphicsMode = 0; + + if (info.ClientLoadOptions == Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21 || + info.ClientLoadOptions == Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomatic) { - switch (GlobalVars.UserConfiguration.GraphicsMode) + GraphicsMode = 1; + } + else + { + if (info.ClientLoadOptions != Settings.GraphicsOptions.ClientLoadOptions.Client_2007_NoGraphicsOptions || + info.ClientLoadOptions != Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions) { - case Settings.GraphicsOptions.Mode.OpenGL: - result += "xpcall( function() settings().Rendering.graphicsMode = 2 end, function( err ) settings().Rendering.graphicsMode = 4 end );"; - break; - case Settings.GraphicsOptions.Mode.DirectX: - result += "pcall(function() settings().Rendering.graphicsMode = 3 end);"; - break; - default: - break; + + switch (GlobalVars.UserConfiguration.GraphicsMode) + { + case Settings.GraphicsOptions.Mode.OpenGL: + switch (info.ClientLoadOptions) + { + case Settings.GraphicsOptions.ClientLoadOptions.Client_2007: + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL: + GraphicsMode = 2; + break; + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp: + case Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21: + GraphicsMode = 4; + break; + default: + break; + } + break; + case Settings.GraphicsOptions.Mode.DirectX: + GraphicsMode = 3; + break; + default: + GraphicsMode = 1; + break; + } } } @@ -886,15 +944,30 @@ public class GlobalFuncs int MeshDetail = 100; int ShadingQuality = 100; int GFXQualityLevel = 19; + if (info.ClientLoadOptions == Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21 || + info.ClientLoadOptions == Settings.GraphicsOptions.ClientLoadOptions.Client_2008AndUp_QualityLevel21) + { + GFXQualityLevel = 21; + } int MaterialQuality = 3; int AASamples = 8; int Bevels = 1; int Shadows_2008 = 1; + int AA = 1; bool Shadows_2007 = true; switch (GlobalVars.UserConfiguration.QualityLevel) { + case Settings.GraphicsOptions.Level.Automatic: + //set everything to automatic. Some ultra settings will still be enabled. + AA = 0; + Bevels = 0; + Shadows_2008 = 0; + GFXQualityLevel = 0; + MaterialQuality = 0; + break; case Settings.GraphicsOptions.Level.VeryLow: + AA = 2; MeshDetail = 50; ShadingQuality = 50; GFXQualityLevel = 1; @@ -905,6 +978,7 @@ public class GlobalFuncs Shadows_2007 = false; break; case Settings.GraphicsOptions.Level.Low: + AA = 2; MeshDetail = 50; ShadingQuality = 50; GFXQualityLevel = 5; @@ -934,28 +1008,74 @@ public class GlobalFuncs break; } - result += " pcall(function() settings().Rendering.maxMeshDetail = " + MeshDetail.ToString() + " end);" - + " pcall(function() settings().Rendering.maxShadingQuality = " + ShadingQuality.ToString() + " end);" - + " pcall(function() settings().Rendering.minMeshDetail = " + MeshDetail.ToString() + " end);" - + " pcall(function() settings().Rendering.minShadingQuality = " + ShadingQuality.ToString() + " end);" - + " pcall(function() settings().Rendering.AluminumQuality = " + MaterialQuality.ToString() + " end);" - + " pcall(function() settings().Rendering.CompoundMaterialQuality = " + MaterialQuality.ToString() + " end);" - + " pcall(function() settings().Rendering.CorrodedMetalQuality = " + MaterialQuality.ToString() + " end);" - + " pcall(function() settings().Rendering.DiamondPlateQuality = " + MaterialQuality.ToString() + " end);" - + " pcall(function() settings().Rendering.GrassQuality = " + MaterialQuality.ToString() + " end);" - + " pcall(function() settings().Rendering.IceQuality = " + MaterialQuality.ToString() + " end);" - + " pcall(function() settings().Rendering.PlasticQuality = " + MaterialQuality.ToString() + " end);" - + " pcall(function() settings().Rendering.SlateQuality = " + MaterialQuality.ToString() + " end);" - + " pcall(function() settings().Rendering.TrussDetail = " + MaterialQuality.ToString() + " end);" - + " pcall(function() settings().Rendering.WoodQuality = " + MaterialQuality.ToString() + " end);" - + " pcall(function() settings().Rendering.Antialiasing = 1 end);" - + " pcall(function() settings().Rendering.AASamples = " + AASamples.ToString() + " end);" - + " pcall(function() settings().Rendering.Bevels = " + Bevels.ToString() + " end);" - + " pcall(function() settings().Rendering.Shadow = " + Shadows_2008.ToString() + " end);" - + " pcall(function() settings().Rendering.Shadows = " + Shadows_2007.ToString().ToLower() + " end);" - + " pcall(function() settings().Rendering.QualityLevel = " + GFXQualityLevel.ToString() + " end);"; + try + { + string terms = "_" + ClientName; + string[] dirs = Directory.GetFiles(GlobalPaths.ConfigDirClients); - return result; + foreach (string dir in dirs) + { + if (dir.Contains(terms) && !dir.Contains("_default")) + { + string oldfile = ""; + string fixedfile = ""; + XDocument doc = null; + + try + { + oldfile = File.ReadAllText(dir); + fixedfile = RobloxXML.RemoveInvalidXmlChars(RobloxXML.ReplaceHexadecimalSymbols(oldfile)); + doc = XDocument.Parse(fixedfile); + } + catch (Exception) + { + return; + } + + try + { + if (GraphicsMode != 0) + { + RobloxXML.EditRenderSettings(doc, "graphicsMode", GraphicsMode.ToString(), XMLTypes.Token); + } + + RobloxXML.EditRenderSettings(doc, "maxMeshDetail", MeshDetail.ToString(), XMLTypes.Float); + RobloxXML.EditRenderSettings(doc, "maxShadingQuality", ShadingQuality.ToString(), XMLTypes.Float); + RobloxXML.EditRenderSettings(doc, "minMeshDetail", MeshDetail.ToString(), XMLTypes.Float); + RobloxXML.EditRenderSettings(doc, "minShadingQuality", ShadingQuality.ToString(), XMLTypes.Float); + RobloxXML.EditRenderSettings(doc, "AluminumQuality", MaterialQuality.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "CompoundMaterialQuality", MaterialQuality.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "CorrodedMetalQuality", MaterialQuality.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "DiamondPlateQuality", MaterialQuality.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "GrassQuality", MaterialQuality.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "IceQuality", MaterialQuality.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "PlasticQuality", MaterialQuality.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "SlateQuality", MaterialQuality.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "TrussDetail", MaterialQuality.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "WoodQuality", MaterialQuality.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "Antialiasing", AA.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "AASamples", AASamples.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "Bevels", Bevels.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "Shadow", Shadows_2008.ToString(), XMLTypes.Token); + RobloxXML.EditRenderSettings(doc, "Shadows", Shadows_2007.ToString().ToLower(), XMLTypes.Bool); + RobloxXML.EditRenderSettings(doc, "QualityLevel", GFXQualityLevel.ToString(), XMLTypes.Token); + } + catch (Exception) + { + return; + } + finally + { + doc.Save(dir); + FixedFileCopy(dir, Settings.GraphicsOptions.GetPathForClientLoadOptions(info.ClientLoadOptions) + @"\" + Path.GetFileName(dir).Replace(terms, "").Replace("-Shaders", ""), true); + } + } + } + } + catch (Exception) + { + return; + } } public static string GetLuaFileName() @@ -1050,6 +1170,8 @@ public class GlobalFuncs ReadClientValues(ClientName); #endif + ChangeGameSettings(ClientName); + string luafile = GetLuaFileName(ClientName); string rbxexe = GetClientEXEDir(ClientName, type); string mapfile = type.Equals(ScriptType.EasterEgg) ? GlobalPaths.ConfigDirData + "\\Appreciation.rbxl" : (nomap ? "" : GlobalVars.UserConfiguration.MapPath); @@ -1064,9 +1186,7 @@ public class GlobalFuncs { args = quote + mapfile - + "\" -script \"" - + ChangeGameSettings() - + " dofile('" + luafile + "'); " + + "\" -script \" dofile('" + luafile + "'); " + ScriptFuncs.Generator.GetScriptFuncForType(ClientName, type) + "; " + (!string.IsNullOrWhiteSpace(GlobalPaths.AddonScriptPath) ? " dofile('" + GlobalPaths.AddonScriptPath + "');" : "") diff --git a/Novetus/NovetusCore/StorageAndFunctions/GlobalPaths.cs b/Novetus/NovetusCore/StorageAndFunctions/GlobalPaths.cs index 3b2dd86..19559a7 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/GlobalPaths.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/GlobalPaths.cs @@ -14,6 +14,7 @@ public class GlobalPaths public static readonly string BasePath = RootPath.Replace(@"\", @"\\"); public static readonly string DataPath = BasePath + @"\\shareddata"; public static readonly string ConfigDir = BasePath + @"\\config"; + public static readonly string ConfigDirClients = ConfigDir + @"\\clients"; public static readonly string ConfigDirData = BasePathLauncher + @"\\data"; public static readonly string ClientDir = BasePath + @"\\clients"; public static readonly string MapsDir = BasePath + @"\\maps"; diff --git a/Novetus/NovetusCore/StorageAndFunctions/GlobalVars.cs b/Novetus/NovetusCore/StorageAndFunctions/GlobalVars.cs index f30e82a..b8011b3 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/GlobalVars.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/GlobalVars.cs @@ -3,6 +3,7 @@ * * change control names for all forms * Make launcher form line count smaller + * replace == and != with .equals */ #region Global Variables diff --git a/Novetus/NovetusCore/StorageAndFunctions/ScriptFuncs.cs b/Novetus/NovetusCore/StorageAndFunctions/ScriptFuncs.cs index 9b7683c..57e33c2 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/ScriptFuncs.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/ScriptFuncs.cs @@ -108,10 +108,11 @@ public class ScriptFuncs public static void GenerateScriptForClient(string ClientName, ScriptType type) { + GlobalFuncs.ChangeGameSettings(ClientName); + string code = GlobalFuncs.MultiLine( "--Load Script", //scriptcontents, - GlobalFuncs.ChangeGameSettings(), "dofile('rbxasset://scripts/" + GlobalPaths.ScriptName + ".lua')", GetScriptFuncForType(type), !string.IsNullOrWhiteSpace(GlobalPaths.AddonScriptPath) ? "dofile('" + GlobalPaths.AddonScriptPath + "')" : "" @@ -182,8 +183,7 @@ public class ScriptFuncs switch (type) { case ScriptType.Client: - return GlobalFuncs.ChangeGameSettings() + - " dofile('" + luafile + "'); _G.CSConnect(" + return "dofile('" + luafile + "'); _G.CSConnect(" + (GlobalVars.SelectedClientInfo.UsesID ? GlobalVars.UserConfiguration.UserID : 0) + ",'" + GlobalVars.IP + "'," + GlobalVars.UserConfiguration.RobloxPort + ",'" @@ -192,23 +192,19 @@ public class ScriptFuncs + md5s + ",'" + GlobalVars.UserConfiguration.PlayerTripcode + "')"; case ScriptType.Server: - return GlobalFuncs.ChangeGameSettings() + - " dofile('" + luafile + "'); _G.CSServer(" + return "dofile('" + luafile + "'); _G.CSServer(" + GlobalVars.UserConfiguration.RobloxPort + "," + GlobalVars.UserConfiguration.PlayerLimit + "," + md5s + "); " - + (!string.IsNullOrWhiteSpace(GlobalPaths.AddonScriptPath) ? GlobalFuncs.ChangeGameSettings() + - " dofile('" + GlobalPaths.AddonScriptPath + "');" : ""); + + (!string.IsNullOrWhiteSpace(GlobalPaths.AddonScriptPath) ? " dofile('" + GlobalPaths.AddonScriptPath + "');" : ""); case ScriptType.Solo: case ScriptType.EasterEgg: - return GlobalFuncs.ChangeGameSettings() - + " dofile('" + luafile + "'); _G.CSSolo(" + return "dofile('" + luafile + "'); _G.CSSolo(" + (GlobalVars.SelectedClientInfo.UsesID ? GlobalVars.UserConfiguration.UserID : 0) + ",'" + (GlobalVars.SelectedClientInfo.UsesPlayerName ? GlobalVars.UserConfiguration.PlayerName : "Player") + "'," + GlobalVars.soloLoadout + ")"; case ScriptType.Studio: - return GlobalFuncs.ChangeGameSettings() - + " dofile('" + luafile + "');"; + return "dofile('" + luafile + "');"; default: return ""; } @@ -267,6 +263,7 @@ public class ScriptFuncs string end = endtag; FileFormat.ClientInfo info = GlobalFuncs.GetClientInfoValues(ClientName); + GlobalFuncs.ChangeGameSettings(ClientName); ScriptType type = GetTypeFromTag(start); diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompact.Designer.cs b/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompact.Designer.cs index f138b53..0ec198b 100644 --- a/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompact.Designer.cs +++ b/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompact.Designer.cs @@ -1199,6 +1199,7 @@ namespace NovetusLauncher this.checkBox2.Text = "Discord Rich Presence"; this.checkBox2.UseVisualStyleBackColor = true; this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged); + this.checkBox2.Click += new System.EventHandler(this.CheckBox2Click); // // label18 // diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompact.cs b/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompact.cs index 08afdbd..e168733 100644 --- a/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompact.cs +++ b/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompact.cs @@ -442,7 +442,7 @@ namespace NovetusLauncher label12.Text = SplashReader.GetSplash(); LocalVars.prevsplash = label12.Text; - ReadConfigValues(); + ReadConfigValues(true); InitUPnP(); StartDiscord(); StartWebServer(); @@ -464,7 +464,7 @@ namespace NovetusLauncher } } - void ReadConfigValues() + void ReadConfigValues(bool initial = false) { GlobalFuncs.Config(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName, false); @@ -482,6 +482,7 @@ namespace NovetusLauncher label37.Text = GlobalVars.IP; label38.Text = GlobalVars.UserConfiguration.RobloxPort.ToString(); checkBox2.Checked = GlobalVars.UserConfiguration.DiscordPresence; + checkBox4.Checked = GlobalVars.UserConfiguration.UPnP; switch (GlobalVars.UserConfiguration.LauncherStyle) { @@ -495,12 +496,13 @@ namespace NovetusLauncher } GlobalFuncs.ConsolePrint("Config loaded.", 3, richTextBox1); - ReadClientValues(); + ReadClientValues(initial); } void WriteConfigValues() { GlobalFuncs.Config(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName, true); + GlobalFuncs.ReadClientValues(richTextBox1); GlobalFuncs.ConsolePrint("Config Saved.", 3, richTextBox1); } @@ -510,9 +512,9 @@ namespace NovetusLauncher GlobalFuncs.ConsolePrint("Config Saved.", 3, richTextBox1); } - void ReadClientValues() + void ReadClientValues(bool initial = false) { - GlobalFuncs.ReadClientValues(richTextBox1); + GlobalFuncs.ReadClientValues(richTextBox1, initial); switch (GlobalVars.SelectedClientInfo.UsesPlayerName) { @@ -599,8 +601,16 @@ namespace NovetusLauncher void ListBox2SelectedIndexChanged(object sender, EventArgs e) { + string ourselectedclient = GlobalVars.UserConfiguration.SelectedClient; GlobalVars.UserConfiguration.SelectedClient = listBox2.SelectedItem.ToString(); - ReadClientValues(); + if (!ourselectedclient.Equals(GlobalVars.UserConfiguration.SelectedClient)) + { + ReadClientValues(true); + } + else + { + ReadClientValues(); + } GlobalFuncs.UpdateRichPresence(GlobalVars.LauncherState.InLauncher, ""); } @@ -1030,7 +1040,18 @@ namespace NovetusLauncher void CheckBox4Click(object sender, EventArgs e) { - MessageBox.Show("Please restart the Novetus launcher for this option to take effect." + Environment.NewLine + "Make sure to check if your router has UPnP functionality enabled. Please note that some routers may not support UPnP, and some ISPs will block the UPnP protocol. This may not work for all users.", "Novetus - UPnP", MessageBoxButtons.OK, MessageBoxIcon.Information); + switch (checkBox4.Checked) + { + case false: + MessageBox.Show("Novetus will now restart.", "Novetus - UPnP", MessageBoxButtons.OK, MessageBoxIcon.Information); + break; + default: + MessageBox.Show("Novetus will now restart." + Environment.NewLine + "Make sure to check if your router has UPnP functionality enabled. Please note that some routers may not support UPnP, and some ISPs will block the UPnP protocol. This may not work for all users.", "Novetus - UPnP", MessageBoxButtons.OK, MessageBoxIcon.Information); + break; + } + + WriteConfigValues(); + Application.Restart(); } void Button24Click(object sender, EventArgs e) @@ -1095,47 +1116,22 @@ namespace NovetusLauncher private void checkBox2_CheckedChanged(object sender, EventArgs e) { GlobalVars.UserConfiguration.DiscordPresence = checkBox2.Checked; - MessageBox.Show("Restart the launcher to apply changes."); } - private void button27_Click(object sender, EventArgs e) + void CheckBox2Click(object sender, EventArgs e) { - tabControl1.SelectedTab = tabPage1; - } + switch (checkBox2.Checked) + { + case false: + MessageBox.Show("Novetus will now restart.", "Novetus - Discord Rich Presence", MessageBoxButtons.OK, MessageBoxIcon.Information); + break; + default: + MessageBox.Show("Novetus will now restart." + Environment.NewLine + "Make sure the Discord app is open so this change can take effect.", "Novetus - Discord Rich Presence", MessageBoxButtons.OK, MessageBoxIcon.Information); + break; + } - private void button20_Click(object sender, EventArgs e) - { - tabControl1.SelectedTab = tabPage2; - } - - private void button28_Click(object sender, EventArgs e) - { - tabControl1.SelectedTab = tabPage3; - } - - private void button29_Click(object sender, EventArgs e) - { - tabControl1.SelectedTab = tabPage4; - } - - private void button30_Click(object sender, EventArgs e) - { - tabControl1.SelectedTab = tabPage6; - } - - private void button31_Click(object sender, EventArgs e) - { - tabControl1.SelectedTab = tabPage7; - } - - private void button32_Click(object sender, EventArgs e) - { - tabControl1.SelectedTab = tabPage8; - } - - private void button33_Click(object sender, EventArgs e) - { - tabControl1.SelectedTab = tabPage5; + WriteConfigValues(); + Application.Restart(); } private void button34_Click(object sender, EventArgs e) @@ -1182,9 +1178,15 @@ namespace NovetusLauncher void SettingsButtonClick(object sender, EventArgs e) { LauncherFormCompactSettings im = new LauncherFormCompactSettings(); + im.FormClosing += SettingsExited; im.Show(); } + void SettingsExited(object sender, FormClosingEventArgs e) + { + GlobalFuncs.ReadClientValues(richTextBox1); + } + void Button3Click_legacy(object sender, EventArgs e) { DialogResult result = MessageBox.Show("If you want to test out your place, you will have to save your place in Novetus's map folder, then launch your place in Play Solo." + Environment.NewLine + Environment.NewLine + "Press Yes to launch Studio with a map, or No to launch Studio without a map.", "Novetus - Launch ROBLOX Studio", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information); diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompactSettings.Designer.cs b/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompactSettings.Designer.cs index 9db73c1..50cb77e 100644 --- a/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompactSettings.Designer.cs +++ b/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompactSettings.Designer.cs @@ -57,6 +57,7 @@ this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBox2.FormattingEnabled = true; this.comboBox2.Items.AddRange(new object[] { + "Automatic", "Very Low", "Low", "Medium", @@ -82,6 +83,7 @@ this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBox1.FormattingEnabled = true; this.comboBox1.Items.AddRange(new object[] { + "Automatic", "OpenGL", "DirectX"}); this.comboBox1.Location = new System.Drawing.Point(129, 12); diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompactSettings.cs b/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompactSettings.cs index 69d8a8e..eb54d0d 100644 --- a/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompactSettings.cs +++ b/Novetus/NovetusLauncher/Forms/LauncherForm/Compact/LauncherFormCompactSettings.cs @@ -19,10 +19,12 @@ namespace NovetusLauncher switch (GlobalVars.UserConfiguration.GraphicsMode) { - case Settings.GraphicsOptions.Mode.DirectX: + case Settings.GraphicsOptions.Mode.OpenGL: comboBox1.SelectedIndex = 1; break; - case Settings.GraphicsOptions.Mode.OpenGL: + case Settings.GraphicsOptions.Mode.DirectX: + comboBox1.SelectedIndex = 2; + break; default: comboBox1.SelectedIndex = 0; break; @@ -31,21 +33,23 @@ namespace NovetusLauncher switch (GlobalVars.UserConfiguration.QualityLevel) { case Settings.GraphicsOptions.Level.VeryLow: - comboBox2.SelectedIndex = 0; - break; - case Settings.GraphicsOptions.Level.Low: comboBox2.SelectedIndex = 1; break; - case Settings.GraphicsOptions.Level.Medium: + case Settings.GraphicsOptions.Level.Low: comboBox2.SelectedIndex = 2; break; - case Settings.GraphicsOptions.Level.High: + case Settings.GraphicsOptions.Level.Medium: comboBox2.SelectedIndex = 3; break; - case Settings.GraphicsOptions.Level.Ultra: - default: + case Settings.GraphicsOptions.Level.High: comboBox2.SelectedIndex = 4; break; + case Settings.GraphicsOptions.Level.Ultra: + comboBox2.SelectedIndex = 5; + break; + default: + comboBox2.SelectedIndex = 0; + break; } } @@ -71,9 +75,12 @@ namespace NovetusLauncher case 1: GlobalVars.UserConfiguration.GraphicsMode = Settings.GraphicsOptions.Mode.DirectX; break; - default: + case 2: GlobalVars.UserConfiguration.GraphicsMode = Settings.GraphicsOptions.Mode.OpenGL; break; + default: + GlobalVars.UserConfiguration.GraphicsMode = Settings.GraphicsOptions.Mode.Automatic; + break; } } @@ -81,22 +88,24 @@ namespace NovetusLauncher { switch (comboBox2.SelectedIndex) { - case 0: + case 1: GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.VeryLow; break; - case 1: + case 2: GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.Low; break; - case 2: + case 3: GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.Medium; break; - case 3: + case 4: GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.High; break; - case 4: - default: + case 5: GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.Ultra; break; + default: + GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.Automatic; + break; } } diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.Designer.cs b/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.Designer.cs index 85a8c6f..24949ca 100644 --- a/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.Designer.cs +++ b/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.Designer.cs @@ -70,11 +70,6 @@ namespace NovetusLauncher this.button28 = new System.Windows.Forms.Button(); this.button34 = new System.Windows.Forms.Button(); this.panel2 = new System.Windows.Forms.Panel(); - this.SettingsButton = new System.Windows.Forms.Button(); - this.panel3 = new System.Windows.Forms.Panel(); - this.panel4 = new System.Windows.Forms.Panel(); - this.button35 = new System.Windows.Forms.Button(); - this.UAButton = new System.Windows.Forms.Button(); this.tabControl1 = new TabControlWithoutHeader(); this.tabPage1 = new System.Windows.Forms.TabPage(); this.label24 = new System.Windows.Forms.Label(); @@ -153,11 +148,14 @@ namespace NovetusLauncher this.label18 = new System.Windows.Forms.Label(); this.label8 = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label(); + this.SettingsButton = new System.Windows.Forms.Button(); + this.panel3 = new System.Windows.Forms.Panel(); + this.panel4 = new System.Windows.Forms.Panel(); + this.button35 = new System.Windows.Forms.Button(); + this.UAButton = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); this.panel1.SuspendLayout(); this.panel2.SuspendLayout(); - this.panel3.SuspendLayout(); - this.panel4.SuspendLayout(); this.tabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); @@ -171,6 +169,8 @@ namespace NovetusLauncher this.tabPage8.SuspendLayout(); this.tabPage5.SuspendLayout(); this.panel5.SuspendLayout(); + this.panel3.SuspendLayout(); + this.panel4.SuspendLayout(); this.SuspendLayout(); // // button25 @@ -461,61 +461,6 @@ namespace NovetusLauncher this.panel2.Size = new System.Drawing.Size(646, 311); this.panel2.TabIndex = 61; // - // SettingsButton - // - this.SettingsButton.Location = new System.Drawing.Point(0, 0); - this.SettingsButton.Name = "SettingsButton"; - this.SettingsButton.Size = new System.Drawing.Size(75, 23); - this.SettingsButton.TabIndex = 0; - // - // panel3 - // - this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.panel3.Controls.Add(this.pictureBox2); - this.panel3.Controls.Add(this.textBox2); - this.panel3.Controls.Add(this.textBox5); - this.panel3.Controls.Add(this.button4); - this.panel3.Controls.Add(this.label16); - this.panel3.Controls.Add(this.label15); - this.panel3.Controls.Add(this.label12); - this.panel3.Controls.Add(this.label13); - this.panel3.Location = new System.Drawing.Point(1, 4); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(229, 69); - this.panel3.TabIndex = 62; - // - // panel4 - // - this.panel4.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.panel4.Controls.Add(this.button35); - this.panel4.Controls.Add(this.button34); - this.panel4.Controls.Add(this.button21); - this.panel4.Controls.Add(this.button8); - this.panel4.Controls.Add(this.button3); - this.panel4.Controls.Add(this.button25); - this.panel4.Location = new System.Drawing.Point(236, 41); - this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(501, 32); - this.panel4.TabIndex = 63; - // - // button35 - // - this.button35.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button35.Location = new System.Drawing.Point(113, 3); - this.button35.Name = "button35"; - this.button35.Size = new System.Drawing.Size(41, 20); - this.button35.TabIndex = 61; - this.button35.Text = "Studio"; - this.button35.UseVisualStyleBackColor = true; - this.button35.Click += new System.EventHandler(this.button35_Click); - // - // UAButton - // - this.UAButton.Location = new System.Drawing.Point(0, 0); - this.UAButton.Name = "UAButton"; - this.UAButton.Size = new System.Drawing.Size(75, 23); - this.UAButton.TabIndex = 0; - // // tabControl1 // this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Bottom; @@ -745,7 +690,7 @@ namespace NovetusLauncher // // checkBox4 // - this.checkBox4.Location = new System.Drawing.Point(438, 155); + this.checkBox4.Location = new System.Drawing.Point(321, 180); this.checkBox4.Name = "checkBox4"; this.checkBox4.Size = new System.Drawing.Size(104, 17); this.checkBox4.TabIndex = 57; @@ -1236,6 +1181,7 @@ namespace NovetusLauncher this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBox2.FormattingEnabled = true; this.comboBox2.Items.AddRange(new object[] { + "Automatic", "Very Low", "Low", "Medium", @@ -1261,6 +1207,7 @@ namespace NovetusLauncher this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBox1.FormattingEnabled = true; this.comboBox1.Items.AddRange(new object[] { + "Automatic", "OpenGL", "DirectX"}); this.comboBox1.Location = new System.Drawing.Point(90, 108); @@ -1281,6 +1228,7 @@ namespace NovetusLauncher this.checkBox2.Text = "Discord Rich Presence"; this.checkBox2.UseVisualStyleBackColor = true; this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged); + this.checkBox2.Click += new System.EventHandler(this.CheckBox2Click); // // checkBox6 // @@ -1428,6 +1376,61 @@ namespace NovetusLauncher this.label7.Text = "PROJECT STARLIGHT"; this.label7.TextAlign = System.Drawing.ContentAlignment.TopCenter; // + // SettingsButton + // + this.SettingsButton.Location = new System.Drawing.Point(0, 0); + this.SettingsButton.Name = "SettingsButton"; + this.SettingsButton.Size = new System.Drawing.Size(75, 23); + this.SettingsButton.TabIndex = 0; + // + // panel3 + // + this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.panel3.Controls.Add(this.pictureBox2); + this.panel3.Controls.Add(this.textBox2); + this.panel3.Controls.Add(this.textBox5); + this.panel3.Controls.Add(this.button4); + this.panel3.Controls.Add(this.label16); + this.panel3.Controls.Add(this.label15); + this.panel3.Controls.Add(this.label12); + this.panel3.Controls.Add(this.label13); + this.panel3.Location = new System.Drawing.Point(1, 4); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(229, 69); + this.panel3.TabIndex = 62; + // + // panel4 + // + this.panel4.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.panel4.Controls.Add(this.button35); + this.panel4.Controls.Add(this.button34); + this.panel4.Controls.Add(this.button21); + this.panel4.Controls.Add(this.button8); + this.panel4.Controls.Add(this.button3); + this.panel4.Controls.Add(this.button25); + this.panel4.Location = new System.Drawing.Point(236, 41); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(501, 32); + this.panel4.TabIndex = 63; + // + // button35 + // + this.button35.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button35.Location = new System.Drawing.Point(113, 3); + this.button35.Name = "button35"; + this.button35.Size = new System.Drawing.Size(41, 20); + this.button35.TabIndex = 61; + this.button35.Text = "Studio"; + this.button35.UseVisualStyleBackColor = true; + this.button35.Click += new System.EventHandler(this.button35_Click); + // + // UAButton + // + this.UAButton.Location = new System.Drawing.Point(0, 0); + this.UAButton.Name = "UAButton"; + this.UAButton.Size = new System.Drawing.Size(75, 23); + this.UAButton.TabIndex = 0; + // // LauncherFormExtended // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -1454,9 +1457,6 @@ namespace NovetusLauncher ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); this.panel1.ResumeLayout(false); this.panel2.ResumeLayout(false); - this.panel3.ResumeLayout(false); - this.panel3.PerformLayout(); - this.panel4.ResumeLayout(false); this.tabControl1.ResumeLayout(false); this.tabPage1.ResumeLayout(false); this.tabPage1.PerformLayout(); @@ -1475,6 +1475,9 @@ namespace NovetusLauncher this.tabPage5.ResumeLayout(false); this.panel5.ResumeLayout(false); this.panel5.PerformLayout(); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + this.panel4.ResumeLayout(false); this.ResumeLayout(false); } diff --git a/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.cs b/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.cs index a984227..29cb166 100644 --- a/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.cs +++ b/Novetus/NovetusLauncher/Forms/LauncherForm/Extended/LauncherFormExtended.cs @@ -446,7 +446,7 @@ namespace NovetusLauncher label12.Text = SplashReader.GetSplash(); LocalVars.prevsplash = label12.Text; - ReadConfigValues(); + ReadConfigValues(true); InitUPnP(); StartDiscord(); StartWebServer(); @@ -467,8 +467,8 @@ namespace NovetusLauncher StopWebServer(); } } - - void ReadConfigValues() + + void ReadConfigValues(bool initial = false) { GlobalFuncs.Config(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName, false); @@ -489,13 +489,16 @@ namespace NovetusLauncher checkBox5.Checked = GlobalVars.UserConfiguration.ReShade; checkBox6.Checked = GlobalVars.UserConfiguration.ReShadeFPSDisplay; checkBox7.Checked = GlobalVars.UserConfiguration.ReShadePerformanceMode; + checkBox4.Checked = GlobalVars.UserConfiguration.UPnP; switch (GlobalVars.UserConfiguration.GraphicsMode) { - case Settings.GraphicsOptions.Mode.DirectX: + case Settings.GraphicsOptions.Mode.OpenGL: comboBox1.SelectedIndex = 1; break; - case Settings.GraphicsOptions.Mode.OpenGL: + case Settings.GraphicsOptions.Mode.DirectX: + comboBox1.SelectedIndex = 2; + break; default: comboBox1.SelectedIndex = 0; break; @@ -504,21 +507,23 @@ namespace NovetusLauncher switch (GlobalVars.UserConfiguration.QualityLevel) { case Settings.GraphicsOptions.Level.VeryLow: - comboBox2.SelectedIndex = 0; - break; - case Settings.GraphicsOptions.Level.Low: comboBox2.SelectedIndex = 1; break; - case Settings.GraphicsOptions.Level.Medium: + case Settings.GraphicsOptions.Level.Low: comboBox2.SelectedIndex = 2; break; - case Settings.GraphicsOptions.Level.High: + case Settings.GraphicsOptions.Level.Medium: comboBox2.SelectedIndex = 3; break; - case Settings.GraphicsOptions.Level.Ultra: - default: + case Settings.GraphicsOptions.Level.High: comboBox2.SelectedIndex = 4; break; + case Settings.GraphicsOptions.Level.Ultra: + comboBox2.SelectedIndex = 5; + break; + default: + comboBox2.SelectedIndex = 0; + break; } switch (GlobalVars.UserConfiguration.LauncherStyle) @@ -533,13 +538,14 @@ namespace NovetusLauncher } GlobalFuncs.ConsolePrint("Config loaded.", 3, richTextBox1); - ReadClientValues(); + ReadClientValues(initial); } void WriteConfigValues() { GlobalFuncs.Config(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName, true); - GlobalFuncs.ConsolePrint("Config Saved.", 3, richTextBox1); + GlobalFuncs.ReadClientValues(richTextBox1); + GlobalFuncs.ConsolePrint("Config Saved.", 3, richTextBox1); } void WriteCustomizationValues() @@ -548,9 +554,9 @@ namespace NovetusLauncher GlobalFuncs.ConsolePrint("Config Saved.", 3, richTextBox1); } - void ReadClientValues() + void ReadClientValues(bool initial = false) { - GlobalFuncs.ReadClientValues(richTextBox1); + GlobalFuncs.ReadClientValues(richTextBox1, initial); switch (GlobalVars.SelectedClientInfo.UsesPlayerName) { @@ -637,9 +643,17 @@ namespace NovetusLauncher void ListBox2SelectedIndexChanged(object sender, EventArgs e) { + string ourselectedclient = GlobalVars.UserConfiguration.SelectedClient; GlobalVars.UserConfiguration.SelectedClient = listBox2.SelectedItem.ToString(); - ReadClientValues(); - GlobalFuncs.UpdateRichPresence(GlobalVars.LauncherState.InLauncher, ""); + if (!ourselectedclient.Equals(GlobalVars.UserConfiguration.SelectedClient)) + { + ReadClientValues(true); + } + else + { + ReadClientValues(); + } + GlobalFuncs.UpdateRichPresence(GlobalVars.LauncherState.InLauncher, ""); } void CheckBox3CheckedChanged(object sender, EventArgs e) @@ -1065,12 +1079,23 @@ namespace NovetusLauncher { GlobalVars.UserConfiguration.UPnP = checkBox4.Checked; } - + void CheckBox4Click(object sender, EventArgs e) { - MessageBox.Show("Please restart the Novetus launcher for this option to take effect." + Environment.NewLine + "Make sure to check if your router has UPnP functionality enabled. Please note that some routers may not support UPnP, and some ISPs will block the UPnP protocol. This may not work for all users.","Novetus - UPnP", MessageBoxButtons.OK, MessageBoxIcon.Information); + switch (checkBox4.Checked) + { + case false: + MessageBox.Show("Novetus will now restart.", "Novetus - UPnP", MessageBoxButtons.OK, MessageBoxIcon.Information); + break; + default: + MessageBox.Show("Novetus will now restart." + Environment.NewLine + "Make sure to check if your router has UPnP functionality enabled. Please note that some routers may not support UPnP, and some ISPs will block the UPnP protocol. This may not work for all users.", "Novetus - UPnP", MessageBoxButtons.OK, MessageBoxIcon.Information); + break; + } + + WriteConfigValues(); + Application.Restart(); } - + void Button24Click(object sender, EventArgs e) { treeView1.Nodes.Clear(); @@ -1133,10 +1158,25 @@ namespace NovetusLauncher private void checkBox2_CheckedChanged(object sender, EventArgs e) { GlobalVars.UserConfiguration.DiscordPresence = checkBox2.Checked; - MessageBox.Show("Restart the launcher to apply changes."); } - private void button27_Click(object sender, EventArgs e) + void CheckBox2Click(object sender, EventArgs e) + { + switch (checkBox2.Checked) + { + case false: + MessageBox.Show("Novetus will now restart.", "Novetus - Discord Rich Presence", MessageBoxButtons.OK, MessageBoxIcon.Information); + break; + default: + MessageBox.Show("Novetus will now restart." + Environment.NewLine + "Make sure the Discord app is open so this change can take effect.", "Novetus - Discord Rich Presence", MessageBoxButtons.OK, MessageBoxIcon.Information); + break; + } + + WriteConfigValues(); + Application.Restart(); + } + + private void button27_Click(object sender, EventArgs e) { tabControl1.SelectedTab = tabPage1; } @@ -1239,33 +1279,42 @@ namespace NovetusLauncher case 1: GlobalVars.UserConfiguration.GraphicsMode = Settings.GraphicsOptions.Mode.DirectX; break; - default: + case 2: GlobalVars.UserConfiguration.GraphicsMode = Settings.GraphicsOptions.Mode.OpenGL; break; + default: + GlobalVars.UserConfiguration.GraphicsMode = Settings.GraphicsOptions.Mode.Automatic; + break; } + + GlobalFuncs.ReadClientValues(richTextBox1); } - private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) - { + private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) + { switch (comboBox2.SelectedIndex) { - case 0: + case 1: GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.VeryLow; break; - case 1: + case 2: GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.Low; break; - case 2: + case 3: GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.Medium; break; - case 3: + case 4: GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.High; break; - case 4: - default: + case 5: GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.Ultra; break; + default: + GlobalVars.UserConfiguration.QualityLevel = Settings.GraphicsOptions.Level.Automatic; + break; } + + GlobalFuncs.ReadClientValues(richTextBox1); } private void comboBox3_SelectedIndexChanged(object sender, EventArgs e) diff --git a/Novetus/NovetusURI/Forms/QuickConfigure.cs b/Novetus/NovetusURI/Forms/QuickConfigure.cs index 96aec77..17c376a 100644 --- a/Novetus/NovetusURI/Forms/QuickConfigure.cs +++ b/Novetus/NovetusURI/Forms/QuickConfigure.cs @@ -91,6 +91,7 @@ namespace NovetusURI void QuickConfigureClose(object sender, CancelEventArgs e) { GlobalFuncs.Config(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ConfigName, true); + GlobalFuncs.ReadClientValues(); LocalVars.ReadyToLaunch = true; } #endregion diff --git a/batch/dev_menu.bat b/batch/dev_menu.bat index 52a5c19..e86d33b 100644 --- a/batch/dev_menu.bat +++ b/batch/dev_menu.bat @@ -118,6 +118,18 @@ del /s /q Novetus\config\ports.txt del /s /q Novetus\config\ReShade.ini del /s /q Novetus\config\config.ini del /s /q Novetus\config\config_customization.ini + +del /s /q Novetus\config\clients\GlobalSettings_4_2009E.xml +del /s /q Novetus\config\clients\GlobalSettings_4_2009L.xml +del /s /q Novetus\config\clients\GlobalSettings_4_2010L.xml +del /s /q Novetus\config\clients\GlobalSettings_4_2011E.xml +del /s /q Novetus\config\clients\GlobalSettings_4_2011M.xml +del /s /q Novetus\config\clients\GlobalSettings4_2006S.xml +del /s /q Novetus\config\clients\GlobalSettings4_2006S-Shaders.xml +del /s /q Novetus\config\clients\GlobalSettings4_2007M.xml +del /s /q Novetus\config\clients\GlobalSettings4_2007M-Shaders.xml +del /s /q Novetus\config\clients\GlobalSettings7_2008M.xml + rmdir /s /q Novetus\shareddata\assetcache echo Junk files cleaned. @@ -166,11 +178,16 @@ rmdir /s /q "Novetus-Lite\clients\2006S" rmdir /s /q "Novetus-Lite\clients\2006S-Shaders" rmdir /s /q "Novetus-Lite\clients\2007M-Shaders" rmdir /s /q "Novetus-Lite\clients\2009E" +del /s /q Novetus-Lite\config\clients\GlobalSettings_4_2009E_default.xml +del /s /q Novetus-Lite\config\clients\GlobalSettings4_2006S_default.xml +del /s /q Novetus-Lite\config\clients\GlobalSettings4_2006S-Shaders_default.xml +del /s /q Novetus-Lite\config\clients\GlobalSettings4_2007M-Shaders_default.xml rmdir /s /q "Novetus-Lite\shareddata\music\ROBLOX\OldSoundtrack" rmdir /s /q "Novetus-Lite\bin\data\php" robocopy litefiles Novetus-lite /E butler push Novetus-Lite bitl/novetus:windows-lite --if-changed --userversion-file releasenomapsversion.txt pause +rmdir /s /q "Novetus-Lite" GOTO MENU :BETA @@ -193,11 +210,16 @@ rmdir /s /q "Novetus-Lite\clients\2006S" rmdir /s /q "Novetus-Lite\clients\2006S-Shaders" rmdir /s /q "Novetus-Lite\clients\2007M-Shaders" rmdir /s /q "Novetus-Lite\clients\2009E" +del /s /q Novetus-Lite\config\clients\GlobalSettings_4_2009E_default.xml +del /s /q Novetus-Lite\config\clients\GlobalSettings4_2006S_default.xml +del /s /q Novetus-Lite\config\clients\GlobalSettings4_2006S-Shaders_default.xml +del /s /q Novetus-Lite\config\clients\GlobalSettings4_2007M-Shaders_default.xml rmdir /s /q "Novetus-Lite\shareddata\music\ROBLOX\OldSoundtrack" rmdir /s /q "Novetus-Lite\bin\data\php" robocopy litefiles Novetus-lite /E butler push Novetus-Lite bitl/novetus:windows-lite --if-changed --userversion-file releasenomapsversion.txt --dry-run pause +rmdir /s /q "Novetus-Lite" GOTO MENU :BETA_DRY diff --git a/old/BodyColors.xml b/old/BodyColors.xml deleted file mode 100644 index 5a83647..0000000 --- a/old/BodyColors.xml +++ /dev/null @@ -1,16 +0,0 @@ - - null - nil - - - {0} - {1} - {2} - Body Colors - {3} - {4} - {5} - true - - - \ No newline at end of file diff --git a/old/Install URI.bat b/old/Install URI.bat deleted file mode 100644 index 39ba460..0000000 --- a/old/Install URI.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -setlocal -cd /d %~dp0 -start "" "%CD%/bin/NovetusURI.exe" -pause \ No newline at end of file diff --git a/old/Novetus.bat b/old/Novetus.bat deleted file mode 100644 index a39bab0..0000000 --- a/old/Novetus.bat +++ /dev/null @@ -1,55 +0,0 @@ -@ECHO OFF -setlocal -cd /d %~dp0 -:MENU -CLS -ECHO --------------------------------------------------------------------------- -ECHO NhhhhhhhhhhN hsssoosssd -ECHO NyyyyhhhhyyhdN hoo++++++h -ECHO NyyyyyhhhhyyyhN hoo+++///h -ECHO NssssyyyyyhyyyhdN hoo+++///h -ECHO Nsossssyyyyyyyyyhm hsoo++///h -ECHO NsssssssssyyyyyyyhdN hssoo++//h -ECHO Nsssssssssssyyyyhhhdm hsssoo+++h -ECHO NyssssssssysyyyyhhhhhdN NNNNNmmmmdddddhhysoooo+++ymNN -ECHO Nhyyssssssmdyyyyhhhhhyhyysssssooooooooosssooooo++osssyhdmN -ECHO Nhyyyyssssddhyyyhhyyysssosyyhhhddmmmmmmmyooooo+++yhyssoosydN -ECHO NdhhyyyysssoosyhyyyssooooydN y++++++++hN NNdhsoohN -ECHO NmdhhhyyyysyhddmNmhyssooooooshN s++++++++h doosm -ECHO NNdhysoyyyysssssm NdsoooooooooydN s/////+++h NmyooyN -ECHO Ndysoosyhyysssooosm myooooooososhN s///////+h Ndhsoshm -ECHO mhsoosydmNmysooooooom NdssssssssooydN s////////hdhssosydN -ECHO NhsosydN Nsoooo+++om mhssssssoooohm y++/////+soosyhmN -ECHO NhoosdN Nsooo+++oom NdyssssooooosdN Ny++++oooosydmN -ECHO msood Noooooooosm Nhssooooooooydhysoooo++++hN -ECHO NhooshmN Nsoooooossm Nmhsoooooooooooso++////++h -ECHO Nhysossyhhdddoooooooosdmmmmmdddhhhyysssoooooooooo++ss++//++++h -ECHO Nmhyyssooooooooooooosssooooooossssyyhhdds+++++++++++++++oood -ECHO NNmmmddssooooooohhhhddddmmmNNNN Ny+++++++++++++osssd -ECHO Nyyssssoosm Nds+++++++++oosssyd -ECHO Nhyyysssssm Nho++++++oossssyd -ECHO Nyyyyyssssm ms+++++ooossssd -ECHO Nyyyssssssm Nho+++ooossssd -ECHO Nhyyyyyyyym mysssssyyyyd -ECHO --------------------------------------------------------------------------- -ECHO. -ECHO 1 - Play -ECHO 2 - Novetus SDK -ECHO 3 - Novetus CMD -ECHO 4 - Install URI -ECHO 5 - Exit -ECHO. -SET /P M=Choose an option by typing the number corresponding to which utility you want to launch: -IF %M%==1 CLS -IF %M%==1 start "" "%CD%/bin/Novetus.exe" -IF %M%==1 EXIT -IF %M%==2 CLS -IF %M%==2 start "" "%CD%/bin/Novetus.exe" -sdk -IF %M%==2 EXIT -IF %M%==3 CLS -IF %M%==3 "bin/NovetusCMD.exe" -IF %M%==4 CLS -IF %M%==4 start "" "%CD%/bin/NovetusURI.exe" -IF %M%==4 EXIT -IF %M%==5 EXIT -EXIT diff --git a/old/NovetusCMDLauncher.bat b/old/NovetusCMDLauncher.bat deleted file mode 100644 index 1304114..0000000 --- a/old/NovetusCMDLauncher.bat +++ /dev/null @@ -1,18 +0,0 @@ -@echo off -:start -cls -ECHO Novetus CMD -ECHO. -ECHO 1 - Launch Normally -ECHO 2 - Launch in No3D mode. -ECHO. -ECHO 0 - Exit -ECHO. -ECHO. -SET /P A=Select a option: -IF "%A%" EQU "1" cls -IF "%A%" EQU "1" NovetusCMD.exe -IF "%A%" EQU "2" cls -IF "%A%" EQU "2" NovetusCMD.exe -no3d -IF "%A%" EQU "0" EXIT -EXIT \ No newline at end of file diff --git a/old/NovetusSDK.bat b/old/NovetusSDK.bat deleted file mode 100644 index c9121ba..0000000 --- a/old/NovetusSDK.bat +++ /dev/null @@ -1,24 +0,0 @@ -@echo off -:start -cls -ECHO Novetus SDK -ECHO. -ECHO 1 - Client SDK -ECHO 2 - ClientScript Documentation -ECHO 3 - Item SDK -ECHO. -ECHO 0 - Exit -ECHO. -ECHO. -SET /P A=Select a option: -IF "%A%" EQU "1" start Novetus.exe -clientinfo -IF "%A%" EQU "1" cls -IF "%A%" EQU "1" goto start -IF "%A%" EQU "2" start Novetus.exe -documentation -IF "%A%" EQU "2" cls -IF "%A%" EQU "2" goto start -IF "%A%" EQU "3" start Novetus.exe -itemmaker -IF "%A%" EQU "3" cls -IF "%A%" EQU "3" goto start -IF "%A%" EQU "0" EXIT -EXIT \ No newline at end of file diff --git a/old/Start Novetus CMD.bat b/old/Start Novetus CMD.bat deleted file mode 100644 index 2bb33b5..0000000 --- a/old/Start Novetus CMD.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -setlocal -cd /d %~dp0 -"bin/NovetusCMD.exe" -pause \ No newline at end of file diff --git a/old/Start Novetus SDK.bat b/old/Start Novetus SDK.bat deleted file mode 100644 index f00506c..0000000 --- a/old/Start Novetus SDK.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -setlocal -cd /d %~dp0 -start "" "%CD%/bin/Novetus.exe" -sdk -exit \ No newline at end of file diff --git a/old/Start Novetus.bat b/old/Start Novetus.bat deleted file mode 100644 index bf555ba..0000000 --- a/old/Start Novetus.bat +++ /dev/null @@ -1,5 +0,0 @@ -@echo off -setlocal -cd /d %~dp0 -start "" "%CD%/bin/Novetus.exe" -exit \ No newline at end of file