From 728d2c0de5936a329b4996fafabaaf7dda1da094 Mon Sep 17 00:00:00 2001 From: VaDiM Date: Fri, 19 Jun 2026 21:14:58 +0300 Subject: [PATCH] Fix m_IndexBuffer decompression when m_IndexFormat != 0. Close #147 This might be a game-specific behavior.. but it should be safe to add, in theory --- AssetStudio/Classes/Mesh.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/AssetStudio/Classes/Mesh.cs b/AssetStudio/Classes/Mesh.cs index 48009c5..cc64aee 100644 --- a/AssetStudio/Classes/Mesh.cs +++ b/AssetStudio/Classes/Mesh.cs @@ -1238,7 +1238,9 @@ namespace AssetStudio //IndexBuffer if (m_CompressedMesh.m_Triangles.m_NumItems > 0) { - m_IndexBuffer = Array.ConvertAll(m_CompressedMesh.m_Triangles.UnpackInts(), x => (uint)x); + m_IndexBuffer = m_Use16BitIndices + ? Array.ConvertAll(m_CompressedMesh.m_Triangles.UnpackInts(), x => (uint)x) + : MemoryMarshal.Cast(m_CompressedMesh.m_Triangles.m_Data).ToArray(); //sus } //Color if (m_CompressedMesh.m_Colors?.m_NumItems > 0)