From 92e9b472ed5b6ea0f7f5cb3c9b744233f8a9152a Mon Sep 17 00:00:00 2001 From: Exter-N Date: Fri, 12 Dec 2025 22:46:09 +0100 Subject: [PATCH] Fix Shader Flags, add Additional Flags --- .../Materials/MtrlTab.ShaderPackage.cs | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/Penumbra/UI/AdvancedWindow/Materials/MtrlTab.ShaderPackage.cs b/Penumbra/UI/AdvancedWindow/Materials/MtrlTab.ShaderPackage.cs index 4985ccf5..ed38026d 100644 --- a/Penumbra/UI/AdvancedWindow/Materials/MtrlTab.ShaderPackage.cs +++ b/Penumbra/UI/AdvancedWindow/Materials/MtrlTab.ShaderPackage.cs @@ -325,6 +325,7 @@ public partial class MtrlTab { ret |= DrawPackageNameInput(disabled); ret |= DrawShaderFlagsInput(disabled); + ret |= DrawAdditionalFlagsInput(disabled); DrawCustomAssociations(); ret |= DrawMaterialShaderKeys(disabled); DrawMaterialShaders(); @@ -378,8 +379,8 @@ public partial class MtrlTab { var shpkFlags = (int)Mtrl.ShaderPackage.Flags; Im.Item.SetNextWidthScaled(250.0f); - if (!Im.Input.Scalar("Shader Flags"u8, ref shpkFlags, 0, 0, - InputTextFlags.CharsHexadecimal | (disabled ? InputTextFlags.ReadOnly : InputTextFlags.None))) + if (!Im.Input.Scalar("Shader Flags"u8, ref shpkFlags, "%08X"u8, + flags: InputTextFlags.CharsHexadecimal | (disabled ? InputTextFlags.ReadOnly : InputTextFlags.None))) return false; Mtrl.ShaderPackage.Flags = (uint)shpkFlags; @@ -387,6 +388,24 @@ public partial class MtrlTab return true; } + private bool DrawAdditionalFlagsInput(bool disabled) + { + const uint lockedFlags = 0x00000FFC; + + if (Mtrl.AdditionalData.Length < 4) + return false; + + var originalFlags = Mtrl.TableFlags.Flags; + var additionalFlags = originalFlags; + Im.Item.SetNextWidthScaled(250.0f); + if (!Im.Input.Scalar("Additional Flags"u8, ref additionalFlags, "%08X"u8, + flags: InputTextFlags.CharsHexadecimal | (disabled ? InputTextFlags.ReadOnly : InputTextFlags.None))) + return false; + + Mtrl.TableFlags = new((additionalFlags & ~lockedFlags) | (originalFlags & lockedFlags)); + return true; + } + /// /// Show the currently associated shpk file, if any, and the buttons to associate /// a specific shpk from your drive, the modded shpk by path or the default shpk.