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()); } }
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())); }
public static Demo GetDemoFromFileRaw(FileInfo file) { Q3HuffmanMapper.init(); var raw = Q3DemoParser.getRawConfigStrings(file.FullName); return(Demo.GetDemoFromRawInfo(raw)); }
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); }
public byte readByte() { return((byte)Q3HuffmanMapper.decodeSymbol(this.stream)); }
public long readNumber(int bits) { return(bits == 8 ? Q3HuffmanMapper.decodeSymbol(this.stream) : this.readNumBits(bits)); }