From 27fe0e777d5c6100623c28f0cd2b26b277779a2a Mon Sep 17 00:00:00 2001 From: Bitl Date: Wed, 14 Feb 2024 19:06:04 -0700 Subject: [PATCH] preliminary work on new client format --- .../Classes/NovetusEssentials/Client.cs | 92 ++++++------- .../Classes/NovetusEssentials/FileFormat.cs | 123 +++++++++++++++++- .../Classes/NovetusEssentials/Script.cs | 8 +- .../Classes/NovetusEssentials/Settings.cs | 54 -------- .../StorageAndFunctions/GlobalVars.cs | 2 +- .../Forms/CustomGraphicsOptions.cs | 10 +- .../Forms/SDK/Legacy/ClientinfoCreator.cs | 12 +- .../Forms/SDK/NovetusSDK.Designer.cs | 2 +- .../NovetusLauncher/Forms/SDK/NovetusSDK.resx | 2 +- 9 files changed, 185 insertions(+), 120 deletions(-) diff --git a/Novetus/NovetusCore/Classes/NovetusEssentials/Client.cs b/Novetus/NovetusCore/Classes/NovetusEssentials/Client.cs index ef9a393..28de2b6 100644 --- a/Novetus/NovetusCore/Classes/NovetusEssentials/Client.cs +++ b/Novetus/NovetusCore/Classes/NovetusEssentials/Client.cs @@ -95,7 +95,7 @@ namespace Novetus.Core public static void GenerateDefaultClientInfo(string path) { - FileFormat.ClientInfo DefaultClientInfo = new FileFormat.ClientInfo(); + FileFormat.ClientInfoLegacy DefaultClientInfo = new FileFormat.ClientInfoLegacy(); bool placeholder = false; string ClientName = ""; @@ -180,13 +180,13 @@ namespace Novetus.Core } //NOT FOR SDK. - public static FileFormat.ClientInfo GetClientInfoValues(string ClientName) + public static FileFormat.ClientInfoLegacy GetClientInfoValues(string ClientName) { string name = ClientName; try { - FileFormat.ClientInfo info = new FileFormat.ClientInfo(); + FileFormat.ClientInfoLegacy info = new FileFormat.ClientInfoLegacy(); string clientpath = GlobalPaths.ClientDir + @"\\" + name + @"\\clientinfo.nov"; LoadClientValues(info, clientpath); return info; @@ -203,7 +203,7 @@ namespace Novetus.Core LoadClientValues(GlobalVars.SelectedClientInfo, clientpath); } - public static void LoadClientValues(FileFormat.ClientInfo info, string clientpath) + public static void LoadClientValues(FileFormat.ClientInfoLegacy info, string clientpath) { string file, usesplayername, usesid, warning, legacymode, clientmd5, scriptmd5, @@ -267,11 +267,11 @@ namespace Novetus.Core info.AlreadyHasSecurity = ConvertSafe.ToBooleanSafe(alreadyhassecurity); if (clientloadoptions.Equals("True") || clientloadoptions.Equals("False")) { - info.ClientLoadOptions = Settings.GetClientLoadOptionsForBool(ConvertSafe.ToBooleanSafe(clientloadoptions)); + info.ClientLoadOptions = FileFormat.ClientInfoLegacy.GetClientLoadOptionsForBool(ConvertSafe.ToBooleanSafe(clientloadoptions)); } else { - info.ClientLoadOptions = (Settings.ClientLoadOptions)ConvertSafe.ToInt32Safe(clientloadoptions); + info.ClientLoadOptions = (FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy)ConvertSafe.ToInt32Safe(clientloadoptions); } info.SeperateFolders = ConvertSafe.ToBooleanSafe(folders); @@ -383,14 +383,14 @@ namespace Novetus.Core { try { - FileFormat.ClientInfo info = GetClientInfoValues(ClientName); + FileFormat.ClientInfoLegacy info = GetClientInfoValues(ClientName); string filterPath = GlobalPaths.ConfigDir + @"\\" + GlobalPaths.FileDeleteFilterName; string[] fileListToDelete = File.ReadAllLines(filterPath); foreach (string file in fileListToDelete) { - string fullFilePath = Settings.GetPathForClientLoadOptions(info.ClientLoadOptions) + @"\" + file; + string fullFilePath = FileFormat.ClientInfoLegacy.GetPathForClientLoadOptions(info.ClientLoadOptions) + @"\" + file; IOSafe.File.Delete(fullFilePath); } @@ -398,15 +398,15 @@ namespace Novetus.Core { int GraphicsMode = 0; - if (info.ClientLoadOptions == Settings.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21 || - info.ClientLoadOptions == Settings.ClientLoadOptions.Client_2008AndUp_ForceAutomatic) + if (info.ClientLoadOptions == FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomaticQL21 || + info.ClientLoadOptions == FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomatic) { GraphicsMode = 1; } else { - if (info.ClientLoadOptions != Settings.ClientLoadOptions.Client_2007_NoGraphicsOptions || - info.ClientLoadOptions != Settings.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions) + if (info.ClientLoadOptions != FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2007_NoGraphicsOptions || + info.ClientLoadOptions != FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_NoGraphicsOptions) { switch ((Settings.Mode)GlobalVars.UserConfiguration.ReadSettingInt("GraphicsMode")) @@ -414,13 +414,13 @@ namespace Novetus.Core case Settings.Mode.OpenGLStable: switch (info.ClientLoadOptions) { - case Settings.ClientLoadOptions.Client_2007: - case Settings.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL: - case Settings.ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2007: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_LegacyOpenGL: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL: GraphicsMode = 2; break; - case Settings.ClientLoadOptions.Client_2008AndUp: - case Settings.ClientLoadOptions.Client_2008AndUp_QualityLevel21: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_QualityLevel21: GraphicsMode = 4; break; default: @@ -444,8 +444,8 @@ namespace Novetus.Core int MeshDetail = 100; int ShadingQuality = 100; int GFXQualityLevel = 19; - if (info.ClientLoadOptions == Settings.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21 || - info.ClientLoadOptions == Settings.ClientLoadOptions.Client_2008AndUp_QualityLevel21) + if (info.ClientLoadOptions == FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomaticQL21 || + info.ClientLoadOptions == FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_QualityLevel21) { GFXQualityLevel = 21; } @@ -496,10 +496,10 @@ namespace Novetus.Core MaterialQuality = 2; AASamples = 4; Bevels = 2; - if (info.ClientLoadOptions == Settings.ClientLoadOptions.Client_2008AndUp_ForceAutomatic || - info.ClientLoadOptions == Settings.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21 || - info.ClientLoadOptions == Settings.ClientLoadOptions.Client_2008AndUp_QualityLevel21 || - info.ClientLoadOptions == Settings.ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL) + if (info.ClientLoadOptions == FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomatic || + info.ClientLoadOptions == FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomaticQL21 || + info.ClientLoadOptions == FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_QualityLevel21 || + info.ClientLoadOptions == FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL) { Shadows_2008 = 3; } @@ -524,15 +524,15 @@ namespace Novetus.Core //save graphics mode. int GraphicsMode = 0; - if (info.ClientLoadOptions == Settings.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21 || - info.ClientLoadOptions == Settings.ClientLoadOptions.Client_2008AndUp_ForceAutomatic) + if (info.ClientLoadOptions == FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomaticQL21 || + info.ClientLoadOptions == FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomatic) { GraphicsMode = 1; } else { - if (info.ClientLoadOptions != Settings.ClientLoadOptions.Client_2007_NoGraphicsOptions || - info.ClientLoadOptions != Settings.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions) + if (info.ClientLoadOptions != FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2007_NoGraphicsOptions || + info.ClientLoadOptions != FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_NoGraphicsOptions) { switch ((Settings.Mode)GlobalVars.UserConfiguration.ReadSettingInt("GraphicsMode")) @@ -540,13 +540,13 @@ namespace Novetus.Core case Settings.Mode.OpenGLStable: switch (info.ClientLoadOptions) { - case Settings.ClientLoadOptions.Client_2007: - case Settings.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL: - case Settings.ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2007: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_LegacyOpenGL: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL: GraphicsMode = 2; break; - case Settings.ClientLoadOptions.Client_2008AndUp: - case Settings.ClientLoadOptions.Client_2008AndUp_QualityLevel21: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_QualityLevel21: GraphicsMode = 4; break; default: @@ -576,7 +576,7 @@ namespace Novetus.Core { if (dir.Contains(terms) && !dir.Contains("_default")) { - IOSafe.File.Copy(dir, Settings.GetPathForClientLoadOptions(info.ClientLoadOptions) + @"\" + Path.GetFileName(dir).Replace(terms, "") + IOSafe.File.Copy(dir, FileFormat.ClientInfoLegacy.GetPathForClientLoadOptions(info.ClientLoadOptions) + @"\" + Path.GetFileName(dir).Replace(terms, "") .Replace(dir.Substring(dir.LastIndexOf('-') + 1), "") .Replace("-", ".xml"), true); } @@ -592,7 +592,7 @@ namespace Novetus.Core //oh god.... //we're using this one for custom graphics quality. Better than the latter. - public static void ApplyClientSettings_custom(FileFormat.ClientInfo info, string ClientName, int MeshDetail, int ShadingQuality, int MaterialQuality, + public static void ApplyClientSettings_custom(FileFormat.ClientInfoLegacy info, string ClientName, int MeshDetail, int ShadingQuality, int MaterialQuality, int AA, int AASamples, int Bevels, int Shadows_2008, bool Shadows_2007, string Style_2007, int GFXQualityLevel, string WindowResolution, string FullscreenResolution, int ModernResolution) { @@ -600,28 +600,28 @@ namespace Novetus.Core { int GraphicsMode = 0; - if (info.ClientLoadOptions == Settings.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21 || - info.ClientLoadOptions == Settings.ClientLoadOptions.Client_2008AndUp_ForceAutomatic) + if (info.ClientLoadOptions == FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomaticQL21 || + info.ClientLoadOptions == FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomatic) { GraphicsMode = 1; } else { - if (info.ClientLoadOptions != Settings.ClientLoadOptions.Client_2007_NoGraphicsOptions || - info.ClientLoadOptions != Settings.ClientLoadOptions.Client_2008AndUp_NoGraphicsOptions) + if (info.ClientLoadOptions != FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2007_NoGraphicsOptions || + info.ClientLoadOptions != FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_NoGraphicsOptions) { switch ((Settings.Mode)GlobalVars.UserConfiguration.ReadSettingInt("GraphicsMode")) { case Settings.Mode.OpenGLStable: switch (info.ClientLoadOptions) { - case Settings.ClientLoadOptions.Client_2007: - case Settings.ClientLoadOptions.Client_2008AndUp_LegacyOpenGL: - case Settings.ClientLoadOptions.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2007: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_LegacyOpenGL: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL: GraphicsMode = 2; break; - case Settings.ClientLoadOptions.Client_2008AndUp: - case Settings.ClientLoadOptions.Client_2008AndUp_QualityLevel21: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp: + case FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_QualityLevel21: GraphicsMode = 4; break; default: @@ -652,7 +652,7 @@ namespace Novetus.Core } //it's worse. - public static void ApplyClientSettings(FileFormat.ClientInfo info, string ClientName, int GraphicsMode, int MeshDetail, int ShadingQuality, int MaterialQuality, + public static void ApplyClientSettings(FileFormat.ClientInfoLegacy info, string ClientName, int GraphicsMode, int MeshDetail, int ShadingQuality, int MaterialQuality, int AA, int AASamples, int Bevels, int Shadows_2008, bool Shadows_2007, string Style_2007, int GFXQualityLevel, string WindowResolution, string FullscreenResolution, int ModernResolution, bool onlyGraphicsMode = false) { @@ -731,7 +731,7 @@ namespace Novetus.Core finally { doc.Save(dir); - IOSafe.File.Copy(dir, Settings.GetPathForClientLoadOptions(info.ClientLoadOptions) + @"\" + Path.GetFileName(dir).Replace(terms, "") + IOSafe.File.Copy(dir, FileFormat.ClientInfoLegacy.GetPathForClientLoadOptions(info.ClientLoadOptions) + @"\" + Path.GetFileName(dir).Replace(terms, "") .Replace(dir.Substring(dir.LastIndexOf('-') + 1), "") .Replace("-", ".xml"), true); } @@ -1126,7 +1126,7 @@ namespace Novetus.Core string mapfile = (GlobalVars.EasterEggMode && type != ScriptType.Solo) ? GlobalPaths.DataDir + "\\Appreciation.rbxl" : (is3DView ? GlobalPaths.DataDir + "\\3DView.rbxl" : mapfilepath); string mapname = ((GlobalVars.EasterEggMode && type != ScriptType.Solo) || is3DView) ? "" : mapfilename; - FileFormat.ClientInfo info = GetClientInfoValues(ClientName); + FileFormat.ClientInfoLegacy info = GetClientInfoValues(ClientName); string quote = "\""; string args = ""; GlobalVars.ValidatedExtraFiles = 0; diff --git a/Novetus/NovetusCore/Classes/NovetusEssentials/FileFormat.cs b/Novetus/NovetusCore/Classes/NovetusEssentials/FileFormat.cs index 643baad..acfe573 100644 --- a/Novetus/NovetusCore/Classes/NovetusEssentials/FileFormat.cs +++ b/Novetus/NovetusCore/Classes/NovetusEssentials/FileFormat.cs @@ -2,16 +2,92 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; +using System.Xml.Linq; +using static Novetus.Core.FileFormat.ClientInfo; +using static Novetus.Core.FileFormat.ClientInfoLegacy; namespace Novetus.Core { #region File Formats public class FileFormat { - #region Client Information + #region Client Information (Legacy) public class ClientInfo { + public class ClientPathDictionary + { + private Dictionary _dict = new Dictionary(); + + public Dictionary Dict + { + get + { + return _dict; + } + set + { + _dict = value; + } + } + } + + public enum ClientTag + { + NoGraphicsOptions, + ForceLegacyOpenGL, + HasQualityLevel21, + ForceAutomatic, + HasCharacterOnlyShadows, + RequiresWebProxy, + RequiresOnlineScripts, + RequiresCurrentMinimumNovetusVersion + } + public ClientInfo() + { + UsesPlayerName = true; + UsesID = true; + Description = ""; + Warning = ""; + ClientPaths = new ClientPathDictionary(); + ClientMD5s = new ClientPathDictionary(); + ScriptPaths = new ClientPathDictionary(); + ScriptMD5s = new ClientPathDictionary(); + CommandLineArgs = new ClientPathDictionary(); + ClientTags = new List(); + } + + public bool UsesPlayerName { get; set; } + public bool UsesID { get; set; } + public string Description { get; set; } + public string Warning { get; set; } + public ClientPathDictionary ClientPaths { get; set; } + public ClientPathDictionary ClientMD5s { get; set; } + public ClientPathDictionary ScriptPaths { get; set; } + public ClientPathDictionary ScriptMD5s { get; set; } + public ClientPathDictionary CommandLineArgs { get; set; } + public List ClientTags { get; set; } + } + #endregion + + //TODO: move this to legacy clientinfo creator when we move to JSON. + #region Client Information (Legacy) + public class ClientInfoLegacy + { + public enum ClientLoadOptionsLegacy + { + 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, + Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL = 8 + } + + public ClientInfoLegacy() { UsesPlayerName = true; UsesID = true; @@ -22,7 +98,7 @@ namespace Novetus.Core ScriptMD5 = ""; Fix2007 = false; AlreadyHasSecurity = false; - ClientLoadOptions = Settings.ClientLoadOptions.Client_2008AndUp; + ClientLoadOptions = ClientLoadOptionsLegacy.Client_2008AndUp; SeperateFolders = false; UsesCustomClientEXEName = false; CustomClientEXEName = ""; @@ -41,8 +117,49 @@ namespace Novetus.Core public bool SeperateFolders { get; set; } public bool UsesCustomClientEXEName { get; set; } public string CustomClientEXEName { get; set; } - public Settings.ClientLoadOptions ClientLoadOptions { get; set; } + public ClientLoadOptionsLegacy ClientLoadOptions { get; set; } public string CommandLineArgs { get; set; } + + public static ClientLoadOptionsLegacy GetClientLoadOptionsForBool(bool level) + { + switch (level) + { + case false: + return ClientLoadOptionsLegacy.Client_2008AndUp; + default: + return ClientLoadOptionsLegacy.Client_2007_NoGraphicsOptions; + } + } + + public static string GetPathForClientLoadOptions(ClientLoadOptionsLegacy level) + { + string localAppdataRobloxPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Roblox"; + string appdataRobloxPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Roblox"; + + if (!Directory.Exists(localAppdataRobloxPath)) + { + Directory.CreateDirectory(localAppdataRobloxPath); + } + + if (!Directory.Exists(appdataRobloxPath)) + { + Directory.CreateDirectory(appdataRobloxPath); + } + + switch (level) + { + case ClientLoadOptionsLegacy.Client_2008AndUp_QualityLevel21: + case ClientLoadOptionsLegacy.Client_2008AndUp_LegacyOpenGL: + case ClientLoadOptionsLegacy.Client_2008AndUp_NoGraphicsOptions: + case ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomatic: + case ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomaticQL21: + case ClientLoadOptionsLegacy.Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL: + case ClientLoadOptionsLegacy.Client_2008AndUp: + return localAppdataRobloxPath; + default: + return appdataRobloxPath; + } + } } #endregion diff --git a/Novetus/NovetusCore/Classes/NovetusEssentials/Script.cs b/Novetus/NovetusCore/Classes/NovetusEssentials/Script.cs index d3b9a07..743dc06 100644 --- a/Novetus/NovetusCore/Classes/NovetusEssentials/Script.cs +++ b/Novetus/NovetusCore/Classes/NovetusEssentials/Script.cs @@ -62,7 +62,7 @@ namespace Novetus.Core public static string GetScriptFuncForType(string ClientName, ScriptType type) { - FileFormat.ClientInfo info = Client.GetClientInfoValues(ClientName); + FileFormat.ClientInfoLegacy info = Client.GetClientInfoValues(ClientName); string rbxexe = ""; if (info.LegacyMode) @@ -338,7 +338,7 @@ namespace Novetus.Core public static string GetRawArgsForType(ScriptType type, string ClientName, string luafile) { - FileFormat.ClientInfo info = Client.GetClientInfoValues(ClientName); + FileFormat.ClientInfoLegacy info = Client.GetClientInfoValues(ClientName); if (!info.Fix2007) { @@ -362,6 +362,8 @@ namespace Novetus.Core return CompileScript(GlobalVars.UserConfiguration.ReadSetting("SelectedClient"), code, tag, endtag, mapfile, luafile, rbxexe, usesharedtags); } + //TODO I'll deal with this later..... + public static string CompileScript(string ClientName, string code, string tag, string endtag, string mapfile, string luafile, string rbxexe, bool usesharedtags = true) { string start = tag; @@ -384,7 +386,7 @@ namespace Novetus.Core } } - FileFormat.ClientInfo info = Client.GetClientInfoValues(ClientName); + FileFormat.ClientInfoLegacy info = Client.GetClientInfoValues(ClientName); ScriptType type = GetTypeFromTag(start); diff --git a/Novetus/NovetusCore/Classes/NovetusEssentials/Settings.cs b/Novetus/NovetusCore/Classes/NovetusEssentials/Settings.cs index 624cca7..038268c 100644 --- a/Novetus/NovetusCore/Classes/NovetusEssentials/Settings.cs +++ b/Novetus/NovetusCore/Classes/NovetusEssentials/Settings.cs @@ -34,60 +34,6 @@ namespace Novetus.Core Compact = 2, Stylish = 3 } - - 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, - Client_2008AndUp_HasCharacterOnlyShadowsLegacyOpenGL = 8 - } - - public static ClientLoadOptions GetClientLoadOptionsForBool(bool level) - { - switch (level) - { - case false: - return ClientLoadOptions.Client_2008AndUp; - default: - return ClientLoadOptions.Client_2007_NoGraphicsOptions; - } - } - - public static string GetPathForClientLoadOptions(ClientLoadOptions level) - { - string localAppdataRobloxPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Roblox"; - string appdataRobloxPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Roblox"; - - if (!Directory.Exists(localAppdataRobloxPath)) - { - Directory.CreateDirectory(localAppdataRobloxPath); - } - - if (!Directory.Exists(appdataRobloxPath)) - { - Directory.CreateDirectory(appdataRobloxPath); - } - - 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_HasCharacterOnlyShadowsLegacyOpenGL: - case ClientLoadOptions.Client_2008AndUp: - return localAppdataRobloxPath; - default: - return appdataRobloxPath; - } - } } #endregion diff --git a/Novetus/NovetusCore/StorageAndFunctions/GlobalVars.cs b/Novetus/NovetusCore/StorageAndFunctions/GlobalVars.cs index f681ae3..61f8a18 100644 --- a/Novetus/NovetusCore/StorageAndFunctions/GlobalVars.cs +++ b/Novetus/NovetusCore/StorageAndFunctions/GlobalVars.cs @@ -86,7 +86,7 @@ namespace Novetus.Core #region Class definitions public static FileFormat.ProgramInfo ProgramInformation = new FileFormat.ProgramInfo(); public static FileFormat.Config UserConfiguration = new FileFormat.Config(); - public static FileFormat.ClientInfo SelectedClientInfo = new FileFormat.ClientInfo(); + public static FileFormat.ClientInfoLegacy SelectedClientInfo = new FileFormat.ClientInfoLegacy(); public static FileFormat.CustomizationConfig UserCustomization = new FileFormat.CustomizationConfig(); public static PartColor[] PartColorList; public static List PartColorListConv; diff --git a/Novetus/NovetusLauncher/Forms/CustomGraphicsOptions.cs b/Novetus/NovetusLauncher/Forms/CustomGraphicsOptions.cs index fbb1ef8..a2e8448 100644 --- a/Novetus/NovetusLauncher/Forms/CustomGraphicsOptions.cs +++ b/Novetus/NovetusLauncher/Forms/CustomGraphicsOptions.cs @@ -28,7 +28,7 @@ namespace NovetusLauncher private string FullscreenResolution = ""; private bool initial = true; private int ModernResolution = 0; - private FileFormat.ClientInfo info; + private FileFormat.ClientInfoLegacy info; #endregion #region Constructor @@ -307,8 +307,8 @@ namespace NovetusLauncher private void GraphicsLevel_ValueChanged(object sender, EventArgs e) { - if (GraphicsLevel.Value > 19 && (info.ClientLoadOptions != Settings.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21 || - info.ClientLoadOptions != Settings.ClientLoadOptions.Client_2008AndUp_QualityLevel21)) + if (GraphicsLevel.Value > 19 && (info.ClientLoadOptions != FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomaticQL21 || + info.ClientLoadOptions != FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_QualityLevel21)) { GraphicsLevel.Value = 19; } @@ -318,8 +318,8 @@ namespace NovetusLauncher private void GraphicsLevel_Click(object sender, EventArgs e) { - if (GraphicsLevel.Value > 19 && (info.ClientLoadOptions != Settings.ClientLoadOptions.Client_2008AndUp_ForceAutomaticQL21 || - info.ClientLoadOptions != Settings.ClientLoadOptions.Client_2008AndUp_QualityLevel21)) + if (GraphicsLevel.Value > 19 && (info.ClientLoadOptions != FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_ForceAutomaticQL21 || + info.ClientLoadOptions != FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp_QualityLevel21)) { MessageBox.Show("This client does not support quality levels above 19.", "Novetus - Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } diff --git a/Novetus/NovetusLauncher/Forms/SDK/Legacy/ClientinfoCreator.cs b/Novetus/NovetusLauncher/Forms/SDK/Legacy/ClientinfoCreator.cs index 252678a..6ce6074 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/Legacy/ClientinfoCreator.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/Legacy/ClientinfoCreator.cs @@ -11,7 +11,7 @@ using Novetus.Core; public partial class ClientinfoEditor : Form { #region Private Variables - private FileFormat.ClientInfo SelectedClientInfo = new FileFormat.ClientInfo(); + private FileFormat.ClientInfoLegacy SelectedClientInfo = new FileFormat.ClientInfoLegacy(); private string SelectedClientInfoPath = ""; private bool Locked = false; public string RelativePath = ""; @@ -208,11 +208,11 @@ public partial class ClientinfoEditor : Form if (cmdargsorclientoptions.Equals("True") || cmdargsorclientoptions.Equals("False")) { label9.Text = "v2 (Last used in v1.2.3)"; - SelectedClientInfo.ClientLoadOptions = Settings.GetClientLoadOptionsForBool(ConvertSafe.ToBooleanSafe(cmdargsorclientoptions)); + SelectedClientInfo.ClientLoadOptions = FileFormat.ClientInfoLegacy.GetClientLoadOptionsForBool(ConvertSafe.ToBooleanSafe(cmdargsorclientoptions)); } else { - SelectedClientInfo.ClientLoadOptions = (Settings.ClientLoadOptions)ConvertSafe.ToInt32Safe(cmdargsorclientoptions); + SelectedClientInfo.ClientLoadOptions = (FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy)ConvertSafe.ToInt32Safe(cmdargsorclientoptions); } SelectedClientInfo.CommandLineArgs = commandargsver2; } @@ -220,7 +220,7 @@ public partial class ClientinfoEditor : Form catch (Exception) { //Again, fake it. - SelectedClientInfo.ClientLoadOptions = Settings.ClientLoadOptions.Client_2008AndUp; + SelectedClientInfo.ClientLoadOptions = FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy.Client_2008AndUp; SelectedClientInfo.CommandLineArgs = cmdargsorclientoptions; } @@ -430,7 +430,7 @@ public partial class ClientinfoEditor : Form private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { - SelectedClientInfo.ClientLoadOptions = (Settings.ClientLoadOptions)comboBox1.SelectedIndex; + SelectedClientInfo.ClientLoadOptions = (FileFormat.ClientInfoLegacy.ClientLoadOptionsLegacy)comboBox1.SelectedIndex; BeginInvoke(new Action(() => { comboBox1.Select(0, 0); })); } @@ -578,7 +578,7 @@ public partial class ClientinfoEditor : Form void NewClientInfo() { label9.Text = "Not Loaded"; - SelectedClientInfo = new FileFormat.ClientInfo(); + SelectedClientInfo = new FileFormat.ClientInfoLegacy(); Locked = false; SelectedClientInfoPath = ""; LoadUIElements(); diff --git a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.Designer.cs b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.Designer.cs index 7c5bbbb..0267f74 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.Designer.cs +++ b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.Designer.cs @@ -54,7 +54,7 @@ System.Windows.Forms.ListViewItem listViewItem13 = new System.Windows.Forms.ListViewItem(new string[] { "JSON Content Editor"}, 9, System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F)); System.Windows.Forms.ListViewItem listViewItem14 = new System.Windows.Forms.ListViewItem(new string[] { - "Client SDK ( Legacy)"}, "ClientSDK.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)))); + "Client SDK (Legacy)"}, "ClientSDK.png", System.Drawing.Color.Empty, System.Drawing.Color.Empty, new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)))); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(NovetusSDK)); this.label1 = new System.Windows.Forms.Label(); this.pictureBox2 = new System.Windows.Forms.PictureBox(); diff --git a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.resx b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.resx index ceb191a..4f8177a 100644 --- a/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.resx +++ b/Novetus/NovetusLauncher/Forms/SDK/NovetusSDK.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACw - FgAAAk1TRnQBSQFMAgEBDQEAAWgBAAFoAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + FgAAAk1TRnQBSQFMAgEBDQEAAXABAAFwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAAUADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA