From 3f5ebab86569bbcb21faaaf81e0fbb5d210b874b Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Thu, 18 Jun 2026 11:00:16 -0400 Subject: Display what is superseding a listed Override Ref: https://codeberg.org/pizzabelly/WorldTuningTool/pulls/1 Signed-off-by: Andrew Opalach --- Plugin.cs | 53 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 5 deletions(-) (limited to 'Plugin.cs') diff --git a/Plugin.cs b/Plugin.cs index d55391f..d0476fb 100755 --- a/Plugin.cs +++ b/Plugin.cs @@ -1193,8 +1193,17 @@ namespace WorldTuningTool Unset(); if (Param != null) { - Assert(stageOverrides == null || forPreset); - if (!(stageOverrides != null && setIfOverridesContainsParam(stageOverrides, Param))) + if (forPreset) + { + if (!(stageOverrides != null && setIfOverridesContainsParam(stageOverrides, Param))) + { + if (globalOverrides != null) + { + setIfOverridesContainsParam(globalOverrides, Param); + } + } + } + else { if (globalOverrides != null) { @@ -1293,10 +1302,44 @@ namespace WorldTuningTool ImGui.EndTooltip(); } } - else if (valueDiffers || superseded) + else if (valueDiffers) { ImGui.SameLine(); - Param.DrawReferenceValue("Current", v4, i1); + if (!superseded) + { + Param.DrawReferenceValue("Current", v4, i1); + } + else + { + if (forPreset) + { + Assert(overridesContainsParam(externalOverrides.Values, Param)); + Param.DrawReferenceValue("Set by 'External'", v4, i1); + } + else + { + Config config = getConfig(); + // Reverse order of selectedOverrideSuperseded(). + if (overridesContainsParam(externalOverrides.Values, Param)) + { + Param.DrawReferenceValue("Set by 'External'", v4, i1); + } + else if (selectedPreset != "" && overridesContainsParam(config.Presets[selectedPreset], Param)) + { + Param.DrawReferenceValue($"Set by '{selectedPreset}'", v4, i1); + } + else if (globalOverrides == null && stageOverrides != null && + overridesContainsParam(stageOverrides, Param)) + { + Param.DrawReferenceValue($"Set by '{Config.StageToString(currentStage)}'", v4, i1); + } + else // Superseded because inactive. + { + Assert(globalOverrides != null && selectedStage != currentStage); + Param.DrawReferenceValue("Current", v4, i1); + } + } + } } } else if (fade) @@ -2892,7 +2935,7 @@ namespace WorldTuningTool (selectedOverrides[i], selectedOverrides[i + 1]) = (selectedOverrides[i + 1], selectedOverrides[i]); selectedOrderChanged = true; } - ovS.Draw(false, selectedOverrides, null, globalOverrides, superseded, width); + ovS.Draw(false, selectedOverrides, stageOverrides, globalOverrides, superseded, width); if (requestUp && i > 0) { (selectedOverrides[i], selectedOverrides[i - 1]) = (selectedOverrides[i - 1], selectedOverrides[i]); -- cgit v1.2.3-101-g0448