@@ -27,14 +27,31 @@ public void Draw()
2727 return ;
2828
2929 var actionManager = ( ActionTimelineManager * * ) ActionTimelineManager . Instance ( ) ;
30- DebugTab . DrawCopyableAddress ( "CharacterUtility"u8 , characterUtility . Address ) ;
31- DebugTab . DrawCopyableAddress ( "ResidentResourceManager"u8 , residentResources . Address ) ;
32- DebugTab . DrawCopyableAddress ( "ScheduleManagement"u8 , ScheduleManagement . Instance ( ) ) ;
33- DebugTab . DrawCopyableAddress ( "ActionTimelineManager*"u8 , actionManager ) ;
34- DebugTab . DrawCopyableAddress ( "ActionTimelineManager"u8 , actionManager != null ? * actionManager : null ) ;
35- DebugTab . DrawCopyableAddress ( "SchedulerResourceManagement*"u8 , scheduler . Address ) ;
36- DebugTab . DrawCopyableAddress ( "SchedulerResourceManagement"u8 , scheduler . Address != null ? * scheduler . Address : null ) ;
37- DebugTab . DrawCopyableAddress ( "Device"u8 , Device . Instance ( ) ) ;
30+ using ( ImUtf8 . Group ( ) )
31+ {
32+ Penumbra . Dynamis . DrawPointer ( characterUtility . Address ) ;
33+ Penumbra . Dynamis . DrawPointer ( residentResources . Address ) ;
34+ Penumbra . Dynamis . DrawPointer ( ScheduleManagement . Instance ( ) ) ;
35+ Penumbra . Dynamis . DrawPointer ( actionManager ) ;
36+ Penumbra . Dynamis . DrawPointer ( actionManager != null ? * actionManager : null ) ;
37+ Penumbra . Dynamis . DrawPointer ( scheduler . Address ) ;
38+ Penumbra . Dynamis . DrawPointer ( scheduler . Address != null ? * scheduler . Address : null ) ;
39+ Penumbra . Dynamis . DrawPointer ( Device . Instance ( ) ) ;
40+ }
41+
42+ ImGui . SameLine ( ) ;
43+ using ( ImUtf8 . Group ( ) )
44+ {
45+ ImUtf8 . Text ( "CharacterUtility"u8 ) ;
46+ ImUtf8 . Text ( "ResidentResourceManager"u8 ) ;
47+ ImUtf8 . Text ( "ScheduleManagement"u8 ) ;
48+ ImUtf8 . Text ( "ActionTimelineManager*"u8 ) ;
49+ ImUtf8 . Text ( "ActionTimelineManager"u8 ) ;
50+ ImUtf8 . Text ( "SchedulerResourceManagement*"u8 ) ;
51+ ImUtf8 . Text ( "SchedulerResourceManagement"u8 ) ;
52+ ImUtf8 . Text ( "Device"u8 ) ;
53+ }
54+
3855 DrawCharacterUtility ( ) ;
3956 DrawResidentResources ( ) ;
4057 DrawSchedulerResourcesMap ( ) ;
@@ -63,7 +80,7 @@ private void DrawCharacterUtility()
6380 var resource = characterUtility . Address ->Resource ( idx ) ;
6481 ImUtf8 . DrawTableColumn ( $ "[{ idx } ]") ;
6582 ImGui . TableNextColumn ( ) ;
66- ImUtf8 . CopyOnClickSelectable ( $ "0x { ( ulong ) resource : X } " ) ;
83+ Penumbra . Dynamis . DrawPointer ( resource ) ;
6784 if ( resource == null )
6885 {
6986 ImGui . TableNextRow ( ) ;
@@ -74,25 +91,12 @@ private void DrawCharacterUtility()
7491 ImGui . TableNextColumn ( ) ;
7592 var data = ( nint ) resource ->CsHandle . GetData ( ) ;
7693 var length = resource ->CsHandle . GetLength ( ) ;
77- if ( ImUtf8 . Selectable ( $ "0x{ data : X} ") )
78- if ( data != nint . Zero && length > 0 )
79- ImUtf8 . SetClipboardText ( string . Join ( "\n " ,
80- new ReadOnlySpan < byte > ( ( byte * ) data , ( int ) length ) . ToArray ( ) . Select ( b => b . ToString ( "X2" ) ) ) ) ;
81-
82- ImUtf8 . HoverTooltip ( "Click to copy bytes to clipboard."u8 ) ;
94+ Penumbra . Dynamis . DrawPointer ( data ) ;
8395 ImUtf8 . DrawTableColumn ( length . ToString ( ) ) ;
84-
8596 ImGui . TableNextColumn ( ) ;
8697 if ( intern . Value != - 1 )
8798 {
88- ImUtf8 . Selectable ( $ "0x{ characterUtility . DefaultResource ( intern ) . Address : X} ") ;
89- if ( ImGui . IsItemClicked ( ) )
90- ImUtf8 . SetClipboardText ( string . Join ( "\n " ,
91- new ReadOnlySpan < byte > ( ( byte * ) characterUtility . DefaultResource ( intern ) . Address ,
92- characterUtility . DefaultResource ( intern ) . Size ) . ToArray ( ) . Select ( b => b . ToString ( "X2" ) ) ) ) ;
93-
94- ImUtf8 . HoverTooltip ( "Click to copy bytes to clipboard."u8 ) ;
95-
99+ Penumbra . Dynamis . DrawPointer ( characterUtility . DefaultResource ( intern ) . Address ) ;
96100 ImUtf8 . DrawTableColumn ( $ "{ characterUtility . DefaultResource ( intern ) . Size } ") ;
97101 }
98102 else
@@ -122,7 +126,7 @@ private void DrawResidentResources()
122126 var resource = residentResources . Address ->ResourceList [ idx ] ;
123127 ImUtf8 . DrawTableColumn ( $ "[{ idx } ]") ;
124128 ImGui . TableNextColumn ( ) ;
125- ImUtf8 . CopyOnClickSelectable ( $ "0x { ( ulong ) resource : X } " ) ;
129+ Penumbra . Dynamis . DrawPointer ( resource ) ;
126130 if ( resource == null )
127131 {
128132 ImGui . TableNextRow ( ) ;
@@ -133,12 +137,7 @@ private void DrawResidentResources()
133137 ImGui . TableNextColumn ( ) ;
134138 var data = ( nint ) resource ->CsHandle . GetData ( ) ;
135139 var length = resource ->CsHandle . GetLength ( ) ;
136- if ( ImUtf8 . Selectable ( $ "0x{ data : X} ") )
137- if ( data != nint . Zero && length > 0 )
138- ImUtf8 . SetClipboardText ( string . Join ( "\n " ,
139- new ReadOnlySpan < byte > ( ( byte * ) data , ( int ) length ) . ToArray ( ) . Select ( b => b . ToString ( "X2" ) ) ) ) ;
140-
141- ImUtf8 . HoverTooltip ( "Click to copy bytes to clipboard."u8 ) ;
140+ Penumbra . Dynamis . DrawPointer ( data ) ;
142141 ImUtf8 . DrawTableColumn ( length . ToString ( ) ) ;
143142 }
144143 }
@@ -184,15 +183,15 @@ private void DrawSchedulerResourcesMap()
184183 ImUtf8 . DrawTableColumn ( $ "{ resource ->Consumers } ") ;
185184 ImUtf8 . DrawTableColumn ( $ "{ resource ->Unk1 } ") ; // key
186185 ImGui . TableNextColumn ( ) ;
187- ImUtf8 . CopyOnClickSelectable ( $ "0x { ( ulong ) resource : X } " ) ;
186+ Penumbra . Dynamis . DrawPointer ( resource ) ;
188187 ImGui . TableNextColumn ( ) ;
189188 var resourceHandle = * ( ( ResourceHandle * * ) resource + 3 ) ;
190- ImUtf8 . CopyOnClickSelectable ( $ "0x { ( ulong ) resourceHandle : X } " ) ;
189+ Penumbra . Dynamis . DrawPointer ( resourceHandle ) ;
191190 ImGui . TableNextColumn ( ) ;
192191 ImUtf8 . CopyOnClickSelectable ( resourceHandle ->FileName ( ) . Span ) ;
193192 ImGui . TableNextColumn ( ) ;
194193 uint dataLength = 0 ;
195- ImUtf8 . CopyOnClickSelectable ( $ "0x { ( ulong ) resource ->GetResourceData ( & dataLength ) : X } " ) ;
194+ Penumbra . Dynamis . DrawPointer ( resource ->GetResourceData ( & dataLength ) ) ;
196195 ImUtf8 . DrawTableColumn ( $ "{ dataLength } ") ;
197196 ++ _shownResourcesMap ;
198197 }
@@ -233,15 +232,15 @@ private void DrawSchedulerResourcesList()
233232 ImUtf8 . DrawTableColumn ( $ "{ resource ->Consumers } ") ;
234233 ImUtf8 . DrawTableColumn ( $ "{ resource ->Unk1 } ") ; // key
235234 ImGui . TableNextColumn ( ) ;
236- ImUtf8 . CopyOnClickSelectable ( $ "0x { ( ulong ) resource : X } " ) ;
235+ Penumbra . Dynamis . DrawPointer ( resource ) ;
237236 ImGui . TableNextColumn ( ) ;
238237 var resourceHandle = * ( ( ResourceHandle * * ) resource + 3 ) ;
239- ImUtf8 . CopyOnClickSelectable ( $ "0x { ( ulong ) resourceHandle : X } " ) ;
238+ Penumbra . Dynamis . DrawPointer ( resourceHandle ) ;
240239 ImGui . TableNextColumn ( ) ;
241240 ImUtf8 . CopyOnClickSelectable ( resourceHandle ->FileName ( ) . Span ) ;
242241 ImGui . TableNextColumn ( ) ;
243242 uint dataLength = 0 ;
244- ImUtf8 . CopyOnClickSelectable ( $ "0x { ( ulong ) resource ->GetResourceData ( & dataLength ) : X } " ) ;
243+ Penumbra . Dynamis . DrawPointer ( resource ->GetResourceData ( & dataLength ) ) ;
245244 ImUtf8 . DrawTableColumn ( $ "{ dataLength } ") ;
246245 ++ _shownResourcesList ;
247246 }
0 commit comments