示例#1
0
        private void ReadFileTable(KOARBinaryReader br)
        {
            _fileTable = new List <BigFileEntryBase>();

            Int32 count = br.ReadInt();

            for (int i = 0; i < count; i++)
            {
                var entry = new BigFileEntryInternal(this, br.ReadUInt(), br.ReadUInt(), br.ReadUInt(), br.ReadUInt(), br.ReadUInt());
                _fileTable.Add(entry);
            }
        }
示例#2
0
        private void ReadAdditionalInfo()
        {
            // load names
            var lookup_names = this.Find(0xffffffff); // .\lookup_names_as_strings.bin

            if (lookup_names != null)
            {
                List <String> names = new List <string>();

                //var br = lookup_names.GetBinaryReader();
                var br = new KOARBinaryReader(lookup_names.GetStream());

                int count = br.ReadInt();
                br.ReadInt(); // skip count duplicate
                br.Read(3);   // skip ffff00

                for (int i = 0; i < count; i++)
                {
                    _fileTable[i].Filename = br.ReadString();
                }

                br.Close();
            }
        }
示例#3
0
        public void Load(String name)
        {
            KOARBinaryReader br = new KOARBinaryReader(Path.Combine("symbols", name));

            _fileIDs      = new List <uint>();
            _symbol_names = new List <string>();

            var count = br.ReadInt();

            for (int i = 0; i < count; i++)
            {
                _fileIDs.Add(br.ReadUInt());
                _symbol_names.Add(br.ReadString());
            }

            br.Close();
        }
示例#4
0
        public static String RestoreHashedString(UInt32 hash)
        {
            if (_hash_table == null)
            {
                _hash_table = new Dictionary <uint, string>();
                KOARBinaryReader br = new KOARBinaryReader("data\\hash_table");
                var count           = br.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    var h = br.ReadUInt();
                    var s = br.ReadString();
                    _hash_table[h] = s;
                }
                br.Close();
            }

            if (_hash_table.ContainsKey(hash))
            {
                return(_hash_table[hash]);
            }

            return(null);
        }