Skip to content

Commit

Permalink
Merge branch 'overload-development-community:main' into packetloss
Browse files Browse the repository at this point in the history
  • Loading branch information
CCraigen committed Dec 26, 2022
2 parents c46df53 + b26dfb6 commit 3b9c2c7
Show file tree
Hide file tree
Showing 13 changed files with 2,266 additions and 25 deletions.
125 changes: 123 additions & 2 deletions GameMod/ExtendedConfig.cs
Expand Up @@ -115,6 +115,8 @@ public static void LoadPilotExtendedConfig( string name )
// unknown sections get stored in ExtendedConfig.unknown_lines to reattach them to the end when saving
private static void ReadConfigData(string filepath)
{
List<string> completed = new List<string>();

uConsole.Log("ReadConfigData");
using (StreamReader sr = new StreamReader(filepath))
{
Expand Down Expand Up @@ -143,6 +145,7 @@ private static void ReadConfigData(string filepath)
if (!current_section_id.Equals("unknown"))
{
PassSectionToFunction(current_section, current_section_id);
completed.Add(current_section_id);
current_section_id = "unknown";
current_section.Clear();
}
Expand All @@ -164,6 +167,18 @@ private static void ReadConfigData(string filepath)
}
}
}

foreach (string s in known_sections)
{
// a section is missing from the config file, create it
if (!completed.Contains(s))
{
List<string> l = new List<string>();
l.Add("---");
PassSectionToFunction(l, s);
Debug.Log("Creating missing section \"" + s + "\" in pilot's .extendedconfig");
}
}
}


Expand Down Expand Up @@ -283,6 +298,7 @@ static void Prefix()
private static List<string> known_sections = new List<string> {
"[SECTION: AUTOSELECT]",
"[SECTION: JOYSTICKCURVE]",
"[SECTION: WEAPONCYCLING]",
//...
};

Expand All @@ -297,6 +313,10 @@ private static void PassSectionToFunction(List<string> section, string section_n
{
Section_JoystickCurve.Load(section);
}
if (section_name.Equals(known_sections[2]))
{
Section_WeaponCycling.Load(section);
}
//...

}
Expand All @@ -321,6 +341,9 @@ public static void SaveActivePilot()
Section_JoystickCurve.Save(w);
w.WriteLine("[/END]");

w.WriteLine("[SECTION: WEAPONCYCLING]");
Section_WeaponCycling.Save(w);
w.WriteLine("[/END]");
//...

if (unknown_sections != null)
Expand All @@ -342,13 +365,14 @@ public static void SetDefaultConfig()
{
Section_AutoSelect.Set();
Section_JoystickCurve.SetDefault();
Section_WeaponCycling.Set();

}

public static void ApplyConfigData()
{
Section_AutoSelect.ApplySettings();

Section_WeaponCycling.ApplySettings();
}


Expand Down Expand Up @@ -696,8 +720,105 @@ public static float[] GenerateCurveLookupTable(Vector2[] points)
}
}

internal class Section_WeaponCycling
{
public static Dictionary<string, string> settings;

public static void Load(List<string> section)
{
MPWeaponCycling.UpdateWeaponOrder();

settings = new Dictionary<string, string>();
string l;
foreach (string line in section)
{
l = RemoveWhitespace(line);
string[] res = l.Split(':');
if (res.Length == 2)
{
settings.Add(res[0], res[1]);
}
else
{
Debug.Log("Error in ExtendedConfig.ProcessWeaponCyclingSection: unexpected line split: " + line + ", Setting Default Values.");
Set();
return;
}
}
ApplySettings();
}

public static void Save(StreamWriter w)
{
if (settings != null)
{
foreach (var setting in settings)
{
if (setting.Key != null && setting.Value != null)
{
w.WriteLine(" " + setting.Key + ": " + setting.Value);
}
}
}
}

// sets the values of the AutoSelect dictionary
// mirror = false sets the default values
// mirror = true sets the current MPWeaponCycling values
public static void Set(bool mirror = false)
{


settings = new Dictionary<string, string>();
settings.Add("p_cycle_0", mirror ? MPWeaponCycling.CPrimaries[0].ToString() : "true");
settings.Add("p_cycle_1", mirror ? MPWeaponCycling.CPrimaries[1].ToString() : "true");
settings.Add("p_cycle_2", mirror ? MPWeaponCycling.CPrimaries[2].ToString() : "true");
settings.Add("p_cycle_3", mirror ? MPWeaponCycling.CPrimaries[3].ToString() : "true");
settings.Add("p_cycle_4", mirror ? MPWeaponCycling.CPrimaries[4].ToString() : "true");
settings.Add("p_cycle_5", mirror ? MPWeaponCycling.CPrimaries[5].ToString() : "true");
settings.Add("p_cycle_6", mirror ? MPWeaponCycling.CPrimaries[6].ToString() : "true");
settings.Add("p_cycle_7", mirror ? MPWeaponCycling.CPrimaries[7].ToString() : "true");
settings.Add("s_cycle_0", mirror ? MPWeaponCycling.CSecondaries[0].ToString() : "true");
settings.Add("s_cycle_1", mirror ? MPWeaponCycling.CSecondaries[1].ToString() : "true");
settings.Add("s_cycle_2", mirror ? MPWeaponCycling.CSecondaries[2].ToString() : "true");
settings.Add("s_cycle_3", mirror ? MPWeaponCycling.CSecondaries[3].ToString() : "true");
settings.Add("s_cycle_4", mirror ? MPWeaponCycling.CSecondaries[4].ToString() : "true");
settings.Add("s_cycle_5", mirror ? MPWeaponCycling.CSecondaries[5].ToString() : "true");
settings.Add("s_cycle_6", mirror ? MPWeaponCycling.CSecondaries[6].ToString() : "true");
settings.Add("s_cycle_7", mirror ? MPWeaponCycling.CSecondaries[7].ToString() : "true");
}

public static void ApplySettings()
{
try
{
MPWeaponCycling.CPrimaries[0] = Convert.ToBoolean(settings["p_cycle_0"]);
MPWeaponCycling.CPrimaries[1] = Convert.ToBoolean(settings["p_cycle_1"]);
MPWeaponCycling.CPrimaries[2] = Convert.ToBoolean(settings["p_cycle_2"]);
MPWeaponCycling.CPrimaries[3] = Convert.ToBoolean(settings["p_cycle_3"]);
MPWeaponCycling.CPrimaries[4] = Convert.ToBoolean(settings["p_cycle_4"]);
MPWeaponCycling.CPrimaries[5] = Convert.ToBoolean(settings["p_cycle_5"]);
MPWeaponCycling.CPrimaries[6] = Convert.ToBoolean(settings["p_cycle_6"]);
MPWeaponCycling.CPrimaries[7] = Convert.ToBoolean(settings["p_cycle_7"]);
MPWeaponCycling.CSecondaries[0] = Convert.ToBoolean(settings["s_cycle_0"]);
MPWeaponCycling.CSecondaries[1] = Convert.ToBoolean(settings["s_cycle_1"]);
MPWeaponCycling.CSecondaries[2] = Convert.ToBoolean(settings["s_cycle_2"]);
MPWeaponCycling.CSecondaries[3] = Convert.ToBoolean(settings["s_cycle_3"]);
MPWeaponCycling.CSecondaries[4] = Convert.ToBoolean(settings["s_cycle_4"]);
MPWeaponCycling.CSecondaries[5] = Convert.ToBoolean(settings["s_cycle_5"]);
MPWeaponCycling.CSecondaries[6] = Convert.ToBoolean(settings["s_cycle_6"]);
MPWeaponCycling.CSecondaries[7] = Convert.ToBoolean(settings["s_cycle_7"]);
}
catch (Exception ex)
{
Debug.Log("Error while parsing WeaponCycling settings. missing entry " + ex + "\nSetting Default values");
Set();
ApplySettings();
}
}

}


}
}

2 changes: 2 additions & 0 deletions GameMod/GameMod.csproj
Expand Up @@ -129,6 +129,7 @@
<Compile Include="MoreAudio.cs" />
<Compile Include="MPAlwaysCloaked.cs" />
<Compile Include="MPAnticheat.cs" />
<Compile Include="MPAudioTaunts.cs" />
<Compile Include="MPAutomap.cs" />
<Compile Include="MPAutoSelection.cs" />
<Compile Include="MPAutoSelectionUI.cs" />
Expand Down Expand Up @@ -203,6 +204,7 @@
<Compile Include="MPTweaks.cs" />
<Compile Include="MPUnlockAll.cs" />
<Compile Include="MPWeaponBehavior.cs" />
<Compile Include="MPWeaponCycling.cs" />
<Compile Include="MusicCustom.cs" />
<Compile Include="PoorMansProfiler.cs" />
<Compile Include="PrevWeaponFix.cs" />
Expand Down

0 comments on commit 3b9c2c7

Please sign in to comment.