Example #1
0
        protected void UnserializeNew(System.IO.BinaryReader reader)
        {
            filename = reader.ReadBytes(0x40);
            int count = (int)((reader.BaseStream.Length - 0x40) / 2);

            count = 0x6c;
            data  = new short[count];
            for (int i = 0; i < count; i++)
            {
                data[i] = reader.ReadInt16();
            }

            int sz = reader.ReadInt32();

            filename2 = reader.ReadBytes(sz);

            if (Helper.ToString(filename2) != this.FileName)
            {
                ok = ObjdHealth.UnmatchingFilenames;
            }

            if (reader.BaseStream.Position != reader.BaseStream.Length)
            {
                ok = ObjdHealth.OverLength;
            }
        }
Example #2
0
        protected override void Unserialize(System.IO.BinaryReader reader)
        {
            ok = ObjdHealth.Ok;
            try
            {
                UnserializeNew(reader);
            }
            catch {
                ok = ObjdHealth.Unreadable;
                reader.BaseStream.Seek(0, System.IO.SeekOrigin.Begin);
                UnserializeOld(reader);
            }

            //read some special Data
            if (Length > 0x5c + 4)
            {
                reader.BaseStream.Seek(0x5c, System.IO.SeekOrigin.Begin);
                guid = reader.ReadUInt32();
            }

            if (Length > 0x6A + 8)
            {
                reader.BaseStream.Seek(0x6A, System.IO.SeekOrigin.Begin);
                diagonalguid  = reader.ReadUInt32();
                gridalignguid = reader.ReadUInt32();
            }

            if (Length > 0x7a + 4)
            {
                reader.BaseStream.Seek(0x7a, System.IO.SeekOrigin.Begin);
                proxyguid = reader.ReadUInt32();
            }

            if (Length > 0xcc + 4)
            {
                reader.BaseStream.Seek(0xcc, System.IO.SeekOrigin.Begin);
                originalguid = reader.ReadUInt32();
            }


            UpdateFlags();
        }