diff --git a/AssetStudio/TypeTreeHelper.cs b/AssetStudio/TypeTreeHelper.cs index 2f21bb3..c1a342a 100644 --- a/AssetStudio/TypeTreeHelper.cs +++ b/AssetStudio/TypeTreeHelper.cs @@ -102,7 +102,7 @@ namespace AssetStudio case "bool": value = reader.ReadBoolean(); break; - case "string": + case "string" when m_Nodes[i + 1].m_Type == "Array": append = false; var str = reader.ReadAlignedString(); sb.AppendFormat("{0}{1} {2} = \"{3}\"\r\n", (new string('\t', level)), varTypeStr, varNameStr, str); @@ -167,6 +167,8 @@ namespace AssetStudio } else //Class { + if (m_Node.m_Type == "string") + m_Node.m_Type = "CustomType"; append = false; sb.AppendFormat("{0}{1} {2}\r\n", (new string('\t', level)), varTypeStr, varNameStr); var @class = GetNodes(m_Nodes, i); @@ -272,7 +274,7 @@ namespace AssetStudio case "bool": value = reader.ReadBoolean(); break; - case "string": + case "string" when m_Nodes[i + 1].m_Type == "Array": value = reader.ReadAlignedString(); var toSkip = GetNodes(m_Nodes, i); i += toSkip.Count - 1; @@ -312,6 +314,8 @@ namespace AssetStudio } default: { + if (m_Node.m_Type == "string") + m_Node.m_Type = "CustomType"; if (i < m_Nodes.Count - 1 && m_Nodes[i + 1].m_Type == "Array") //Array { if ((m_Nodes[i + 1].m_MetaFlag & 0x4000) != 0) diff --git a/AssetStudioGUI/Components/TypeTreeItem.cs b/AssetStudioGUI/Components/TypeTreeItem.cs index e0789ff..f48e244 100644 --- a/AssetStudioGUI/Components/TypeTreeItem.cs +++ b/AssetStudioGUI/Components/TypeTreeItem.cs @@ -19,9 +19,14 @@ namespace AssetStudioGUI public override string ToString() { var sb = new StringBuilder(); - foreach (var i in m_Type.m_Nodes) + for (var i = 0; i < m_Type.m_Nodes.Count; i++) { - sb.AppendFormat("{0}{1} {2} {3} {4}\r\n", new string('\t', i.m_Level), i.m_Type, i.m_Name, i.m_ByteSize, (i.m_MetaFlag & 0x4000) != 0); + var node = m_Type.m_Nodes[i]; + if (node.m_Type == "string" && m_Type.m_Nodes[i + 1].m_Type != "Array") + node.m_Type = "CustomType"; + + sb.AppendFormat("{0}{1} {2} {3} {4}\r\n", + new string('\t', node.m_Level), node.m_Type, node.m_Name, node.m_ByteSize, (node.m_MetaFlag & 0x4000) != 0); } return sb.ToString(); }