diff --git a/Brio/Files/AnamnesisCharaFile.cs b/Brio/Files/AnamnesisCharaFile.cs index 6bf1699b..0f0a698b 100644 --- a/Brio/Files/AnamnesisCharaFile.cs +++ b/Brio/Files/AnamnesisCharaFile.cs @@ -69,21 +69,28 @@ internal class AnamnesisCharaFile : JsonDocumentBase public ItemSave Wrists { get; set; } public ItemSave LeftRing { get; set; } public ItemSave RightRing { get; set; } - public Vector3 SkinColor { get; set; } - public Vector3 SkinGloss { get; set; } - public Vector3 LeftEyeColor { get; set; } - public Vector3 RightEyeColor { get; set; } - public Vector3 LimbalRingColor { get; set; } - public Vector3 HairColor { get; set; } - public Vector3 HairGloss { get; set; } - public Vector3 HairHighlight { get; set; } - public Vector4 MouthColor { get; set; } - public Vector3 BustScale { get; set; } + + public GlassesSave? Glasses { get; set; } + public float Transparency { get; set; } - public float MuscleTone { get; set; } + + // Extended Appearance + public float HeightMultiplier { get; set; } + public float MuscleTone { get; set; } = 1f; + + public Vector3? SkinColor { get; set; } = null; + public Vector3? SkinGloss { get; set; } = null; + public Vector3? LeftEyeColor { get; set; } = null; + public Vector3? RightEyeColor { get; set; } = null; + public Vector3? LimbalRingColor { get; set; } = null; + public Vector3? HairColor { get; set; } = null; + public Vector3? HairGloss { get; set; } = null; + public Vector3? HairHighlight { get; set; } = null; + public Vector4? MouthColor { get; set; } = null; + + public Vector3? BustScale { get; set; } = null; - public GlassesSave? Glasses { get; set; } public override void GetAutoTags(ref TagCollection tags) { @@ -151,6 +158,7 @@ public static implicit operator ActorAppearance(AnamnesisCharaFile chara) // Extended Appearance appearance.ExtendedAppearance.Transparency = chara.Transparency; + appearance.ExtendedAppearance.HeightMultiplier = chara.HeightMultiplier; return appearance; } @@ -210,7 +218,8 @@ public static implicit operator AnamnesisCharaFile(ActorAppearance appearance) Glasses = appearance.Facewear, // Extended Appearance - Transparency = appearance.ExtendedAppearance.Transparency + Transparency = appearance.ExtendedAppearance.Transparency, + HeightMultiplier = appearance.ExtendedAppearance.HeightMultiplier }; return charaFile; diff --git a/Brio/Game/Actor/Appearance/ActorAppearance.cs b/Brio/Game/Actor/Appearance/ActorAppearance.cs index 1e2a804d..19b4098c 100644 --- a/Brio/Game/Actor/Appearance/ActorAppearance.cs +++ b/Brio/Game/Actor/Appearance/ActorAppearance.cs @@ -49,6 +49,8 @@ public unsafe static ActorAppearance FromCharacter(DalamudCharacter character) actorAppearance.ExtendedAppearance.CharacterTint = charaBase->Tint; actorAppearance.ExtendedAppearance.Wetness = charaBase->Wetness; actorAppearance.ExtendedAppearance.WetnessDepth = charaBase->WetnessDepth; + + actorAppearance.ExtendedAppearance.HeightMultiplier = charaBase->ScaleFactor2; } charaBase = character.GetWeaponCharacterBase(ActorEquipSlot.MainHand); diff --git a/Brio/Game/Actor/Appearance/ActorExtendedAppearance.cs b/Brio/Game/Actor/Appearance/ActorExtendedAppearance.cs index e313e52e..369bfa30 100644 --- a/Brio/Game/Actor/Appearance/ActorExtendedAppearance.cs +++ b/Brio/Game/Actor/Appearance/ActorExtendedAppearance.cs @@ -12,4 +12,9 @@ internal struct ActorExtendedAppearance() public Vector4 MainHandTint = Vector4.One; public Vector4 OffHandTint = Vector4.One; + + // + // TODO, Brio ignores the following filds + + public float HeightMultiplier = 1.0f; }