From c691596de197ce3feec1217643b09783010fc415 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Tue, 16 Jun 2026 15:08:46 -0400 Subject: Optimize transitions, fix crash on new character Signed-off-by: Andrew Opalach --- Config.cs | 168 +++++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 129 insertions(+), 39 deletions(-) (limited to 'Config.cs') diff --git a/Config.cs b/Config.cs index 2e43817..55441f2 100755 --- a/Config.cs +++ b/Config.cs @@ -3,89 +3,178 @@ using SharpPluginLoader.Core; namespace WorldTuningTool { + public enum StageExt : uint + { + Global = 0, + InfinityOfNothingHandler = 100, + AncientForest = 101, + WildspireWaste = 102, + CoralHighlands = 103, + RottenVale = 104, + ElderRecess = 105, + GreatRavine = 106, + GreatRavineStory = 107, + HoarfrostReach = 108, + GuidingLands = 109, + InfinityOfNothing = 200, + SpecialArena = 201, + ChallengeArena = 202, + Astera = 301, + AsteraHub = 302, + ResearchBase = 303, + Seliana = 305, + SelianaHub = 306, + Opening = 401, + Everstream = 403, + ConfluenceOfFates = 405, + AncientForestOpening = 406, + CharacterCreation = 407, + DebugMap = 408, + ElDorado = 409, + SelianaSupplyCache = 411, + OriginIsleNergigante = 412, + OriginIsleSharaIshvalda = 413, + SecludedValley = 415, + AlatreonStage = 416, + CastleSchrade = 417, + LivingQuarters = 501, + PrivateQuarters = 502, + PrivateSuite = 503, + TrainingCamp = 504, + ChamberOfFive = 505, + SelianaRoom = 506 + } + internal class Config : IConfig { public String Name => "WorldTuningTool"; - public String Version => "0.9"; + public String Version => "0.9.3"; - public static string StageToString(Stage stage) + public static string StageToString(StageExt stage) { switch (stage) { - case Stage.InfinityOfNothingHandler: + case StageExt.Global: return "Global"; - case Stage.AncientForest: + case StageExt.InfinityOfNothingHandler: + return "Infinity Of Nothing Handler"; + case StageExt.AncientForest: return "Ancient Forest"; - case Stage.WildspireWaste: + case StageExt.WildspireWaste: return "Wildspire Waste"; - case Stage.CoralHighlands: + case StageExt.CoralHighlands: return "Coral Highlands"; - case Stage.RottenVale: + case StageExt.RottenVale: return "Rotten Vale"; - case Stage.ElderRecess: + case StageExt.ElderRecess: return "Elder Recess"; - case Stage.GreatRavine: + case StageExt.GreatRavine: return "Great Ravine"; - case Stage.GreatRavineStory: + case StageExt.GreatRavineStory: return "Great Ravine Story"; - case Stage.HoarfrostReach: + case StageExt.HoarfrostReach: return "Hoarfrost Reach"; - case Stage.GuidingLands: + case StageExt.GuidingLands: return "Guiding Lands"; - case Stage.InfinityOfNothing: + case StageExt.InfinityOfNothing: return "Infinity Of Nothing"; - case Stage.SpecialArena: + case StageExt.SpecialArena: return "Special Arena"; - case Stage.ChallengeArena: + case StageExt.ChallengeArena: return "Challenge Arena"; - case Stage.Astera: + case StageExt.Astera: return "Astera"; - case Stage.AsteraHub: + case StageExt.AsteraHub: return "Astera Hub"; - case Stage.ResearchBase: + case StageExt.ResearchBase: return "Research Base"; - case Stage.Seliana: + case StageExt.Seliana: return "Seliana"; - case Stage.SelianaHub: + case StageExt.SelianaHub: return "Seliana Hub"; - case Stage.Everstream: + case StageExt.Opening: + return "Opening"; + case StageExt.Everstream: return "Everstream"; - case Stage.ConfluenceOfFates: + case StageExt.ConfluenceOfFates: return "Confluence Of Fates"; - case Stage.CharacterCreation: + case StageExt.AncientForestOpening: + return "Ancient Forest (Opening)"; + case StageExt.CharacterCreation: return "Character Creation"; - case Stage.DebugMap: + case StageExt.DebugMap: return "Debug Map"; - case Stage.ElDorado: + case StageExt.ElDorado: return "El Dorado"; - case Stage.SelianaSupplyCache: + case StageExt.SelianaSupplyCache: return "Seliana Supply Cache"; - case Stage.OriginIsleNergigante: + case StageExt.OriginIsleNergigante: return "Origin Isle Nergigante"; - case Stage.OriginIsleSharaIshvalda: + case StageExt.OriginIsleSharaIshvalda: return "Origin Isle Shara Ishvalda"; - case Stage.SecludedValley: + case StageExt.SecludedValley: return "Secluded Valley"; - case Stage.AlatreonStage: + case StageExt.AlatreonStage: return "Alatreon Stage"; - case Stage.CastleSchrade: + case StageExt.CastleSchrade: return "Castle Schrade"; - case Stage.LivingQuarters: + case StageExt.LivingQuarters: return "Living Quarters"; - case Stage.PrivateQuarters: + case StageExt.PrivateQuarters: return "Private Quarters"; - case Stage.PrivateSuite: + case StageExt.PrivateSuite: return "Private Suite"; - case Stage.TrainingCamp: + case StageExt.TrainingCamp: return "Training Camp"; - case Stage.ChamberOfFive: + case StageExt.ChamberOfFive: return "Chamber Of Five"; - case Stage.SelianaRoom: + case StageExt.SelianaRoom: return "Seliana Room"; } - return "Global (null)"; + return $"(Error: {stage})"; } + public static List OrderedStages = new List() + { + StageExt.Astera, + StageExt.AsteraHub, + StageExt.ResearchBase, + StageExt.Seliana, + StageExt.SelianaHub, + StageExt.LivingQuarters, + StageExt.PrivateQuarters, + StageExt.PrivateSuite, + StageExt.SelianaRoom, + StageExt.TrainingCamp, + StageExt.AncientForest, + StageExt.WildspireWaste, + StageExt.CoralHighlands, + StageExt.RottenVale, + StageExt.ElderRecess, + StageExt.GreatRavine, + StageExt.GreatRavineStory, + StageExt.HoarfrostReach, + StageExt.GuidingLands, + StageExt.SpecialArena, + StageExt.ChallengeArena, + StageExt.Everstream, + StageExt.ConfluenceOfFates, + StageExt.ElDorado, + StageExt.SelianaSupplyCache, + StageExt.OriginIsleNergigante, + StageExt.OriginIsleSharaIshvalda, + StageExt.SecludedValley, + StageExt.AlatreonStage, + StageExt.CastleSchrade, + StageExt.ChamberOfFive, + StageExt.Opening, + StageExt.AncientForestOpening, + StageExt.CharacterCreation, + StageExt.InfinityOfNothing, + StageExt.InfinityOfNothingHandler, + StageExt.DebugMap + }; + public struct PatchConfig { public bool FullResolutionVolumeBlur { get; set; } = false; @@ -98,7 +187,8 @@ namespace WorldTuningTool public PatchConfig Patches { get; set; } = new PatchConfig(); - public Dictionary> Overrides { get; set; } = new Dictionary>(); + public Dictionary> Overrides { get; set; } = new Dictionary>(); public Dictionary> Presets { get; set; } = new Dictionary>(); + public string SelectedPreset { get; set; } = ""; } } -- cgit v1.2.3-101-g0448