From 9ba1a9422b9a1e8ad40a7be84acd7d4b944c267d Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Thu, 18 Jun 2026 09:44:53 -0400 Subject: Cleanup and comment some stuff Signed-off-by: Andrew Opalach --- Plugin.cs | 70 +++++++++++++++++++++++++++++++++++------------------------ changelog.txt | 27 +++++++++++++++++++++++ 2 files changed, 69 insertions(+), 28 deletions(-) create mode 100644 changelog.txt diff --git a/Plugin.cs b/Plugin.cs index 93119c3..d023e01 100755 --- a/Plugin.cs +++ b/Plugin.cs @@ -22,6 +22,7 @@ using SharpPluginLoader.Core.Memory; using SharpPluginLoader.Core.Entities; // @TODO: +// - Configurable Broad Area Shadow Resolution. // - Optimized update logic. // - Only update non-override values when ui is shown. // - Map sky params. @@ -205,13 +206,18 @@ namespace WorldTuningTool return false; } + // globalOverrides == null: selectedStage is globalStage. private static bool selectedOverrideSuperseded(Config config, List? globalOverrides, List? stageOverrides, Parameter? param) { + // Non-current stage always superseded (inactive). bool superseded = globalOverrides != null && selectedStage != currentStage; - if (param != null) + if (!superseded && param != null) { + // If Global is selected, check if superseded by a currentStage override. superseded |= globalOverrides == null && stageOverrides != null && overridesContainsParam(stageOverrides, param); + // Any other selectedStage override is either inactive or could only be superseded by a + // preset or external override. superseded |= selectedPreset != "" && overridesContainsParam(config.Presets[selectedPreset], param); superseded |= overridesContainsParam(externalOverrides.Values, param); } @@ -301,20 +307,24 @@ namespace WorldTuningTool public void Resolve() { - Assert(!InTransition); - if (pendingWrite) - { - pendingWrite = false; - maybeWriteCurrentValue(); - } + Assert(!InTransition && pendingWrite); + pendingWrite = false; + maybeWriteCurrentValue(); } private void maybeWriteCurrentValue() { if (InTransition) { - pendingWrite = true; - DirtyParams.Add(this); + if (!DirtyParams.Contains(this)) + { + pendingWrite = true; + DirtyParams.Add(this); + } + else + { + Assert(pendingWrite); + } return; } Assert(!pendingWrite); @@ -873,6 +883,8 @@ namespace WorldTuningTool List selectedOverrides = config.Overrides[selectedStage]; List? stageOverrides = maybeGetStageOverrides(config); // Deciding when to set globalOverrides copies the logic in OnImGuiRender(). + // Selected: Set if selectedStage != globalStage. + // Preset: Always set. List? globalOverrides = null; if (selectedPreset != "") { @@ -882,7 +894,8 @@ namespace WorldTuningTool ImGui.SameLine(); if (ImGui.Button("▲")) { - // Create override before unsetting global. + // Create the new override before unsetting any lower priority overrides. + // Effectively, copy the current override value. Override ov = new Override(this, v4, i1); globalOverrides = config.Overrides[globalStage]; bool superseded = overridesContainsParam(externalOverrides.Values, this); @@ -911,7 +924,6 @@ namespace WorldTuningTool ImGui.SameLine(); if (ImGui.Button("▲")) { - // Create override before unsetting global. Override ov = new Override(this, v4, i1); if (selectedStage != globalStage) { @@ -1150,7 +1162,7 @@ namespace WorldTuningTool } } - public void Draw(List? currentOverrides, List? stageOverrides, List? globalOverrides, bool superseded, bool preset, float width) + public void Draw(bool forPreset, List? currentOverrides, List? stageOverrides, List? globalOverrides, bool superseded, float width) { bool fade = superseded; if (fade) @@ -1181,6 +1193,7 @@ namespace WorldTuningTool Unset(); if (Param != null) { + Assert(stageOverrides == null || forPreset); if (!(stageOverrides != null && setIfOverridesContainsParam(stageOverrides, Param))) { if (globalOverrides != null) @@ -1193,26 +1206,25 @@ namespace WorldTuningTool Param = iterParam; (valueV, valueInt) = Param.GetValue(); Save(); - if (preset) + if (forPreset) { + Assert(globalOverrides != null); superseded = overridesContainsParam(externalOverrides.Values, Param); - if (!superseded && wasSet) + if (!superseded) { if (!(stageOverrides != null && unsetIfOverridesContainsParam(stageOverrides, Param))) { - if (globalOverrides != null) - { - unsetIfOverridesContainsParam(globalOverrides, Param); - } + unsetIfOverridesContainsParam(globalOverrides!, Param); } Set(); } + presetOrderChanged = true; } else { Config config = getConfig(); superseded = selectedOverrideSuperseded(config, globalOverrides, stageOverrides, Param); - if (!superseded && wasSet) + if (!superseded) { if (globalOverrides != null) { @@ -1220,6 +1232,7 @@ namespace WorldTuningTool } Set(); } + selectedOrderChanged = true; } EndTransition(); } @@ -2204,17 +2217,18 @@ namespace WorldTuningTool config.Overrides.Add(area, new List()); } } - foreach (Override ovG in config.Overrides[globalStage]) + BeginTransition(); + List globalOverrides = config.Overrides[globalStage]; + foreach (Override ovG in globalOverrides) { ovG.Set(); } selectedPreset = config.SelectedPreset; if (selectedPreset != "") { - List globalOverrides = config.Overrides[globalStage]; - List? stageOverrides = maybeGetStageOverrides(config); - HandlePresetChange("", globalOverrides, stageOverrides); + HandlePresetChange("", globalOverrides, maybeGetStageOverrides(config)); } + EndTransition(); saveConfig(); } @@ -2705,7 +2719,6 @@ namespace WorldTuningTool private void HandlePresetChange(string prevPreset, List globalOverrides, List? stageOverrides) { Config config = getConfig(); - BeginTransition(); if (prevPreset != "") { List prevOverrides = config.Presets[prevPreset]; @@ -2744,7 +2757,6 @@ namespace WorldTuningTool } } } - EndTransition(); } private void HandleAreaChange(StageExt stage) @@ -2880,7 +2892,7 @@ namespace WorldTuningTool (selectedOverrides[i], selectedOverrides[i + 1]) = (selectedOverrides[i + 1], selectedOverrides[i]); selectedOrderChanged = true; } - ovS.Draw(selectedOverrides, null, globalOverrides, superseded, false, width); + ovS.Draw(false, selectedOverrides, null, globalOverrides, superseded, width); if (requestUp && i > 0) { (selectedOverrides[i], selectedOverrides[i - 1]) = (selectedOverrides[i - 1], selectedOverrides[i]); @@ -2974,7 +2986,9 @@ namespace WorldTuningTool } if (prevPreset != selectedPreset) { + BeginTransition(); HandlePresetChange(prevPreset, globalOverrides, stageOverrides); + EndTransition(); config.SelectedPreset = selectedPreset; saveConfig(); } @@ -3053,7 +3067,7 @@ namespace WorldTuningTool (presetOverrides[i], presetOverrides[i + 1]) = (presetOverrides[i + 1], presetOverrides[i]); presetOrderChanged = true; } - ovP.Draw(presetOverrides, stageOverrides, globalOverrides, superseded, true, width); + ovP.Draw(true, presetOverrides, stageOverrides, globalOverrides, superseded, width); if (requestUp && i > 0) { (presetOverrides[i], presetOverrides[i - 1]) = (presetOverrides[i - 1], presetOverrides[i]); @@ -3111,7 +3125,7 @@ namespace WorldTuningTool ImGui.Text("External:"); foreach (Override ovE in externalOverrides.Values) { - ovE.Draw(null, null, null, false, false, width); + ovE.Draw(false, null, null, null, false, width); } ImGui.PopID(); diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 0000000..10d8127 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,27 @@ += 0.9.3 + WorldTuningTool_0.9.3.zip: 6/16/26, sha256-8d6457f1d7123ff315ba3dad02da8f30e9b301183641cacd800e9795868b81d3 +== Changelog +* Fix crash on creating a new character. +* Optimize updating parameters when transitioning between areas and presets. +* Make Area -> Global transition actually proc and fix related logic inconsistencies. +* Save selected "Quick Preset" to the config. +* Make the value being used for "Shadow Map Size" more clear. +* Tweak some UI stuff. + += 0.9.2 + WorldTuningTool_0.9.2.zip: 6/14/26, sha256-7922f9a62baadcd9753bcb4e8473c26e8c40add51a83f9fc9c44e34e59bf4b3e +== Changelog +* Fixed config parsing on systems with different locale settings, likely related to "." vs "," as a decimal separator. +* Adjusted some parameters' min, max, and step settings. + += 0.9.1 + WorldTuningTool_0.9.1.zip: 6/9/26, sha256-211bcc20f939df485920e37193c191231c5a6207031c1fcefde62458f622dccf +== Changelog +* Fix "Lighting" parameters. + += 0.9 + WorldTuningTool_0.9.zip: 6/8/26, sha256-4a8a6790db99092efa847469db789f2000bce71d0da3b29a43dcbb98d7a1407a +== Changelog +* Release + +// vim: set syntax=asciidoc: -- cgit v1.2.3-101-g0448