Fix private Unks.
Some checks are pending
.NET Build / build (push) Waiting to run

This commit is contained in:
Ottermandias 2025-12-18 20:47:49 +01:00
parent 7717251c6a
commit 4c8ff40821
2 changed files with 25 additions and 4 deletions

View file

@ -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<ushort, SchedulerResource.ResourceName>(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<uint, SchedulerResource>(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<ushort, SchedulerResource.ResourceName>(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<uint, SchedulerResource>(resource, 120)}"); // key, Unk1
ImGui.TableNextColumn();
Penumbra.Dynamis.DrawPointer(resource);
ImGui.TableNextColumn();

View file

@ -0,0 +1,20 @@
namespace Penumbra.Util;
public static class PointerExtensions
{
public static unsafe ref TField GetField<TField, TPointer>(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<TField, TPointer>(TPointer* itemPointer, int offset)
where TPointer : unmanaged
where TField : unmanaged
{
var pointer = (byte*)itemPointer + offset;
return ref *(TField*)pointer;
}
}