public override void ReadData(ESPReader reader, long dataEnd) { while (reader.BaseStream.Position < dataEnd) { string subTag = reader.PeekTag(); switch (subTag) { case "EDID": if (EditorID == null) { EditorID = new SimpleSubrecord <String>(); } EditorID.ReadBinary(reader); break; case "OBND": if (ObjectBounds == null) { ObjectBounds = new ObjectBounds(); } ObjectBounds.ReadBinary(reader); break; case "FULL": if (Name == null) { Name = new SimpleSubrecord <String>(); } Name.ReadBinary(reader); break; case "MODL": if (Model == null) { Model = new Model(); } Model.ReadBinary(reader); break; case "DEST": if (Destructable == null) { Destructable = new Destructable(); } Destructable.ReadBinary(reader); break; case "DATA": if (ProjectileData == null) { ProjectileData = new ProjectileData(); } ProjectileData.ReadBinary(reader); break; case "NAM1": if (MuzzleFlashModelFilename == null) { MuzzleFlashModelFilename = new SimpleSubrecord <String>(); } MuzzleFlashModelFilename.ReadBinary(reader); break; case "NAM2": if (MuzzleFlashModelTextureHash == null) { MuzzleFlashModelTextureHash = new SimpleSubrecord <Byte[]>(); } MuzzleFlashModelTextureHash.ReadBinary(reader); break; case "VNAM": if (SoundLevel == null) { SoundLevel = new SimpleSubrecord <SoundLevel>(); } SoundLevel.ReadBinary(reader); break; default: throw new Exception(); } } }