Fix advanced parameters not applying after race change.

This commit is contained in:
Ottermandias 2024-01-17 00:38:39 +01:00
parent 57f4ccaaa5
commit 547c40fe52
3 changed files with 16 additions and 1 deletions

View file

@ -58,6 +58,8 @@ public sealed class StateChanged()
Manual, Manual,
Fixed, Fixed,
Ipc, Ipc,
// Only used for CustomizeParameters.
Outstanding,
} }
public enum Priority public enum Priority

View file

@ -752,6 +752,15 @@ public class StateListener : IDisposable
case StateChanged.Source.Ipc: case StateChanged.Source.Ipc:
state.BaseData.Parameters.Set(flag, newValue); state.BaseData.Parameters.Set(flag, newValue);
model.ApplySingleParameterData(flag, state.ModelData.Parameters); model.ApplySingleParameterData(flag, state.ModelData.Parameters);
break;
case StateChanged.Source.Outstanding:
state.BaseData.Parameters.Set(flag, newValue);
if (_config.UseAdvancedParameters)
{
model.ApplySingleParameterData(flag, state.ModelData.Parameters);
state[flag] = StateChanged.Source.Manual;
}
break; break;
} }
} }

View file

@ -403,8 +403,12 @@ public class StateManager(
foreach (var slot in CrestExtensions.AllRelevantSet.Where(design.DoApplyCrest)) foreach (var slot in CrestExtensions.AllRelevantSet.Where(design.DoApplyCrest))
_editor.ChangeCrest(state, slot, design.DesignData.Crest(slot), source, out _, key); _editor.ChangeCrest(state, slot, design.DesignData.Crest(slot), source, out _, key);
var paramSource = source is StateChanged.Source.Manual && redraw
? StateChanged.Source.Outstanding
: source;
foreach (var flag in CustomizeParameterExtensions.AllFlags.Where(design.DoApplyParameter)) foreach (var flag in CustomizeParameterExtensions.AllFlags.Where(design.DoApplyParameter))
_editor.ChangeParameter(state, flag, design.DesignData.Parameters[flag], source, out _, key); _editor.ChangeParameter(state, flag, design.DesignData.Parameters[flag], paramSource, out _, key);
} }
var actors = ApplyAll(state, redraw, false); var actors = ApplyAll(state, redraw, false);