public AssetGRSM(Section_AHDR AHDR, Game game, Endianness endianness) : base(AHDR, game, endianness) { using (var reader = new EndianBinaryReader(AHDR.data, endianness)) { reader.BaseStream.Position = baseHeaderEndPosition; var numVertices = reader.ReadUInt32(); var numTriangles = reader.ReadUInt32(); MinX = reader.ReadSingle(); MinY = reader.ReadSingle(); MinZ = reader.ReadSingle(); MaxX = reader.ReadSingle(); MaxY = reader.ReadSingle(); MaxZ = reader.ReadSingle(); Vertices = new GrassMeshVertex[numVertices]; for (int i = 0; i < Vertices.Length; i++) { Vertices[i] = new GrassMeshVertex(reader); } Triangles = new DashTrackPortal[numTriangles]; for (int i = 0; i < Triangles.Length; i++) { Triangles[i] = new DashTrackPortal(reader); } CreateTransformMatrix(); ArchiveEditorFunctions.AddToRenderableAssets(this); } }
public AssetDTRK(Section_AHDR AHDR, Game game, Endianness endianness) : base(AHDR, game, endianness) { using (var reader = new EndianBinaryReader(AHDR.data, endianness)) { reader.BaseStream.Position = baseHeaderEndPosition; var numVertices = reader.ReadUInt32(); var numTriangles = reader.ReadUInt32(); LandableStart = reader.ReadUInt32(); LeavableStart = reader.ReadUInt32(); Unknown1 = reader.ReadUInt32(); Unknown2 = reader.ReadUInt32(); Unknown3 = reader.ReadUInt32(); Vertices = new WireVector[numVertices]; for (int i = 0; i < Vertices.Length; i++) { Vertices[i] = new WireVector(reader); } Triangles = new DashTrackTriangle[numTriangles]; for (int i = 0; i < Triangles.Length; i++) { Triangles[i] = new DashTrackTriangle(reader); } Portals = new DashTrackPortal[numTriangles]; for (int i = 0; i < Portals.Length; i++) { Portals[i] = new DashTrackPortal(reader); } LastTriangle = reader.ReadUInt32(); LastPositionX = reader.ReadSingle(); LastPositionY = reader.ReadSingle(); CreateTransformMatrix(); ArchiveEditorFunctions.AddToRenderableAssets(this); } }