diff --git a/Glamourer/State/StateApplier.cs b/Glamourer/State/StateApplier.cs index b737736..8b69e0a 100644 --- a/Glamourer/State/StateApplier.cs +++ b/Glamourer/State/StateApplier.cs @@ -281,9 +281,9 @@ public class StateApplier( } /// Change the customize parameters on models. Can change multiple at once. - public void ChangeParameters(ActorData data, CustomizeParameterFlag flags, in CustomizeParameterData values) + public void ChangeParameters(ActorData data, CustomizeParameterFlag flags, in CustomizeParameterData values, bool force) { - if (!_config.UseAdvancedParameters || flags == 0) + if (!force && !_config.UseAdvancedParameters || flags == 0) return; foreach (var actor in data.Objects.Where(a => a is { IsCharacter: true, Model.IsHuman: true })) @@ -295,7 +295,7 @@ public class StateApplier( { var data = GetData(state); if (apply) - ChangeParameters(data, flags, state.ModelData.Parameters); + ChangeParameters(data, flags, state.ModelData.Parameters, state.IsLocked); return data; } diff --git a/Glamourer/State/StateListener.cs b/Glamourer/State/StateListener.cs index 3851871..6cf873d 100644 --- a/Glamourer/State/StateListener.cs +++ b/Glamourer/State/StateListener.cs @@ -746,11 +746,14 @@ public class StateListener : IDisposable model.ApplySingleParameterData(flag, state.ModelData.Parameters); break; case StateChanged.Source.Fixed: - case StateChanged.Source.Ipc: state.BaseData.Parameters.Set(flag, newValue); if (_config.UseAdvancedParameters) model.ApplySingleParameterData(flag, state.ModelData.Parameters); break; + case StateChanged.Source.Ipc: + state.BaseData.Parameters.Set(flag, newValue); + model.ApplySingleParameterData(flag, state.ModelData.Parameters); + break; } } }