mirror of
https://github.com/xivdev/Penumbra.git
synced 2026-02-18 22:07:45 +01:00
Add some Additional Information to Mdl display, discard some padding when reading mdl files.
This commit is contained in:
parent
36c77034a4
commit
8df4bb0781
4 changed files with 315 additions and 241 deletions
|
|
@ -215,10 +215,10 @@ public partial class ModEditWindow
|
|||
|
||||
if( file.AdditionalData.Length > 0 )
|
||||
{
|
||||
using var t = ImRaii.TreeNode( "Additional Data" );
|
||||
using var t = ImRaii.TreeNode( $"Additional Data (Size: {file.AdditionalData.Length})###AdditionalData" );
|
||||
if( t )
|
||||
{
|
||||
ImRaii.TreeNode( string.Join( ' ', file.AdditionalData.Select( c => $"{c:X2}" ) ), ImGuiTreeNodeFlags.Leaf ).Dispose();
|
||||
ImGuiUtil.TextWrapped( string.Join( ' ', file.AdditionalData.Select( c => $"{c:X2}" ) ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ImGuiNET;
|
||||
using OtterGui;
|
||||
using OtterGui.Raii;
|
||||
using Penumbra.GameData.Files;
|
||||
using Penumbra.String.Classes;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
|
||||
namespace Penumbra.UI.Classes;
|
||||
|
||||
|
|
@ -26,6 +29,106 @@ public partial class ModEditWindow
|
|||
}
|
||||
}
|
||||
|
||||
ret |= DrawOtherModelDetails( file, disabled );
|
||||
|
||||
return !disabled && ret;
|
||||
}
|
||||
|
||||
private static bool DrawOtherModelDetails( MdlFile file, bool _ )
|
||||
{
|
||||
if( !ImGui.CollapsingHeader( "Further Content" ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
using( var table = ImRaii.Table( "##data", 2, ImGuiTableFlags.SizingFixedFit ) )
|
||||
{
|
||||
if( table )
|
||||
{
|
||||
ImGuiUtil.DrawTableColumn( "Version" );
|
||||
ImGuiUtil.DrawTableColumn( file.Version.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Radius" );
|
||||
ImGuiUtil.DrawTableColumn( file.Radius.ToString( CultureInfo.InvariantCulture ) );
|
||||
ImGuiUtil.DrawTableColumn( "Model Clip Out Distance" );
|
||||
ImGuiUtil.DrawTableColumn( file.ModelClipOutDistance.ToString( CultureInfo.InvariantCulture ) );
|
||||
ImGuiUtil.DrawTableColumn( "Shadow Clip Out Distance" );
|
||||
ImGuiUtil.DrawTableColumn( file.ShadowClipOutDistance.ToString( CultureInfo.InvariantCulture ) );
|
||||
ImGuiUtil.DrawTableColumn( "LOD Count" );
|
||||
ImGuiUtil.DrawTableColumn( file.LodCount.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Enable Index Buffer Streaming" );
|
||||
ImGuiUtil.DrawTableColumn( file.EnableIndexBufferStreaming.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Enable Edge Geometry" );
|
||||
ImGuiUtil.DrawTableColumn( file.EnableEdgeGeometry.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Flags 1" );
|
||||
ImGuiUtil.DrawTableColumn( file.Flags1.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Flags 2" );
|
||||
ImGuiUtil.DrawTableColumn( file.Flags2.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Vertex Declarations" );
|
||||
ImGuiUtil.DrawTableColumn( file.VertexDeclarations.Length.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Bone Bounding Boxes" );
|
||||
ImGuiUtil.DrawTableColumn( file.BoneBoundingBoxes.Length.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Bone Tables" );
|
||||
ImGuiUtil.DrawTableColumn( file.BoneTables.Length.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Element IDs" );
|
||||
ImGuiUtil.DrawTableColumn( file.ElementIds.Length.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Extra LoDs" );
|
||||
ImGuiUtil.DrawTableColumn( file.ExtraLods.Length.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Meshes" );
|
||||
ImGuiUtil.DrawTableColumn( file.Meshes.Length.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Shape Meshes" );
|
||||
ImGuiUtil.DrawTableColumn( file.ShapeMeshes.Length.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "LoDs" );
|
||||
ImGuiUtil.DrawTableColumn( file.Lods.Length.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Vertex Declarations" );
|
||||
ImGuiUtil.DrawTableColumn( file.VertexDeclarations.Length.ToString() );
|
||||
ImGuiUtil.DrawTableColumn( "Stack Size" );
|
||||
ImGuiUtil.DrawTableColumn( file.StackSize.ToString() );
|
||||
}
|
||||
}
|
||||
|
||||
using( var attributes = ImRaii.TreeNode( "Attributes", ImGuiTreeNodeFlags.DefaultOpen ) )
|
||||
{
|
||||
if( attributes )
|
||||
{
|
||||
foreach( var attribute in file.Attributes )
|
||||
{
|
||||
ImRaii.TreeNode( attribute, ImGuiTreeNodeFlags.Leaf ).Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
using( var bones = ImRaii.TreeNode( "Bones", ImGuiTreeNodeFlags.DefaultOpen ) )
|
||||
{
|
||||
if( bones )
|
||||
{
|
||||
foreach( var bone in file.Bones )
|
||||
{
|
||||
ImRaii.TreeNode( bone, ImGuiTreeNodeFlags.Leaf ).Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
using( var shapes = ImRaii.TreeNode( "Shapes", ImGuiTreeNodeFlags.DefaultOpen ) )
|
||||
{
|
||||
if( shapes )
|
||||
{
|
||||
foreach( var shape in file.Shapes )
|
||||
{
|
||||
ImRaii.TreeNode( shape.ShapeName, ImGuiTreeNodeFlags.Leaf ).Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( file.RemainingData.Length > 0 )
|
||||
{
|
||||
using var t = ImRaii.TreeNode( $"Additional Data (Size: {file.RemainingData.Length})###AdditionalData" );
|
||||
if( t )
|
||||
{
|
||||
ImGuiUtil.TextWrapped( string.Join( ' ', file.RemainingData.Select( c => $"{c:X2}" ) ) );
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue