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 "ICON": if (LargeIcon == null) { LargeIcon = new SimpleSubrecord <String>(); } LargeIcon.ReadBinary(reader); break; case "MICO": if (SmallIcon == null) { SmallIcon = new SimpleSubrecord <String>(); } SmallIcon.ReadBinary(reader); break; case "SCRI": if (Script == null) { Script = new RecordReference(); } Script.ReadBinary(reader); break; case "DEST": if (Destructable == null) { Destructable = new Destructable(); } Destructable.ReadBinary(reader); break; case "YNAM": if (PickUpSound == null) { PickUpSound = new RecordReference(); } PickUpSound.ReadBinary(reader); break; case "ZNAM": if (DropSound == null) { DropSound = new RecordReference(); } DropSound.ReadBinary(reader); break; case "DATA": if (Data == null) { Data = new AmmoData(); } Data.ReadBinary(reader); break; case "DAT2": if (ExtraData == null) { ExtraData = new AmmoExtraData(); } ExtraData.ReadBinary(reader); break; case "ONAM": if (ShortName == null) { ShortName = new SimpleSubrecord <String>(); } ShortName.ReadBinary(reader); break; case "QNAM": if (Abbreviation == null) { Abbreviation = new SimpleSubrecord <String>(); } Abbreviation.ReadBinary(reader); break; case "RCIL": if (AmmoEffects == null) { AmmoEffects = new List <RecordReference>(); } RecordReference tempRCIL = new RecordReference(); tempRCIL.ReadBinary(reader); AmmoEffects.Add(tempRCIL); break; default: throw new Exception(); } } }