- [Core] Fix bug with assets parsing.

This commit is contained in:
Razmoth
2023-11-24 21:17:13 +04:00
parent 2568e4be08
commit 4c0f1ec44b
45 changed files with 725 additions and 672 deletions

View File

@@ -79,14 +79,14 @@ namespace AssetStudio
{
public PPtr<Texture2D> texture;
public PPtr<Texture2D> alphaTexture;
public SecondarySpriteTexture[] secondaryTextures;
public SubMesh[] m_SubMeshes;
public List<SecondarySpriteTexture> secondaryTextures;
public List<SubMesh> m_SubMeshes;
public byte[] m_IndexBuffer;
public VertexData m_VertexData;
public SpriteVertex[] vertices;
public List<SpriteVertex> vertices;
public ushort[] indices;
public Matrix4x4[] m_Bindpose;
public BoneWeights4[] m_SourceSkin;
public List<BoneWeights4> m_SourceSkin;
public Rectf textureRect;
public Vector2 textureRectOffset;
public Vector2 atlasRectOffset;
@@ -107,20 +107,20 @@ namespace AssetStudio
if (version[0] >= 2019) //2019 and up
{
var secondaryTexturesSize = reader.ReadInt32();
secondaryTextures = new SecondarySpriteTexture[secondaryTexturesSize];
secondaryTextures = new List<SecondarySpriteTexture>();
for (int i = 0; i < secondaryTexturesSize; i++)
{
secondaryTextures[i] = new SecondarySpriteTexture(reader);
secondaryTextures.Add(new SecondarySpriteTexture(reader));
}
}
if (version[0] > 5 || (version[0] == 5 && version[1] >= 6)) //5.6 and up
{
var m_SubMeshesSize = reader.ReadInt32();
m_SubMeshes = new SubMesh[m_SubMeshesSize];
m_SubMeshes = new List<SubMesh>();
for (int i = 0; i < m_SubMeshesSize; i++)
{
m_SubMeshes[i] = new SubMesh(reader);
m_SubMeshes.Add(new SubMesh(reader));
}
m_IndexBuffer = reader.ReadUInt8Array();
@@ -131,10 +131,10 @@ namespace AssetStudio
else
{
var verticesSize = reader.ReadInt32();
vertices = new SpriteVertex[verticesSize];
vertices = new List<SpriteVertex>();
for (int i = 0; i < verticesSize; i++)
{
vertices[i] = new SpriteVertex(reader);
vertices.Add(new SpriteVertex(reader));
}
indices = reader.ReadUInt16Array();
@@ -204,7 +204,7 @@ namespace AssetStudio
public string[] m_AtlasTags;
public PPtr<SpriteAtlas> m_SpriteAtlas;
public SpriteRenderData m_RD;
public Vector2[][] m_PhysicsShape;
public List<Vector2[]> m_PhysicsShape;
public Sprite(ObjectReader reader) : base(reader)
{
@@ -247,10 +247,10 @@ namespace AssetStudio
if (version[0] >= 2017) //2017 and up
{
var m_PhysicsShapeSize = reader.ReadInt32();
m_PhysicsShape = new Vector2[m_PhysicsShapeSize][];
m_PhysicsShape = new List<Vector2[]>();
for (int i = 0; i < m_PhysicsShapeSize; i++)
{
m_PhysicsShape[i] = reader.ReadVector2Array();
m_PhysicsShape.Add(reader.ReadVector2Array());
}
}