diff --git a/FASTER/Models/BasicCfg.cs b/FASTER/Models/BasicCfg.cs index fa3cf7f..9af2bdb 100644 --- a/FASTER/Models/BasicCfg.cs +++ b/FASTER/Models/BasicCfg.cs @@ -14,6 +14,8 @@ public static class BasicCfgArrays [Serializable] public class BasicCfg : INotifyPropertyChanged { + private string language = "English"; + private uint viewDistance = 2000; private double terrainGrid = 25; @@ -28,6 +30,7 @@ public class BasicCfg : INotifyPropertyChanged private ushort maxPacketSize = 1400; private string basicContent; + private string a3cfgContent; public string BasicContent { @@ -38,7 +41,27 @@ public string BasicContent RaisePropertyChanged("BasicContent"); } } + + public string Arma3CfgContent + { + get => a3cfgContent; + set + { + a3cfgContent = value; + RaisePropertyChanged("Arma3CfgContent"); + } + } + public string Language + { + get => language; + set + { + language = value; + RaisePropertyChanged("Language"); + } + } + public uint ViewDistance { get => viewDistance; @@ -186,12 +209,15 @@ public string PerfPreset } public BasicCfg() - { BasicContent = ProcessFile(); } + { + BasicContent = ProcessBasicFile(); + Arma3CfgContent = ProcessArma3CfgFile(); + } - public string ProcessFile() + public string ProcessBasicFile() { string output = "// These options are created by default\r\n" - + "language=\"English\";\r\n" + + $"language=\"{language}\";\r\n" + "adapter=-1;\r\n" + "3D_Performance=1.000000;\r\n" + "Resolution_W=800;\r\n" @@ -217,6 +243,14 @@ public string ProcessFile() + $"class sockets{{ maxPacketSize = {maxPacketSize};}};"; return output; } + + public string ProcessArma3CfgFile() + { + string output = "steamLanguage=\"\";\r\n" + + $"language=\"{language}\";\r\n"; + + return output; + } public event PropertyChangedEventHandler PropertyChanged; @@ -224,7 +258,11 @@ private void RaisePropertyChanged(string property) { if (PropertyChanged == null) return; PropertyChanged(this, new PropertyChangedEventArgs(property)); - if (property != "BasicContent") BasicContent = ProcessFile(); + if (property != "BasicContent" && property != "Arma3CfgContent") + { + BasicContent = ProcessBasicFile(); + Arma3CfgContent = ProcessArma3CfgFile(); + } } } } diff --git a/FASTER/Models/ServerProfile.cs b/FASTER/Models/ServerProfile.cs index c9015a4..e4dacd4 100644 --- a/FASTER/Models/ServerProfile.cs +++ b/FASTER/Models/ServerProfile.cs @@ -25,7 +25,8 @@ internal static void AddServerProfile(string profileName) var currentProfiles = Properties.Settings.Default.Profiles; var p = new ServerProfile(profileName); p.ServerCfg.ServerCfgContent = p.ServerCfg.ProcessFile(); - p.BasicCfg.BasicContent = p.BasicCfg.ProcessFile(); + p.BasicCfg.BasicContent = p.BasicCfg.ProcessBasicFile(); + p.BasicCfg.Arma3CfgContent = p.BasicCfg.ProcessArma3CfgFile(); p.ArmaProfile.ArmaProfileContent = p.ArmaProfile.ProcessFile(); currentProfiles.Add(p); Properties.Settings.Default.Profiles = currentProfiles; @@ -428,7 +429,8 @@ public ServerProfile(string name, bool createFolder = true) BasicCfg = new BasicCfg(); ServerCfg.ServerCfgContent = ServerCfg.ProcessFile(); ArmaProfile.ArmaProfileContent = ArmaProfile.ProcessFile(); - BasicCfg.BasicContent = BasicCfg.ProcessFile(); + BasicCfg.BasicContent = BasicCfg.ProcessBasicFile(); + BasicCfg.Arma3CfgContent = BasicCfg.ProcessArma3CfgFile(); if (createFolder) { Directory.CreateDirectory(Path.Combine(Properties.Settings.Default.serverPath, "Servers", Id)); } @@ -443,7 +445,8 @@ public ServerProfile() BasicCfg = new BasicCfg(); ServerCfg.ServerCfgContent = ServerCfg.ProcessFile(); ArmaProfile.ArmaProfileContent = ArmaProfile.ProcessFile(); - BasicCfg.BasicContent = BasicCfg.ProcessFile(); + BasicCfg.BasicContent = BasicCfg.ProcessBasicFile(); + BasicCfg.Arma3CfgContent = BasicCfg.ProcessArma3CfgFile(); } public void GenerateNewId() diff --git a/FASTER/ViewModel/ProfileViewModel.cs b/FASTER/ViewModel/ProfileViewModel.cs index b9b6f71..c049827 100644 --- a/FASTER/ViewModel/ProfileViewModel.cs +++ b/FASTER/ViewModel/ProfileViewModel.cs @@ -212,9 +212,11 @@ internal void SaveProfile() string config = Path.Combine(Profile.ArmaPath, "Servers", Profile.Id, "server_config.cfg"); string basic = Path.Combine(Profile.ArmaPath, "Servers", Profile.Id, "server_basic.cfg"); string serverProfile = Path.Combine(Profile.ArmaPath, "Servers", Profile.Id, "users", Profile.Id, $"{Profile.Id}.Arma3Profile"); + string arma3Cfg = Path.Combine(Profile.ArmaPath, "Servers", Profile.Id, "users", Environment.UserName, $"Arma3.cfg"); //Creating profile directory Directory.CreateDirectory(Path.Combine(Profile.ArmaPath, "Servers", Profile.Id, "users", Profile.Id)); + Directory.CreateDirectory(Path.Combine(Profile.ArmaPath, "Servers", Profile.Id, "users", Environment.UserName)); //Writing files try @@ -222,6 +224,7 @@ internal void SaveProfile() File.WriteAllLines(config, Profile.ServerCfg.ServerCfgContent.Replace("\r", "").Split('\n')); File.WriteAllLines(basic, Profile.BasicCfg.BasicContent.Replace("\r", "").Split('\n')); File.WriteAllLines(serverProfile, Profile.ArmaProfile.ArmaProfileContent.Replace("\r", "").Split('\n')); + File.WriteAllLines(arma3Cfg, Profile.BasicCfg.Arma3CfgContent.Replace("\r", "").Split('\n')); } catch { DisplayMessage("Could not write the config files. Please ensure the server is not running and retry."); } diff --git a/FASTER/Views/Profile.xaml b/FASTER/Views/Profile.xaml index b5add5f..8dbd55a 100644 --- a/FASTER/Views/Profile.xaml +++ b/FASTER/Views/Profile.xaml @@ -58,6 +58,7 @@