Beispiel #1
0
        public void read(Reader reader)
        {
            Reader creader = reader.getCompressedStreamRaw();

            reader.Close();

            uint sig = creader.ReadUInt32();

            if (sig != signature)
            {
                //error
                creader.Close();
                throw new Exception("Invalid UserDB v5 signature");
            }

            int dataSize = creader.ReadInt32(); //total size of the buffer (may not all be used)

            ushort rowCount = creader.ReadUInt16();
            byte   colCount = creader.ReadByte();

            for (int i = 0; i < colCount; i++)
            {
                columns.Add(new TableColumn(creader));
            }

            for (int i = 0; i < rowCount; i++)
            {
                rows.Add(new TableRow(creader, this));
            }

            creader.Close();
        }
Beispiel #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();
        }