diff --git a/Penumbra/UI/Tabs/Debug/GlobalVariablesDrawer.cs b/Penumbra/UI/Tabs/Debug/GlobalVariablesDrawer.cs index f0ab1125..bc5f0765 100644 --- a/Penumbra/UI/Tabs/Debug/GlobalVariablesDrawer.cs +++ b/Penumbra/UI/Tabs/Debug/GlobalVariablesDrawer.cs @@ -9,6 +9,7 @@ using OtterGui.Text; using Penumbra.Interop.Services; using Penumbra.Interop.Structs; using Penumbra.String; +using Penumbra.Util; using ResidentResourceManager = Penumbra.Interop.Services.ResidentResourceManager; namespace Penumbra.UI.Tabs.Debug; @@ -178,10 +179,10 @@ public unsafe class GlobalVariablesDrawer( if (_schedulerFilterMap.Length is 0 || resource->Name.Buffer.IndexOf(_schedulerFilterMapU8.Span) >= 0) { ImUtf8.DrawTableColumn($"[{total:D4}]"); - ImUtf8.DrawTableColumn($"{resource->Name.Unk1}"); + ImUtf8.DrawTableColumn($"{resource->Name.GetField(16)}"); // Unk1 ImUtf8.DrawTableColumn(new CiByteString(resource->Name.Buffer, MetaDataComputation.None).Span); ImUtf8.DrawTableColumn($"{resource->Consumers}"); - ImUtf8.DrawTableColumn($"{resource->Unk1}"); // key + ImUtf8.DrawTableColumn($"{PointerExtensions.GetField(resource, 120)}"); // key, Unk1 ImGui.TableNextColumn(); Penumbra.Dynamis.DrawPointer(resource); ImGui.TableNextColumn(); @@ -227,10 +228,10 @@ public unsafe class GlobalVariablesDrawer( if (_schedulerFilterList.Length is 0 || resource->Name.Buffer.IndexOf(_schedulerFilterListU8.Span) >= 0) { ImUtf8.DrawTableColumn($"[{total:D4}]"); - ImUtf8.DrawTableColumn($"{resource->Name.Unk1}"); + ImUtf8.DrawTableColumn($"{resource->Name.GetField(16)}"); // Unk1 ImUtf8.DrawTableColumn(new CiByteString(resource->Name.Buffer, MetaDataComputation.None).Span); ImUtf8.DrawTableColumn($"{resource->Consumers}"); - ImUtf8.DrawTableColumn($"{resource->Unk1}"); // key + ImUtf8.DrawTableColumn($"{PointerExtensions.GetField(resource, 120)}"); // key, Unk1 ImGui.TableNextColumn(); Penumbra.Dynamis.DrawPointer(resource); ImGui.TableNextColumn(); diff --git a/Penumbra/Util/PointerExtensions.cs b/Penumbra/Util/PointerExtensions.cs new file mode 100644 index 00000000..c70e2177 --- /dev/null +++ b/Penumbra/Util/PointerExtensions.cs @@ -0,0 +1,20 @@ +namespace Penumbra.Util; + +public static class PointerExtensions +{ + public static unsafe ref TField GetField(this ref TPointer reference, int offset) + where TPointer : unmanaged + where TField : unmanaged + { + var pointer = (byte*)Unsafe.AsPointer(ref reference) + offset; + return ref *(TField*)pointer; + } + + public static unsafe ref TField GetField(TPointer* itemPointer, int offset) + where TPointer : unmanaged + where TField : unmanaged + { + var pointer = (byte*)itemPointer + offset; + return ref *(TField*)pointer; + } +}