From 8a9fa987069c3f78509616c71583eafba04b3530 Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Wed, 10 Jan 2024 16:41:45 +0100 Subject: [PATCH] Make LipDiffuse a Vec4 instead of two values. --- Glamourer/GameData/CustomizeParameterData.cs | 28 +++++--------------- Glamourer/GameData/CustomizeParameterFlag.cs | 26 +++++++++--------- 2 files changed, 19 insertions(+), 35 deletions(-) diff --git a/Glamourer/GameData/CustomizeParameterData.cs b/Glamourer/GameData/CustomizeParameterData.cs index ee1d5ae..f10289f 100644 --- a/Glamourer/GameData/CustomizeParameterData.cs +++ b/Glamourer/GameData/CustomizeParameterData.cs @@ -4,20 +4,19 @@ namespace Glamourer.GameData; public struct CustomizeParameterData { + public Vector4 DecalColor; + public Vector4 LipDiffuse; public Vector3 SkinDiffuse; public Vector3 SkinSpecular; - public Vector3 LipDiffuse; public Vector3 HairDiffuse; public Vector3 HairSpecular; public Vector3 HairHighlight; public Vector3 LeftEye; public Vector3 RightEye; public Vector3 FeatureColor; - public Vector4 DecalColor; public float FacePaintUvMultiplier; public float FacePaintUvOffset; public float MuscleTone; - public float LipOpacity; public CustomizeParameterValue this[CustomizeParameterFlag flag] { @@ -30,7 +29,6 @@ public struct CustomizeParameterData CustomizeParameterFlag.MuscleTone => new CustomizeParameterValue(MuscleTone), CustomizeParameterFlag.SkinSpecular => new CustomizeParameterValue(SkinSpecular), CustomizeParameterFlag.LipDiffuse => new CustomizeParameterValue(LipDiffuse), - CustomizeParameterFlag.LipOpacity => new CustomizeParameterValue(LipOpacity), CustomizeParameterFlag.HairDiffuse => new CustomizeParameterValue(HairDiffuse), CustomizeParameterFlag.HairSpecular => new CustomizeParameterValue(HairSpecular), CustomizeParameterFlag.HairHighlight => new CustomizeParameterValue(HairHighlight), @@ -54,8 +52,7 @@ public struct CustomizeParameterData CustomizeParameterFlag.SkinDiffuse => SetIfDifferent(ref SkinDiffuse, value.InternalTriple), CustomizeParameterFlag.MuscleTone => SetIfDifferent(ref MuscleTone, value.Single), CustomizeParameterFlag.SkinSpecular => SetIfDifferent(ref SkinSpecular, value.InternalTriple), - CustomizeParameterFlag.LipDiffuse => SetIfDifferent(ref LipDiffuse, value.InternalTriple), - CustomizeParameterFlag.LipOpacity => SetIfDifferent(ref LipOpacity, value.Single), + CustomizeParameterFlag.LipDiffuse => SetIfDifferent(ref LipDiffuse, value.InternalQuadruple), CustomizeParameterFlag.HairDiffuse => SetIfDifferent(ref HairDiffuse, value.InternalTriple), CustomizeParameterFlag.HairSpecular => SetIfDifferent(ref HairSpecular, value.InternalTriple), CustomizeParameterFlag.HairHighlight => SetIfDifferent(ref HairHighlight, value.InternalTriple), @@ -80,14 +77,6 @@ public struct CustomizeParameterData _ => new CustomizeParameterValue(SkinDiffuse, MuscleTone).XivQuadruple, }; - parameters.LipColor = (flags & (CustomizeParameterFlag.LipDiffuse | CustomizeParameterFlag.LipOpacity)) switch - { - 0 => parameters.LipColor, - CustomizeParameterFlag.LipDiffuse => new CustomizeParameterValue(LipDiffuse, parameters.LipColor.W).XivQuadruple, - CustomizeParameterFlag.LipOpacity => parameters.LipColor with { W = LipOpacity }, - _ => new CustomizeParameterValue(LipDiffuse, LipOpacity).XivQuadruple, - }; - parameters.LeftColor = (flags & (CustomizeParameterFlag.LeftEye | CustomizeParameterFlag.FacePaintUvMultiplier)) switch { 0 => parameters.LeftColor, @@ -112,6 +101,8 @@ public struct CustomizeParameterData parameters.HairFresnelValue0 = new CustomizeParameterValue(HairSpecular).XivTriple; if (flags.HasFlag(CustomizeParameterFlag.HairHighlight)) parameters.MeshColor = new CustomizeParameterValue(HairHighlight).XivTriple; + if (flags.HasFlag(CustomizeParameterFlag.LipDiffuse)) + parameters.LipColor = new CustomizeParameterValue(LipDiffuse).XivQuadruple; if (flags.HasFlag(CustomizeParameterFlag.FeatureColor)) parameters.OptionColor = new CustomizeParameterValue(FeatureColor).XivTriple; } @@ -138,10 +129,7 @@ public struct CustomizeParameterData parameters.SkinFresnelValue0 = new CustomizeParameterValue(SkinSpecular).XivQuadruple; break; case CustomizeParameterFlag.LipDiffuse: - parameters.LipColor = new CustomizeParameterValue(LipDiffuse, parameters.LipColor.W).XivQuadruple; - break; - case CustomizeParameterFlag.LipOpacity: - parameters.LipColor.W = LipOpacity; + parameters.LipColor = new CustomizeParameterValue(LipDiffuse).XivQuadruple; break; case CustomizeParameterFlag.HairDiffuse: parameters.MainColor = new CustomizeParameterValue(HairDiffuse).XivTriple; @@ -176,10 +164,9 @@ public struct CustomizeParameterData FacePaintUvOffset = parameter.RightColor.W, FacePaintUvMultiplier = parameter.LeftColor.W, MuscleTone = parameter.SkinColor.W, - LipOpacity = parameter.LipColor.W, SkinDiffuse = new CustomizeParameterValue(parameter.SkinColor).InternalTriple, SkinSpecular = new CustomizeParameterValue(parameter.SkinFresnelValue0).InternalTriple, - LipDiffuse = new CustomizeParameterValue(parameter.LipColor).InternalTriple, + LipDiffuse = new CustomizeParameterValue(parameter.LipColor).InternalQuadruple, HairDiffuse = new CustomizeParameterValue(parameter.MainColor).InternalTriple, HairSpecular = new CustomizeParameterValue(parameter.HairFresnelValue0).InternalTriple, HairHighlight = new CustomizeParameterValue(parameter.MeshColor).InternalTriple, @@ -196,7 +183,6 @@ public struct CustomizeParameterData CustomizeParameterFlag.MuscleTone => new CustomizeParameterValue(parameter.SkinColor.W), CustomizeParameterFlag.SkinSpecular => new CustomizeParameterValue(parameter.SkinFresnelValue0), CustomizeParameterFlag.LipDiffuse => new CustomizeParameterValue(parameter.LipColor), - CustomizeParameterFlag.LipOpacity => new CustomizeParameterValue(parameter.LipColor.W), CustomizeParameterFlag.HairDiffuse => new CustomizeParameterValue(parameter.MainColor), CustomizeParameterFlag.HairSpecular => new CustomizeParameterValue(parameter.HairFresnelValue0), CustomizeParameterFlag.HairHighlight => new CustomizeParameterValue(parameter.MeshColor), diff --git a/Glamourer/GameData/CustomizeParameterFlag.cs b/Glamourer/GameData/CustomizeParameterFlag.cs index b4bfdbd..a0c814a 100644 --- a/Glamourer/GameData/CustomizeParameterFlag.cs +++ b/Glamourer/GameData/CustomizeParameterFlag.cs @@ -7,27 +7,26 @@ public enum CustomizeParameterFlag : ushort MuscleTone = 0x0002, SkinSpecular = 0x0004, LipDiffuse = 0x0008, - LipOpacity = 0x0010, - HairDiffuse = 0x0020, - HairSpecular = 0x0040, - HairHighlight = 0x0080, - LeftEye = 0x0100, - RightEye = 0x0200, - FeatureColor = 0x0400, - FacePaintUvMultiplier = 0x0800, - FacePaintUvOffset = 0x1000, - DecalColor = 0x2000, + HairDiffuse = 0x0010, + HairSpecular = 0x0020, + HairHighlight = 0x0040, + LeftEye = 0x0080, + RightEye = 0x0100, + FeatureColor = 0x0200, + FacePaintUvMultiplier = 0x0400, + FacePaintUvOffset = 0x0800, + DecalColor = 0x1000, } public static class CustomizeParameterExtensions { - public const CustomizeParameterFlag All = (CustomizeParameterFlag)0x3FFF; + public const CustomizeParameterFlag All = (CustomizeParameterFlag)0x1FFF; public const CustomizeParameterFlag RgbTriples = All & ~(RgbaQuadruples | Percentages | Values); - public const CustomizeParameterFlag RgbaQuadruples = CustomizeParameterFlag.DecalColor; - public const CustomizeParameterFlag Percentages = CustomizeParameterFlag.MuscleTone | CustomizeParameterFlag.LipOpacity; + public const CustomizeParameterFlag RgbaQuadruples = CustomizeParameterFlag.DecalColor | CustomizeParameterFlag.LipDiffuse; + public const CustomizeParameterFlag Percentages = CustomizeParameterFlag.MuscleTone; public const CustomizeParameterFlag Values = CustomizeParameterFlag.FacePaintUvOffset | CustomizeParameterFlag.FacePaintUvMultiplier; public static readonly IReadOnlyList AllFlags = [.. Enum.GetValues()]; @@ -52,7 +51,6 @@ public static class CustomizeParameterExtensions CustomizeParameterFlag.MuscleTone => "Muscle Tone", CustomizeParameterFlag.SkinSpecular => "Skin Shine", CustomizeParameterFlag.LipDiffuse => "Lip Color", - CustomizeParameterFlag.LipOpacity => "Lip Opacity", CustomizeParameterFlag.HairDiffuse => "Hair Color", CustomizeParameterFlag.HairSpecular => "Hair Shine", CustomizeParameterFlag.HairHighlight => "Hair Highlights",