Ejemplo n.º 1
0
        public void ParseStringTable(ref SpanReader sr)
        {
            uint entryCount = (uint)sr.DecodeBitsAndAdvance();

            StringTable = new string[entryCount];
            for (var i = 0; i < entryCount; i++)
            {
                int strLen = (int)sr.DecodeBitsAndAdvance();

                // Bugged, doesnt actually read the string length
                //StringTable[i] = sr.ReadStringRaw(strLen);
                StringTable[i] = sr.Encoding.GetString(sr.ReadBytes(strLen));
            }
        }
Ejemplo n.º 2
0
 public static string ReadADCString(AdhocFile parent, ref SpanReader sr)
 {
     if (parent.Version <= 8)
     {
         return(sr.ReadString2());
     }
     else
     {
         uint strTableIndex = (uint)sr.DecodeBitsAndAdvance();
         return(parent.StringTable[strTableIndex]);
     }
 }
Ejemplo n.º 3
0
        public void PrintStringTable(string outPath)
        {
            var sr = new SpanReader(_buffer);

            sr.Position = 8;

            using var sw = new StreamWriter(outPath);
            uint entryCount = (uint)sr.DecodeBitsAndAdvance();
            var  results    = new string[entryCount];

            for (var i = 0; i < entryCount; i++)
            {
                sw.WriteLine($"0x{sr.Position:X2} | {sr.ReadString1()}");
            }
            sw.Flush();
        }