Material tab: disallow "Enable Transparency" for stockings shader

This commit is contained in:
Ridan Vandenbergh 2025-08-02 00:27:21 +02:00
parent bdcab22a55
commit 48c57e1a7c
No known key found for this signature in database

View file

@ -1,3 +1,4 @@
using Dalamud.Interface.Components;
using Dalamud.Plugin.Services;
using ImGuiNET;
using OtterGui;
@ -119,11 +120,22 @@ public sealed partial class MtrlTab : IWritable, IDisposable
using var dis = ImRaii.Disabled(disabled);
var tmp = shaderFlags.EnableTransparency;
if (ImUtf8.Checkbox("Enable Transparency"u8, ref tmp))
// guardrail: the game crashes if transparency is enabled on characterstockings.shpk
var disallowTransparency = Mtrl.ShaderPackage.Name == "characterstockings.shpk";
using (ImRaii.Disabled(disallowTransparency))
{
shaderFlags.EnableTransparency = tmp;
ret = true;
SetShaderPackageFlags(Mtrl.ShaderPackage.Flags);
if (ImUtf8.Checkbox("Enable Transparency"u8, ref tmp))
{
shaderFlags.EnableTransparency = tmp;
ret = true;
SetShaderPackageFlags(Mtrl.ShaderPackage.Flags);
}
}
if (disallowTransparency)
{
ImGuiComponents.HelpMarker("Enabling transparency for shader package characterstockings.shpk will crash the game.");
}
ImGui.SameLine(200 * UiHelpers.Scale + ImGui.GetStyle().ItemSpacing.X + ImGui.GetStyle().WindowPadding.X);