예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
            }
        }