public override void Read(PkgBinaryReader reader)
        {
            reader.ReadBytes(4);
            name = reader.ReadString(4);

            Elements[0].Read(reader);
            Elements[1].Read(reader);
        }
Example #2
0
        public static PkgFile ReadPkg(Stream stream)
        {
            var file = new PkgFile();

            using (var reader = new PkgBinaryReader(stream))
            {
                file.RootItem.Read(reader);
            }
            return(file);
        }
Example #3
0
        public override void Read(PkgBinaryReader reader)
        {
            UInt32 numElements = reader.ReadUInt32();

            for (int i = 0; i < numElements; ++i)
            {
                T val = elementFactory(ParentFile);
                Elements.Add(val);
                val.Read(reader);
            }
        }
        public override void Read(PkgBinaryReader reader)
        {
            var magic = reader.ReadUInt32();

            if (magic != Magic)
            {
                throw new FileFormatException("This is not a pkg file.");
            }
            name = reader.ReadString(4);

            Elements[0].Read(reader);
            Elements[1].Read(reader);
        }
Example #5
0
        public override void Read(PkgBinaryReader reader)
        {
            valueOffsetType = reader.ReadOffsetType();


            if (valueOffsetType.Type == 128)
            {
                long pos = reader.BaseStream.Position;
                reader.Seek(valueOffsetType.Offset, SeekOrigin.Begin);

                string chunkType = reader.ReadString(4);
                switch (chunkType)
                {
                case "!idi":
                    complexValueData = new PkgObject(ParentFile);
                    complexValueData.Read(reader);
                    break;

                case "!ili":
                    complexValueData = new PkgArray(ParentFile);
                    complexValueData.Read(reader);
                    break;

                case "!iar":
                    complexValueData = new PkgDataArrayReference(ParentFile);
                    complexValueData.Read(reader);
                    break;

                case "!vca":
                    complexValueData = new PkgDataArray(ParentFile);
                    complexValueData.Read(reader);
                    break;

                case "!sbi":
                    complexValueData = PkgData.Create(ParentFile, "stri");
                    complexValueData.Read(reader);
                    break;

                case "!vbi":
                    complexValueData = PkgData.Create(reader, ParentFile);
                    complexValueData.Read(reader);
                    break;

                default:
                    throw new Exception("Chunk type not supported! " + chunkType);
                }

                reader.Seek((int)pos, SeekOrigin.Begin);
            }
        }
Example #6
0
        public override void Read(PkgBinaryReader reader)
        {
            var elemVerData = reader.ReadOffsetType();
            var numElements = elemVerData.Offset;

            Version = elemVerData.Type;

            for (var i = 0; i < numElements; ++i)
            {
                PkgPairBase val;
                if (Version == 0)
                {
                    val = new PkgPair(ParentFile);
                }
                else
                {
                    val = new PkgPairV1(ParentFile);
                }

                Elements.Add(val);
                val.Read(reader);
            }
        }
Example #7
0
 public override void Read(PkgBinaryReader reader)
 {
     NameOffsetType = reader.ReadOffsetType();
     base.Read(reader);
     Unknown = reader.ReadUInt32();
 }
Example #8
0
 public abstract void Read(PkgBinaryReader reader);
Example #9
0
 public override void Read(PkgBinaryReader reader)
 {
     reference = reader.ReadString(8);
 }
Example #10
0
 public override void Read(PkgBinaryReader reader)
 {
     nameOffsetType = reader.ReadOffsetType();
     base.Read(reader);
 }