Exemplo n.º 1
0
        public void Read(Stream stream)
        {
            using var reader = new ErpBinaryReader(EndianBitConverter.Little, stream);
            var magic = reader.ReadUInt32();

            if (magic != 1263555141)
            {
                throw new Exception("This is not an ERP file!");
            }

            Version = reader.ReadInt32();
            reader.ReadBytes(8); // padding
            reader.ReadBytes(8); // info offset
            reader.ReadBytes(8); // info size

            ResourceOffset = reader.ReadUInt64();
            reader.ReadBytes(8); // padding

            var numFiles    = reader.ReadInt32();
            var numTempFile = reader.ReadInt32();

            for (var i = 0; i < numFiles; ++i)
            {
                var entry = new ErpResource(this);
                entry.Read(reader);
                Resources.Add(entry);
            }
        }