Esempio n. 1
0
        private void button3_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length > 0)
            {
                openDemoFile = new FileInfo(textBox1.Text);
            }

            if (!openDemoFile.Exists)
            {
                MessageBox.Show("File does not exist\n\n" + textBox1.Text, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            var prop = Properties.Settings.Default;

            prop.fileName = textBox1.Text;
            prop.Save();

            Q3HuffmanMapper.init();

            var cfg = Q3DemoParser.getFriendlyConfig(openDemoFile.FullName);

            if (cfg == null)
            {
                MessageBox.Show("ERROR");
            }
            else
            {
                MessageBox.Show(cfg.ToString());
            }
        }
Esempio n. 2
0
        public string readStringBase(int limit, bool stopAtNewLine)
        {
            List <char> arr = new List <char>();

            for (int i = 0; i < limit; i++)
            {
                long byte1 = Q3HuffmanMapper.decodeSymbol(this.stream);

                if (byte1 <= 0)
                {
                    break;
                }

                if (stopAtNewLine && byte1 == 0x0A)
                {
                    break;
                }

                // translate all fmt spec to avoid crash bugs
                // don't allow higher ascii values
                if (byte1 > 127 || byte1 == Constants.Q3_PERCENT_CHAR_BYTE)
                {
                    byte1 = Constants.Q3_DOT_CHAR_BYTE;
                }

                arr.Add((char)byte1);
            }

            return(new string(arr.ToArray()));
        }
Esempio n. 3
0
        public static Demo GetDemoFromFileRaw(FileInfo file)
        {
            Q3HuffmanMapper.init();
            var raw = Q3DemoParser.getRawConfigStrings(file.FullName);

            return(Demo.GetDemoFromRawInfo(raw));
        }
Esempio n. 4
0
        public long readNumBits(int bits)
        {
            long value = 0;
            bool neg   = bits < 0;

            if (neg)
            {
                bits = bits * -1;
            }

            int fragmentBits = bits & 7;

            if (fragmentBits != 0)
            {
                value = this.stream.readBits(fragmentBits);
                bits -= fragmentBits;
            }

            if (bits > 0)
            {
                long decoded = 0;
                for (int i = 0; i < bits; i += 8)
                {
                    long sym = Q3HuffmanMapper.decodeSymbol(this.stream);
                    if (sym == Constants.Q3_HUFFMAN_NYT_SYM)
                    {
                        return(-1);
                    }

                    decoded |= (sym << i);
                }

                if (fragmentBits > 0)
                {
                    decoded <<= fragmentBits;
                }

                value |= decoded;
            }

            if (neg)
            {
                if ((value & (1 << (bits - 1))) != 0)
                {
                    value |= -1 ^ ((1 << bits) - 1);
                }
            }

            return(value);
        }
Esempio n. 5
0
 public byte readByte()
 {
     return((byte)Q3HuffmanMapper.decodeSymbol(this.stream));
 }
Esempio n. 6
0
 public long readNumber(int bits)
 {
     return(bits == 8 ? Q3HuffmanMapper.decodeSymbol(this.stream) : this.readNumBits(bits));
 }