public override void LoadSection(BinaryReaderEx reader) { base.LoadSection(reader); this.NumElements = reader.ReadInt32(); reader.BaseStream.Seek(12, System.IO.SeekOrigin.Current); // Skip 12 bytes this.ElementOffsets = new List<ElementOffsetData>(); for (var i = 0; i < this.NumElements; i++) { var thing = new ElementOffsetData(); thing.BoneNameOffset = reader.ReadInt32(); thing.NameOffset = reader.ReadInt32(); thing.OffsetX = reader.ReadSingle(); thing.OffsetY = reader.ReadSingle(); thing.OffsetZ = reader.ReadSingle(); thing.Unused1 = reader.ReadInt32(); thing.Unused2 = reader.ReadInt32(); thing.Unused3 = reader.ReadInt32(); this.ElementOffsets.Add(thing); } foreach (var el in this.ElementOffsets) { reader.BaseStream.Position = this.SectionStart + el.BoneNameOffset; el.BoneName = reader.ReadNullTerminatedString(); reader.BaseStream.Position = this.SectionStart + el.NameOffset; el.Name = reader.ReadNullTerminatedString(); } }
public override void LoadSection(BinaryReaderEx reader) { base.LoadSection(reader); this.NumElements = reader.ReadInt32(); reader.BaseStream.Seek(12, System.IO.SeekOrigin.Current); // Skip 12 bytes this.ElementOffsets = new List <ElementOffsetData>(); for (var i = 0; i < this.NumElements; i++) { var thing = new ElementOffsetData(); thing.BoneNameOffset = reader.ReadInt32(); thing.NameOffset = reader.ReadInt32(); thing.OffsetX = reader.ReadSingle(); thing.OffsetY = reader.ReadSingle(); thing.OffsetZ = reader.ReadSingle(); thing.Unused1 = reader.ReadInt32(); thing.Unused2 = reader.ReadInt32(); thing.Unused3 = reader.ReadInt32(); this.ElementOffsets.Add(thing); } foreach (var el in this.ElementOffsets) { reader.BaseStream.Position = this.SectionStart + el.BoneNameOffset; el.BoneName = reader.ReadNullTerminatedString(); reader.BaseStream.Position = this.SectionStart + el.NameOffset; el.Name = reader.ReadNullTerminatedString(); } }