[AutoExpand] ;------------------------------------------------------------------------------ ; Unreal Engine classes - [AutoExpand] section ;------------------------------------------------------------------------------ ; Unreal Engine UObjectBase=, Class=Name>, Outer=Name> UObject=, Class=Name>, Outer=Name> FFontCharacter=X=,V= FGuid=,,, TSetElement<*>= FScriptInterface= () FScriptLocation=Pos=, Line= ;------------------------------------------------------------------------------ ; End Unreal Engine classes - [AutoExpand] section ;------------------------------------------------------------------------------ [Visualizer] ;------------------------------------------------------------------------------ ; Unreal Engine classes - [Visualizer] Section ;------------------------------------------------------------------------------ FName { preview ( #if(!GFNameDebuggerVisualizersIsUE3) ( #if(!GFNameTableForDebuggerVisualizers) ( #if(($e.Index) < 0x100000) ( #if(($e.Index) >= 0) ( #if(!!GFNameTableForDebuggerVisualizers_MT) ( #if(!!(((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000])) ( #if(!!(((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])) ( #if(($e.Number) > 0) ( #if(((((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])->Index) & 1) ( #([(((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])->UniName, su], "_", ($e.Number)-1) ) #else ( #([(((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])->AnsiName, s], "_", ($e.Number)-1) ) ) #else ( #if(((((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])->Index) & 1) ( #([(((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])->UniName, su]) ) #else ( #([(((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])->AnsiName, s]) ) ) ) #else ( "Invalid3_BogusEntry" ) ) #else ( "Invalid_BogusBucketPtr" ) ) #else ( "Invalid_BogusTablePtr" ) ) #else ( "Invalid_IndexNegative" ) ) #else ( "Invalid_IndexTooLarge" ) ) #else ( #if(($e.Index) < (GFNameTableForDebuggerVisualizers->ArrayNum)) ( #if(($e.Index) >= 0) ( #if(($e.Number) > 0) ( #if(((((FNameEntry**)GFNameTableForDebuggerVisualizers->AllocatorInstance.Data)[$e.Index])->Index) & 1) ( #([(((FNameEntry**)GFNameTableForDebuggerVisualizers->AllocatorInstance.Data)[$e.Index])->UniName, su], "_", ($e.Number)-1) ) #else ( #([(((FNameEntry**)GFNameTableForDebuggerVisualizers->AllocatorInstance.Data)[$e.Index])->AnsiName, s], "_", ($e.Number)-1) ) ) #else ( #if(((((FNameEntry**)GFNameTableForDebuggerVisualizers->AllocatorInstance.Data)[$e.Index])->Index) & 1) ( #([(((FNameEntry**)GFNameTableForDebuggerVisualizers->AllocatorInstance.Data)[$e.Index])->UniName, su]) ) #else ( #([(((FNameEntry**)GFNameTableForDebuggerVisualizers->AllocatorInstance.Data)[$e.Index])->AnsiName, s]) ) ) ) #else ( "UE3_InvalidNegativeIndex" ) ) #else ( "InvalidUE3_IndexTooLarge" ) ) ) #else ( #if(($e.Index) < ($e.Names.ArrayNum)) ( #if(($e.Index) >= 0) ( #if(($e.Number) > 0) ( #if(((((FNameEntry**)$e.Names.AllocatorInstance.Data)[$e.Index])->Index) & 1) ( #([(((FNameEntry**)$e.Names.AllocatorInstance.Data)[$e.Index])->UniName, su], "_", ($e.Number)-1) ) #else ( #([(((FNameEntry**)$e.Names.AllocatorInstance.Data)[$e.Index])->AnsiName, s], "_", ($e.Number)-1) ) ) #else ( #if(((((FNameEntry**)$e.Names.AllocatorInstance.Data)[$e.Index])->Index) & 1) ( #([(((FNameEntry**)$e.Names.AllocatorInstance.Data)[$e.Index])->UniName, su]) ) #else ( #([(((FNameEntry**)$e.Names.AllocatorInstance.Data)[$e.Index])->AnsiName, s]) ) ) ) #else ( "InvalidUE3_InvalidNegativeIndex_Site2" ) ) #else ( "InvalidUE3_IndexTooLarge_Site2" ) ) ) } TArray<*,TInlineAllocator<*,*> >|TArray<*,TFixedAllocator<*> > { preview ( #if(($e.ArrayNum) >= 0) ( #if(($e.ArrayNum) == 0) ( "Empty" ) #else ( #if(($e.ArrayNum) <= ($e.ArrayMax)) ( #("Num=", $e.ArrayNum) ) #else ( "Invalid" ) ) ) #else ( "Invalid" ) ) children ( #if(($e.ArrayNum) >= 0) ( #if(($e.ArrayNum) <= ($e.ArrayMax)) ( #if(($e.ArrayNum) > 0) ( #if(($e.ArrayNum) > $T2) ( #( #array ( expr: *(($T1 *)$e.AllocatorInstance.SecondaryData.Data + $i), size: $e.ArrayNum ), #([Members]: [$e,!]) ) ) #else ( #( #array ( expr: *(($T1 *)$e.AllocatorInstance.InlineData + $i), size: $e.ArrayNum ), #([Members]: [$e,!]) ) ) ) #else ( [Members]: [$e,!] ) ) ) ) } TArray<*,*> { preview ( #if(($e.ArrayNum) >= 0) ( #if(($e.ArrayNum) == 0) ( "Empty" ) #else ( #if(($e.ArrayNum) <= ($e.ArrayMax)) ( #("Num=", $e.ArrayNum) ) #else ( "Invalid" ) ) ) #else ( "Invalid" ) ) children ( #if(($e.ArrayNum) >= 0) ( #if(($e.ArrayNum) <= ($e.ArrayMax)) ( #if(($e.ArrayNum) > 0) ( #( #array ( expr: *(($T1 *)$e.AllocatorInstance.Data + $i), size: $e.ArrayNum ), #([Members]: [$e,!]) ) ) #else ( [Members]: [$e,!] ) ) ) ) } TIndirectArray<*,*> { preview ( #if(($e.ArrayNum) >= 0) ( #if(($e.ArrayNum) == 0) ( "Empty" ) #else ( #if(($e.ArrayNum) <= ($e.ArrayMax)) ( #("Num=", $e.ArrayNum) ) #else ( "Invalid" ) ) ) #else ( "Invalid" ) ) children ( #if(($e.ArrayNum) >= 0) ( #if(($e.ArrayNum) <= ($e.ArrayMax)) ( #if(($e.ArrayNum) > 0) ( #( #array ( expr: *(($T1 **)$e.AllocatorInstance.Data + $i), size: $e.ArrayNum ), #([Members]: [$e,!]) ) ) #else ( [Members]: [$e,!] ) ) ) ) } TBitArray<*> { preview ( #($e.NumBits, " / ", $e.MaxBits) ) children ( #if(($e.NumBits >= 0) && ($e.NumBits <= $e.MaxBits)) ( #if($e.SecondaryData.Data != 0) ( #array ( expr: (((unsigned long*)$e.SecondaryData.Data)[$i / 0x20] >> ($i % 0x20)), size: $e.NumBits ) : (bool)($e & 1) ) #else ( #array ( expr: (((unsigned long*)$e.InlineData)[$i / 0x20] >> ($i % 0x20)), size: $e.NumBits ) : (bool)($e & 1) ) ) #else ( "Invalid" ) ) } TSparseArray<*,*> { preview ( #if(($e.Data.ArrayNum) > 0) ( #if(($e.Data.ArrayNum) <= ($e.Data.ArrayMax)) ( #("Num=", ($e.Data.ArrayNum- $e.NumFreeIndices)) ) #else ( "Invalid" ) ) #else ( "Empty" ) ) children ( #if($e.Data.ArrayNum >= 0 && $e.Data.ArrayNum <= $e.Data.ArrayMax) ( #if(($e.Data.ArrayNum) > 0) ( #( #array ( expr: #if ($e.AllocationFlags.SecondaryData.Data != 0) ( #if(((*((uint32*)($e.AllocationFlags.SecondaryData.Data + ($i/32))))>>$i)&1) ( ((($T1 *)$e.Data.AllocatorInstance.Data)[$i]) ) #else ( #("Invalid") ) ) #else ( #if(((*((uint32*)($e.AllocationFlags.InlineData + ($i/32))))>>$i)&1) ( ((($T1 *)$e.Data.AllocatorInstance.Data)[$i]) ) #else ( #("Invalid") ) ), size: $e.Data.ArrayNum ), #([Members]: [$e,!]) ) ) #else ( #([Members]: [$e,!]) ) ) ) } TSetElement<*> { preview ( #($e.Value) ) } TPair<*,*> { preview ( #("(", $e.Key, ", ", $e.Value, ")") ) } TMapBase<*,*,*,*,*>|TMap<*,*,*,*>|TMultiMap<*,*,*> { preview ( #if($c.Pairs.Elements.Data.ArrayNum - $c.Pairs.Elements.NumFreeIndices > 0) ( #if(($c.Pairs.Elements.Data.ArrayNum - $c.Pairs.Elements.NumFreeIndices) <= ($c.Pairs.Elements.Data.ArrayMax)) ( #("Num=", ($c.Pairs.Elements.Data.ArrayNum - $c.Pairs.Elements.NumFreeIndices)) ) #else ( "Invalid" ) ) #else ( "Empty" ) ) children ( #( #array ( expr: #if ($c.Pairs.Elements.AllocationFlags.SecondaryData.Data != 0) ( #if(((*((uint32*)($c.Pairs.Elements.AllocationFlags.SecondaryData.Data + ($i/32))))>>$i)&1) ( &((TSetElement > *)$c.Pairs.Elements.Data.AllocatorInstance.Data)[$i] ) #else ( "Invalid" ) ) #else ( #if(((*((uint32*)($c.Pairs.Elements.AllocationFlags.InlineData + ($i/32))))>>$i)&1) ( &((TSetElement > *)$c.Pairs.Elements.Data.AllocatorInstance.Data)[$i] ) #else ( "Invalid" ) ), size: (($c.Pairs.Elements.Data.ArrayNum - $c.Pairs.Elements.NumFreeIndices > 0) && ($c.Pairs.Elements.Data.ArrayNum <= $c.Pairs.Elements.Data.ArrayMax)) * $c.Pairs.Elements.Data.ArrayNum ) : $e.Value, [Members]: [$c,!] ) ) } TDoubleLinkedList<*>|FEditPropertyChain { children ( #( #list ( head: $e.HeadNode, next: NextNode, size: $c.ListSize ) : $e.Value, #([Members]: [$e,!]) ) ) } FString|FStringOutputDevice { preview ( #if((($e.Data.ArrayNum) <= ($e.Data.ArrayMax)) && (($e.Data.ArrayNum) >= 0)) ( #("(", ($e.Data.ArrayNum - 1), ") ", [$e.Data.AllocatorInstance.Data,su]) ) #else ( "Invalid" ) ) stringview ( #if((($e.Data.ArrayNum) <= ($e.Data.ArrayMax)) && (($e.Data.ArrayNum) >= 0)) ( [$e.Data.AllocatorInstance.Data,sub] ) #else ( "Invalid" ) ) } FWeakObjectPtr|TWeakObjectPtr<*>|TAutoWeakObjectPtr<*>{ preview ( #if ($e.ObjectSerialNumber < 1) ( "NULL" ) #else ( #if (*((*(*GSerialNumberBlocksForDebugVisualizers + ($e.ObjectIndex / 0x4000))) + ($e.ObjectIndex % 0x4000)) != $e.ObjectSerialNumber) ( "STALE" ) #else ( *((UObjectBase**)GObjectArrayForDebugVisualizers->AllocatorInstance.Data + $e.ObjectIndex) ) ) ) children ( #if ($e.ObjectSerialNumber > 0 && *((*(*GSerialNumberBlocksForDebugVisualizers + ($e.ObjectIndex / 0x4000))) + ($e.ObjectIndex % 0x4000)) == $e.ObjectSerialNumber) ( #( #([Target]: [*((UObjectBase**)GObjectArrayForDebugVisualizers->AllocatorInstance.Data + $e.ObjectIndex),!]), #([Members]: [$e,!]) ) ) #else ( #([Members]: [$e,!]) ) ) } ;------------------------------------------------------------------------------ ; Unreal Engine classes - End of [Visualizer] Section ;------------------------------------------------------------------------------