diff --git a/SceneManager/Menus/BarrierMenu.cs b/SceneManager/Menus/BarrierMenu.cs index 827e9e6..f10b2ed 100644 --- a/SceneManager/Menus/BarrierMenu.cs +++ b/SceneManager/Menus/BarrierMenu.cs @@ -2,8 +2,6 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; -using System.Text; -using System.Threading.Tasks; using Rage; using RAGENativeUI; using RAGENativeUI.Elements; @@ -14,10 +12,9 @@ namespace SceneManager { public static UIMenu barrierMenu { get; private set; } public static List barriers = new List(); - //public static List barriers = new List() { }; - - private static UIMenuListScrollerItem barrierList = new UIMenuListScrollerItem("Select Barrier", "", new[] { "Large Striped Cone", "Large Cone", "Medium Striped Cone", "Medium Cone", "Roadpole A", "Roadpole B", "Police Barrier", "Road Barrier", "Flare" }); - private static string[] barrierObjectNames = new string[] { "prop_mp_cone_01", "prop_roadcone01c", "prop_mp_cone_02", "prop_mp_cone_03", "prop_roadpole_01a", "prop_roadpole_01b", "prop_barrier_work05", "prop_barrier_work06a", "prop_flare_01b" }; + private static UIMenuListScrollerItem barrierList = new UIMenuListScrollerItem("Select Barrier", "", Settings.barrierKeys); + //private static UIMenuListScrollerItem barrierList = new UIMenuListScrollerItem("Select Barrier", "", new[] { "Large Striped Cone", "Large Cone", "Medium Striped Cone", "Medium Cone", "Roadpole A", "Roadpole B", "Police Barrier", "Road Barrier", "Flare" }); + //private static string[] barrierObjectNames = new string[] { "prop_mp_cone_01", "prop_roadcone01c", "prop_mp_cone_02", "prop_mp_cone_03", "prop_roadpole_01a", "prop_roadpole_01b", "prop_barrier_work05", "prop_barrier_work06a", "prop_flare_01b" }; private static UIMenuNumericScrollerItem rotateBarrier = new UIMenuNumericScrollerItem("Rotate Barrier", "", 0, 350, 10); private static UIMenuListScrollerItem removeBarrierOptions = new UIMenuListScrollerItem("Remove Barrier", "", new[] { "Last Barrier", "Nearest Barrier", "All Barriers" }); private static UIMenuItem resetBarriers = new UIMenuItem("Reset Barriers", "Reset all spawned barriers to their original position and rotation"); @@ -62,7 +59,8 @@ namespace SceneManager if (shadowBarrier) shadowBarrier.Delete(); - shadowBarrier = new Rage.Object(barrierObjectNames[barrierList.Index], TracePlayerView(15, TraceFlags.IntersectEverything).HitPosition, rotateBarrier.Index); + shadowBarrier = new Rage.Object(Settings.barrierValues[barrierList.Index], TracePlayerView(15, TraceFlags.IntersectEverything).HitPosition, rotateBarrier.Index); + //shadowBarrier = new Rage.Object(barrierObjectNames[barrierList.Index], TracePlayerView(15, TraceFlags.IntersectEverything).HitPosition, rotateBarrier.Index); Rage.Native.NativeFunction.Natives.PLACE_OBJECT_ON_GROUND_PROPERLY(shadowBarrier); shadowBarrier.IsGravityDisabled = true; shadowBarrier.IsCollisionEnabled = false; diff --git a/SceneManager/Settings.cs b/SceneManager/Settings.cs index 4c6a9c4..71d3349 100644 --- a/SceneManager/Settings.cs +++ b/SceneManager/Settings.cs @@ -1,4 +1,5 @@ using Rage; +using System.Collections.Generic; using System.Windows.Forms; namespace SceneManager @@ -29,12 +30,12 @@ namespace SceneManager internal static bool EnableHints = true; internal static SpeedUnits SpeedUnit = SpeedUnits.MPH; internal static float BarrierPlacementDistance = 30f; - internal static Object[] barriers; + internal static List barrierKeys = new List(); + internal static List barrierValues = new List(); internal static void LoadSettings() { Game.LogTrivial("Loading SceneManager.ini settings"); - //InitializationFile ini = new InitializationFile("Plugins/SceneManager.ini"); ini.Create(); ToggleKey = ini.ReadEnum("Keybindings", "ToggleKey", Keys.T); @@ -46,6 +47,17 @@ namespace SceneManager EnableHints = ini.ReadBoolean("Other Settings", "EnableHints", true); SpeedUnit = ini.ReadEnum("Other Settings", "SpeedUnits", SpeedUnits.MPH); BarrierPlacementDistance = ini.ReadInt32("Other Settings", "BarrierPlacementDistance", 30); + + foreach(string key in ini.GetKeyNames("Barriers")) + { + //Game.LogTrivial($"Key: {key.Trim()}"); + //Game.LogTrivial($"Value: {ini.ReadString("Barriers",key)}"); + barrierKeys.Add(key.Trim()); + var m = new Model(ini.ReadString("Barriers", key)); + if (m.IsValid) + barrierValues.Add(m.Name); + //barrierValues.Add(ini.ReadString("Barriers", key)); + } } internal static void UpdateSettings(bool threeDWaypointsEnabled, bool mapBlipsEnabled, bool hintsEnabled, SpeedUnits unit, float distance)