diff --git a/Glamourer/Designs/DesignBase.cs b/Glamourer/Designs/DesignBase.cs index cb40279..4ef567e 100644 --- a/Glamourer/Designs/DesignBase.cs +++ b/Glamourer/Designs/DesignBase.cs @@ -34,7 +34,7 @@ public class DesignBase internal DesignBase(DesignBase clone) { - _designData = clone._designData; + _designData = clone._designData; CustomizationSet = clone.CustomizationSet; ApplyCustomize = clone.ApplyCustomizeRaw; ApplyEquip = clone.ApplyEquip & EquipFlagExtensions.All; @@ -44,7 +44,7 @@ public class DesignBase /// Ensure that the customization set is updated when the design data changes. internal void SetDesignData(CustomizationService customize, in DesignData other) { - _designData = other; + _designData = other; CustomizationSet = SetCustomizationSet(customize); } @@ -216,7 +216,7 @@ public class DesignBase private CustomizationSet SetCustomizationSet(CustomizationService customize) => !_designData.IsHuman - ? customize.AwaitedService.GetList(SubRace.Midlander, Gender.Male) + ? customize.AwaitedService.GetList(SubRace.Midlander, Gender.Male) : customize.AwaitedService.GetList(_designData.Customize.Clan, _designData.Customize.Gender); #endregion @@ -400,8 +400,8 @@ public class DesignBase { if (json == null) { - design._designData.ModelId = 0; - design._designData.IsHuman = true; + design._designData.ModelId = 0; + design._designData.IsHuman = true; design.SetCustomize(customizations, Customize.Default); Glamourer.Messager.NotificationMessage("The loaded design does not contain any customization data, reset to default.", NotificationType.Warning); @@ -421,7 +421,8 @@ public class DesignBase design.SetApplyWetness(wetness.Enabled); design._designData.ModelId = json["ModelId"]?.ToObject() ?? 0; - PrintWarning(customizations.ValidateModelId(design._designData.ModelId, out design._designData.ModelId, out design._designData.IsHuman)); + PrintWarning(customizations.ValidateModelId(design._designData.ModelId, out design._designData.ModelId, + out design._designData.IsHuman)); if (design._designData.ModelId != 0 && forbidNonHuman) { PrintWarning("Model IDs different from 0 are not currently allowed, reset model id to 0."); @@ -444,7 +445,7 @@ public class DesignBase design._designData.Customize.Race = race; design._designData.Customize.Clan = clan; design._designData.Customize.Gender = gender; - design.CustomizationSet = design.SetCustomizationSet(customizations); + design.CustomizationSet = design.SetCustomizationSet(customizations); design.SetApplyCustomize(CustomizeIndex.Race, json[CustomizeIndex.Race.ToString()]?["Apply"]?.ToObject() ?? false); design.SetApplyCustomize(CustomizeIndex.Clan, json[CustomizeIndex.Clan.ToString()]?["Apply"]?.ToObject() ?? false); design.SetApplyCustomize(CustomizeIndex.Gender, json[CustomizeIndex.Gender.ToString()]?["Apply"]?.ToObject() ?? false); @@ -454,8 +455,9 @@ public class DesignBase { var tok = json[idx.ToString()]; var data = (CustomizeValue)(tok?["Value"]?.ToObject() ?? 0); - PrintWarning(CustomizationService.ValidateCustomizeValue(set, design._designData.Customize.Face, idx, data, out data, - allowUnknown)); + if (set.IsAvailable(idx)) + PrintWarning(CustomizationService.ValidateCustomizeValue(set, design._designData.Customize.Face, idx, data, out data, + allowUnknown)); var apply = tok?["Apply"]?.ToObject() ?? false; design._designData.Customize[idx] = data; design.SetApplyCustomize(idx, apply);