예제 #1
0
        public void Load(BinaryRobloxFileReader reader)
        {
            BinaryRobloxFile file = reader.File;

            int format    = reader.ReadInt32();
            int numHashes = reader.ReadInt32();

            if (format != FORMAT)
            {
                throw new Exception($"Unexpected SSTR format: {format} (expected {FORMAT}!)");
            }

            for (uint id = 0; id < numHashes; id++)
            {
                byte[] hash = reader.ReadBytes(16);
                string key  = Convert.ToBase64String(hash);

                byte[]       data  = reader.ReadBuffer();
                SharedString value = SharedString.FromBuffer(data);

                Lookup[key] = id;
                Strings[id] = value;
            }

            file.SSTR = this;
        }