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 @@
+
@@ -666,7 +667,7 @@
-
+
diff --git a/FASTERTests/Models/BasicCfgTests.cs b/FASTERTests/Models/BasicCfgTests.cs
index f11b364..0ba08d7 100644
--- a/FASTERTests/Models/BasicCfgTests.cs
+++ b/FASTERTests/Models/BasicCfgTests.cs
@@ -30,6 +30,7 @@ public void BasicCfgGetTest()
Assert.That(_cfg.PerfPreset, Is.EqualTo("Custom"));
Assert.That(_cfg.TerrainGrid, Is.Not.Null);
Assert.That(_cfg.ViewDistance, Is.Not.Null);
+ Assert.That(_cfg.Language, Is.Not.Null);
}
[Test()]