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; } }
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(); }