Exemplo n.º 1
0
                public Vertex(Reader reader, bool useNormals)
                {
                    x = reader.ReadSingle();
                    y = reader.ReadSingle();
                    z = reader.ReadSingle();

                    normal = new Normal();
                    if (useNormals)
                    {
                        normal = new Normal(reader);
                    }
                }
Exemplo n.º 2
0
        public Replay(Reader reader)
        {
            Reader creader = reader.getCompressedStreamRaw();

            reader.Close();

            // Signature
            if (creader.ReadUInt32() != signature)
            {
                creader.Close();
                throw new Exception("Invalid Replay v5 signature");
            }

            gameVer  = creader.ReadInt32();
            isPacked = creader.readBool32();
            bool isNotEmpty = creader.readBool32();
            int  frameCount = creader.ReadInt32();

            startingFrame = creader.ReadInt32();
            zoneID        = creader.ReadInt32();
            act           = creader.ReadInt32();
            characterID   = creader.ReadInt32();
            isPlusLayout  = creader.readBool32();
            oscillation   = creader.ReadInt32();
            int   bufferSize = creader.ReadInt32();
            float avgSize    = creader.ReadSingle();

            unknown = creader.ReadInt32();

            frames.Clear();
            for (int f = 0; f < frameCount; ++f)
            {
                ReplayEntry frame = new ReplayEntry();
                frame.unpack(creader, isPacked);
                frames.Add(frame);
            }

            creader.Close();
        }
Exemplo n.º 3
0
 public TexturePosition(Reader reader)
 {
     u = reader.ReadSingle();
     v = reader.ReadSingle();
 }
Exemplo n.º 4
0
 public Normal(Reader reader)
 {
     x = reader.ReadSingle();
     y = reader.ReadSingle();
     z = reader.ReadSingle();
 }
Exemplo n.º 5
0
        public void read(Reader reader)
        {
            if (!reader.readBytes(4).SequenceEqual(signature))
            {
                reader.Close();
                throw new Exception("Invalid Model v5 signature");
            }

            flags           = reader.ReadByte();
            faceVertexCount = reader.ReadByte();
            if (faceVertexCount != 3 && faceVertexCount != 4)
            {
                throw new Exception("Detected Vertex Type wasn't Tris or Quads! RSDKv5 doesn't support other N-gons!");
            }

            ushort vertexCount = reader.ReadUInt16();
            ushort frameCount  = reader.ReadUInt16();

            textureUVs.Clear();
            if (hasTextures)
            {
                for (int t = 0; t < vertexCount; ++t)
                {
                    TextureUV uv = new TextureUV();
                    uv.u = reader.ReadSingle();
                    uv.v = reader.ReadSingle();
                    textureUVs.Add(uv);
                }
            }

            colours.Clear();
            if (hasColours)
            {
                for (int c = 0; c < vertexCount; ++c)
                {
                    Color colour = new Color();
                    colour.B = reader.ReadByte();
                    colour.G = reader.ReadByte();
                    colour.R = reader.ReadByte();
                    colour.A = reader.ReadByte();
                    colours.Add(colour);
                }
            }

            ushort indexCount = reader.ReadUInt16();

            indices.Clear();
            for (int i = 0; i < indexCount; ++i)
            {
                indices.Add(reader.ReadUInt16());
            }

            frames.Clear();
            for (int f = 0; f < frameCount; ++f)
            {
                Frame frame = new Frame();
                for (int v = 0; v < vertexCount; ++v)
                {
                    Vertex vert = new Vertex();
                    vert.x = reader.ReadSingle();
                    vert.y = reader.ReadSingle();
                    vert.z = reader.ReadSingle();

                    if (hasNormals)
                    {
                        vert.nx = reader.ReadSingle();
                        vert.ny = reader.ReadSingle();
                        vert.nz = reader.ReadSingle();
                    }
                    frame.vertices.Add(vert);
                }
                frames.Add(frame);
            }
        }
Exemplo n.º 6
0
 public TexturePosition(Reader reader)
 {
     X = reader.ReadSingle();
     Y = reader.ReadSingle();
 }