summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xPlugin.cs53
1 files changed, 48 insertions, 5 deletions
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]);