Beispiel #1
0
 public ObjectEffect(ObjectEffect copyObject)
 {
 }
Beispiel #2
0
        public override void ReadDataXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            if (ele.TryPathTo("EditorID", false, out subEle))
            {
                if (EditorID == null)
                {
                    EditorID = new SimpleSubrecord <String>();
                }

                EditorID.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ObjectBounds", false, out subEle))
            {
                if (ObjectBounds == null)
                {
                    ObjectBounds = new ObjectBounds();
                }

                ObjectBounds.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Name", false, out subEle))
            {
                if (Name == null)
                {
                    Name = new SimpleSubrecord <String>();
                }

                Name.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Script", false, out subEle))
            {
                if (Script == null)
                {
                    Script = new RecordReference();
                }

                Script.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ObjectEffect", false, out subEle))
            {
                if (ObjectEffect == null)
                {
                    ObjectEffect = new RecordReference();
                }

                ObjectEffect.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("BipedData", false, out subEle))
            {
                if (BipedData == null)
                {
                    BipedData = new BipedData();
                }

                BipedData.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/Biped/Male/FileName", false, out subEle))
            {
                if (MaleBipedModelFileName == null)
                {
                    MaleBipedModelFileName = new SimpleSubrecord <String>();
                }

                MaleBipedModelFileName.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/Biped/Male/TextureHashes", false, out subEle))
            {
                if (MaleBipedModelTextureHashes == null)
                {
                    MaleBipedModelTextureHashes = new SimpleSubrecord <Byte[]>();
                }

                MaleBipedModelTextureHashes.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/Biped/Male/AlternateTextures", false, out subEle))
            {
                if (MaleBipedModelAlternateTextures == null)
                {
                    MaleBipedModelAlternateTextures = new AlternateTextures();
                }

                MaleBipedModelAlternateTextures.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/Biped/Male/FaceGenModelFlags", false, out subEle))
            {
                if (MaleBipedModelFaceGenModelFlags == null)
                {
                    MaleBipedModelFaceGenModelFlags = new SimpleSubrecord <FaceGenModelFlags>();
                }

                MaleBipedModelFaceGenModelFlags.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/World/Male/FileName", false, out subEle))
            {
                if (MaleWorldModelFileName == null)
                {
                    MaleWorldModelFileName = new SimpleSubrecord <String>();
                }

                MaleWorldModelFileName.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/World/Male/TextureHashes", false, out subEle))
            {
                if (MaleWorldModelTextureHashes == null)
                {
                    MaleWorldModelTextureHashes = new SimpleSubrecord <Byte[]>();
                }

                MaleWorldModelTextureHashes.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/World/Male/AlternateTextures", false, out subEle))
            {
                if (MaleWorldModelAlternateTextures == null)
                {
                    MaleWorldModelAlternateTextures = new AlternateTextures();
                }

                MaleWorldModelAlternateTextures.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Icon/Inventory/Male", false, out subEle))
            {
                if (MaleInventoryIcon == null)
                {
                    MaleInventoryIcon = new SimpleSubrecord <String>();
                }

                MaleInventoryIcon.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Icon/Message/Male", false, out subEle))
            {
                if (MaleMessageIcon == null)
                {
                    MaleMessageIcon = new SimpleSubrecord <String>();
                }

                MaleMessageIcon.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/Biped/Female/FileName", false, out subEle))
            {
                if (FemaleBipedModelFileName == null)
                {
                    FemaleBipedModelFileName = new SimpleSubrecord <String>();
                }

                FemaleBipedModelFileName.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/Biped/Female/TextureHashes", false, out subEle))
            {
                if (FemaleBipedModelTextureHashes == null)
                {
                    FemaleBipedModelTextureHashes = new SimpleSubrecord <Byte[]>();
                }

                FemaleBipedModelTextureHashes.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/Biped/Female/AlternateTextures", false, out subEle))
            {
                if (FemaleBipedModelAlternateTextures == null)
                {
                    FemaleBipedModelAlternateTextures = new AlternateTextures();
                }

                FemaleBipedModelAlternateTextures.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/Biped/Female/FaceGenModelFlags", false, out subEle))
            {
                if (FemaleBipedModelFaceGenModelFlags == null)
                {
                    FemaleBipedModelFaceGenModelFlags = new SimpleSubrecord <FaceGenModelFlags>();
                }

                FemaleBipedModelFaceGenModelFlags.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/World/Female/FileName", false, out subEle))
            {
                if (FemaleWorldModelFileName == null)
                {
                    FemaleWorldModelFileName = new SimpleSubrecord <String>();
                }

                FemaleWorldModelFileName.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/World/Female/TextureHashes", false, out subEle))
            {
                if (FemaleWorldModelTextureHashes == null)
                {
                    FemaleWorldModelTextureHashes = new SimpleSubrecord <Byte[]>();
                }

                FemaleWorldModelTextureHashes.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Models/World/Female/AlternateTextures", false, out subEle))
            {
                if (FemaleWorldModelAlternateTextures == null)
                {
                    FemaleWorldModelAlternateTextures = new AlternateTextures();
                }

                FemaleWorldModelAlternateTextures.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Icon/Inventory/Female", false, out subEle))
            {
                if (FemaleInventoryIcon == null)
                {
                    FemaleInventoryIcon = new SimpleSubrecord <String>();
                }

                FemaleInventoryIcon.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Icon/Message/Female", false, out subEle))
            {
                if (FemaleMessageIcon == null)
                {
                    FemaleMessageIcon = new SimpleSubrecord <String>();
                }

                FemaleMessageIcon.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("RagdollConstraintTemplate", false, out subEle))
            {
                if (RagdollConstraintTemplate == null)
                {
                    RagdollConstraintTemplate = new SimpleSubrecord <String>();
                }

                RagdollConstraintTemplate.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("RepairList", false, out subEle))
            {
                if (RepairList == null)
                {
                    RepairList = new RecordReference();
                }

                RepairList.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("BipedModelList", false, out subEle))
            {
                if (BipedModelList == null)
                {
                    BipedModelList = new RecordReference();
                }

                BipedModelList.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("EquipmentType", false, out subEle))
            {
                if (EquipmentType == null)
                {
                    EquipmentType = new SimpleSubrecord <EquipmentType>();
                }

                EquipmentType.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("PickupSound", false, out subEle))
            {
                if (PickupSound == null)
                {
                    PickupSound = new RecordReference();
                }

                PickupSound.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("DropSound", false, out subEle))
            {
                if (DropSound == null)
                {
                    DropSound = new RecordReference();
                }

                DropSound.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Data", false, out subEle))
            {
                if (Data == null)
                {
                    Data = new ArmorData();
                }

                Data.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ExtraData", false, out subEle))
            {
                if (ExtraData == null)
                {
                    ExtraData = new ArmorExtraData();
                }

                ExtraData.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("OverridesAnimationSounds", false, out subEle))
            {
                if (OverridesAnimationSounds == null)
                {
                    OverridesAnimationSounds = new SimpleSubrecord <NoYes>();
                }

                OverridesAnimationSounds.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("AnimationSounds", false, out subEle))
            {
                if (AnimationSounds == null)
                {
                    AnimationSounds = new List <AnimationSound>();
                }

                foreach (XElement e in subEle.Elements())
                {
                    AnimationSound tempSNAM = new AnimationSound();
                    tempSNAM.ReadXML(e, master);
                    AnimationSounds.Add(tempSNAM);
                }
            }
            if (ele.TryPathTo("AnimationSoundsTemplate", false, out subEle))
            {
                if (AnimationSoundsTemplate == null)
                {
                    AnimationSoundsTemplate = new RecordReference();
                }

                AnimationSoundsTemplate.ReadXML(subEle, master);
            }
        }
Beispiel #3
0
 public override void WriteData(ESPWriter writer)
 {
     if (EditorID != null)
     {
         EditorID.WriteBinary(writer);
     }
     if (ObjectBounds != null)
     {
         ObjectBounds.WriteBinary(writer);
     }
     if (Name != null)
     {
         Name.WriteBinary(writer);
     }
     if (Script != null)
     {
         Script.WriteBinary(writer);
     }
     if (ObjectEffect != null)
     {
         ObjectEffect.WriteBinary(writer);
     }
     if (BipedData != null)
     {
         BipedData.WriteBinary(writer);
     }
     if (MaleBipedModelFileName != null)
     {
         MaleBipedModelFileName.WriteBinary(writer);
     }
     if (MaleBipedModelTextureHashes != null)
     {
         MaleBipedModelTextureHashes.WriteBinary(writer);
     }
     if (MaleBipedModelAlternateTextures != null)
     {
         MaleBipedModelAlternateTextures.WriteBinary(writer);
     }
     if (MaleBipedModelFaceGenModelFlags != null)
     {
         MaleBipedModelFaceGenModelFlags.WriteBinary(writer);
     }
     if (MaleWorldModelFileName != null)
     {
         MaleWorldModelFileName.WriteBinary(writer);
     }
     if (MaleWorldModelTextureHashes != null)
     {
         MaleWorldModelTextureHashes.WriteBinary(writer);
     }
     if (MaleWorldModelAlternateTextures != null)
     {
         MaleWorldModelAlternateTextures.WriteBinary(writer);
     }
     if (MaleInventoryIcon != null)
     {
         MaleInventoryIcon.WriteBinary(writer);
     }
     if (MaleMessageIcon != null)
     {
         MaleMessageIcon.WriteBinary(writer);
     }
     if (FemaleBipedModelFileName != null)
     {
         FemaleBipedModelFileName.WriteBinary(writer);
     }
     if (FemaleBipedModelTextureHashes != null)
     {
         FemaleBipedModelTextureHashes.WriteBinary(writer);
     }
     if (FemaleBipedModelAlternateTextures != null)
     {
         FemaleBipedModelAlternateTextures.WriteBinary(writer);
     }
     if (FemaleBipedModelFaceGenModelFlags != null)
     {
         FemaleBipedModelFaceGenModelFlags.WriteBinary(writer);
     }
     if (FemaleWorldModelFileName != null)
     {
         FemaleWorldModelFileName.WriteBinary(writer);
     }
     if (FemaleWorldModelTextureHashes != null)
     {
         FemaleWorldModelTextureHashes.WriteBinary(writer);
     }
     if (FemaleWorldModelAlternateTextures != null)
     {
         FemaleWorldModelAlternateTextures.WriteBinary(writer);
     }
     if (FemaleInventoryIcon != null)
     {
         FemaleInventoryIcon.WriteBinary(writer);
     }
     if (FemaleMessageIcon != null)
     {
         FemaleMessageIcon.WriteBinary(writer);
     }
     if (RagdollConstraintTemplate != null)
     {
         RagdollConstraintTemplate.WriteBinary(writer);
     }
     if (RepairList != null)
     {
         RepairList.WriteBinary(writer);
     }
     if (BipedModelList != null)
     {
         BipedModelList.WriteBinary(writer);
     }
     if (EquipmentType != null)
     {
         EquipmentType.WriteBinary(writer);
     }
     if (PickupSound != null)
     {
         PickupSound.WriteBinary(writer);
     }
     if (DropSound != null)
     {
         DropSound.WriteBinary(writer);
     }
     if (Data != null)
     {
         Data.WriteBinary(writer);
     }
     if (ExtraData != null)
     {
         ExtraData.WriteBinary(writer);
     }
     if (OverridesAnimationSounds != null)
     {
         OverridesAnimationSounds.WriteBinary(writer);
     }
     if (AnimationSounds != null)
     {
         foreach (var item in AnimationSounds)
         {
             item.WriteBinary(writer);
         }
     }
     if (AnimationSoundsTemplate != null)
     {
         AnimationSoundsTemplate.WriteBinary(writer);
     }
 }
Beispiel #4
0
        public override void WriteDataXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            if (EditorID != null)
            {
                ele.TryPathTo("EditorID", true, out subEle);
                EditorID.WriteXML(subEle, master);
            }
            if (ObjectBounds != null)
            {
                ele.TryPathTo("ObjectBounds", true, out subEle);
                ObjectBounds.WriteXML(subEle, master);
            }
            if (Name != null)
            {
                ele.TryPathTo("Name", true, out subEle);
                Name.WriteXML(subEle, master);
            }
            if (Script != null)
            {
                ele.TryPathTo("Script", true, out subEle);
                Script.WriteXML(subEle, master);
            }
            if (ObjectEffect != null)
            {
                ele.TryPathTo("ObjectEffect", true, out subEle);
                ObjectEffect.WriteXML(subEle, master);
            }
            if (BipedData != null)
            {
                ele.TryPathTo("BipedData", true, out subEle);
                BipedData.WriteXML(subEle, master);
            }
            if (MaleBipedModelFileName != null)
            {
                ele.TryPathTo("Models/Biped/Male/FileName", true, out subEle);
                MaleBipedModelFileName.WriteXML(subEle, master);
            }
            if (MaleBipedModelTextureHashes != null)
            {
                ele.TryPathTo("Models/Biped/Male/TextureHashes", true, out subEle);
                MaleBipedModelTextureHashes.WriteXML(subEle, master);
            }
            if (MaleBipedModelAlternateTextures != null)
            {
                ele.TryPathTo("Models/Biped/Male/AlternateTextures", true, out subEle);
                MaleBipedModelAlternateTextures.WriteXML(subEle, master);
            }
            if (MaleBipedModelFaceGenModelFlags != null)
            {
                ele.TryPathTo("Models/Biped/Male/FaceGenModelFlags", true, out subEle);
                MaleBipedModelFaceGenModelFlags.WriteXML(subEle, master);
            }
            if (MaleWorldModelFileName != null)
            {
                ele.TryPathTo("Models/World/Male/FileName", true, out subEle);
                MaleWorldModelFileName.WriteXML(subEle, master);
            }
            if (MaleWorldModelTextureHashes != null)
            {
                ele.TryPathTo("Models/World/Male/TextureHashes", true, out subEle);
                MaleWorldModelTextureHashes.WriteXML(subEle, master);
            }
            if (MaleWorldModelAlternateTextures != null)
            {
                ele.TryPathTo("Models/World/Male/AlternateTextures", true, out subEle);
                MaleWorldModelAlternateTextures.WriteXML(subEle, master);
            }
            if (MaleInventoryIcon != null)
            {
                ele.TryPathTo("Icon/Inventory/Male", true, out subEle);
                MaleInventoryIcon.WriteXML(subEle, master);
            }
            if (MaleMessageIcon != null)
            {
                ele.TryPathTo("Icon/Message/Male", true, out subEle);
                MaleMessageIcon.WriteXML(subEle, master);
            }
            if (FemaleBipedModelFileName != null)
            {
                ele.TryPathTo("Models/Biped/Female/FileName", true, out subEle);
                FemaleBipedModelFileName.WriteXML(subEle, master);
            }
            if (FemaleBipedModelTextureHashes != null)
            {
                ele.TryPathTo("Models/Biped/Female/TextureHashes", true, out subEle);
                FemaleBipedModelTextureHashes.WriteXML(subEle, master);
            }
            if (FemaleBipedModelAlternateTextures != null)
            {
                ele.TryPathTo("Models/Biped/Female/AlternateTextures", true, out subEle);
                FemaleBipedModelAlternateTextures.WriteXML(subEle, master);
            }
            if (FemaleBipedModelFaceGenModelFlags != null)
            {
                ele.TryPathTo("Models/Biped/Female/FaceGenModelFlags", true, out subEle);
                FemaleBipedModelFaceGenModelFlags.WriteXML(subEle, master);
            }
            if (FemaleWorldModelFileName != null)
            {
                ele.TryPathTo("Models/World/Female/FileName", true, out subEle);
                FemaleWorldModelFileName.WriteXML(subEle, master);
            }
            if (FemaleWorldModelTextureHashes != null)
            {
                ele.TryPathTo("Models/World/Female/TextureHashes", true, out subEle);
                FemaleWorldModelTextureHashes.WriteXML(subEle, master);
            }
            if (FemaleWorldModelAlternateTextures != null)
            {
                ele.TryPathTo("Models/World/Female/AlternateTextures", true, out subEle);
                FemaleWorldModelAlternateTextures.WriteXML(subEle, master);
            }
            if (FemaleInventoryIcon != null)
            {
                ele.TryPathTo("Icon/Inventory/Female", true, out subEle);
                FemaleInventoryIcon.WriteXML(subEle, master);
            }
            if (FemaleMessageIcon != null)
            {
                ele.TryPathTo("Icon/Message/Female", true, out subEle);
                FemaleMessageIcon.WriteXML(subEle, master);
            }
            if (RagdollConstraintTemplate != null)
            {
                ele.TryPathTo("RagdollConstraintTemplate", true, out subEle);
                RagdollConstraintTemplate.WriteXML(subEle, master);
            }
            if (RepairList != null)
            {
                ele.TryPathTo("RepairList", true, out subEle);
                RepairList.WriteXML(subEle, master);
            }
            if (BipedModelList != null)
            {
                ele.TryPathTo("BipedModelList", true, out subEle);
                BipedModelList.WriteXML(subEle, master);
            }
            if (EquipmentType != null)
            {
                ele.TryPathTo("EquipmentType", true, out subEle);
                EquipmentType.WriteXML(subEle, master);
            }
            if (PickupSound != null)
            {
                ele.TryPathTo("PickupSound", true, out subEle);
                PickupSound.WriteXML(subEle, master);
            }
            if (DropSound != null)
            {
                ele.TryPathTo("DropSound", true, out subEle);
                DropSound.WriteXML(subEle, master);
            }
            if (Data != null)
            {
                ele.TryPathTo("Data", true, out subEle);
                Data.WriteXML(subEle, master);
            }
            if (ExtraData != null)
            {
                ele.TryPathTo("ExtraData", true, out subEle);
                ExtraData.WriteXML(subEle, master);
            }
            if (OverridesAnimationSounds != null)
            {
                ele.TryPathTo("OverridesAnimationSounds", true, out subEle);
                OverridesAnimationSounds.WriteXML(subEle, master);
            }
            if (AnimationSounds != null)
            {
                ele.TryPathTo("AnimationSounds", true, out subEle);
                List <string> xmlNames = new List <string> {
                    "Sound"
                };
                int i = 0;
                foreach (var entry in AnimationSounds)
                {
                    i = i % xmlNames.Count();
                    XElement newEle = new XElement(xmlNames[i]);
                    entry.WriteXML(newEle, master);
                    subEle.Add(newEle);
                    i++;
                }
            }
            if (AnimationSoundsTemplate != null)
            {
                ele.TryPathTo("AnimationSoundsTemplate", true, out subEle);
                AnimationSoundsTemplate.WriteXML(subEle, master);
            }
        }
Beispiel #5
0
        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 "SCRI":
                    if (Script == null)
                    {
                        Script = new RecordReference();
                    }

                    Script.ReadBinary(reader);
                    break;

                case "EITM":
                    if (ObjectEffect == null)
                    {
                        ObjectEffect = new RecordReference();
                    }

                    ObjectEffect.ReadBinary(reader);
                    break;

                case "BMDT":
                    if (BipedData == null)
                    {
                        BipedData = new BipedData();
                    }

                    BipedData.ReadBinary(reader);
                    break;

                case "MODL":
                    if (MaleBipedModelFileName == null)
                    {
                        MaleBipedModelFileName = new SimpleSubrecord <String>();
                    }

                    MaleBipedModelFileName.ReadBinary(reader);
                    break;

                case "MODT":
                    if (MaleBipedModelTextureHashes == null)
                    {
                        MaleBipedModelTextureHashes = new SimpleSubrecord <Byte[]>();
                    }

                    MaleBipedModelTextureHashes.ReadBinary(reader);
                    break;

                case "MODS":
                    if (MaleBipedModelAlternateTextures == null)
                    {
                        MaleBipedModelAlternateTextures = new AlternateTextures();
                    }

                    MaleBipedModelAlternateTextures.ReadBinary(reader);
                    break;

                case "MODD":
                    if (MaleBipedModelFaceGenModelFlags == null)
                    {
                        MaleBipedModelFaceGenModelFlags = new SimpleSubrecord <FaceGenModelFlags>();
                    }

                    MaleBipedModelFaceGenModelFlags.ReadBinary(reader);
                    break;

                case "MOD2":
                    if (MaleWorldModelFileName == null)
                    {
                        MaleWorldModelFileName = new SimpleSubrecord <String>();
                    }

                    MaleWorldModelFileName.ReadBinary(reader);
                    break;

                case "MO2T":
                    if (MaleWorldModelTextureHashes == null)
                    {
                        MaleWorldModelTextureHashes = new SimpleSubrecord <Byte[]>();
                    }

                    MaleWorldModelTextureHashes.ReadBinary(reader);
                    break;

                case "MO2S":
                    if (MaleWorldModelAlternateTextures == null)
                    {
                        MaleWorldModelAlternateTextures = new AlternateTextures();
                    }

                    MaleWorldModelAlternateTextures.ReadBinary(reader);
                    break;

                case "ICON":
                    if (MaleInventoryIcon == null)
                    {
                        MaleInventoryIcon = new SimpleSubrecord <String>();
                    }

                    MaleInventoryIcon.ReadBinary(reader);
                    break;

                case "MICO":
                    if (MaleMessageIcon == null)
                    {
                        MaleMessageIcon = new SimpleSubrecord <String>();
                    }

                    MaleMessageIcon.ReadBinary(reader);
                    break;

                case "MOD3":
                    if (FemaleBipedModelFileName == null)
                    {
                        FemaleBipedModelFileName = new SimpleSubrecord <String>();
                    }

                    FemaleBipedModelFileName.ReadBinary(reader);
                    break;

                case "MO3T":
                    if (FemaleBipedModelTextureHashes == null)
                    {
                        FemaleBipedModelTextureHashes = new SimpleSubrecord <Byte[]>();
                    }

                    FemaleBipedModelTextureHashes.ReadBinary(reader);
                    break;

                case "MO3S":
                    if (FemaleBipedModelAlternateTextures == null)
                    {
                        FemaleBipedModelAlternateTextures = new AlternateTextures();
                    }

                    FemaleBipedModelAlternateTextures.ReadBinary(reader);
                    break;

                case "MOSD":
                    if (FemaleBipedModelFaceGenModelFlags == null)
                    {
                        FemaleBipedModelFaceGenModelFlags = new SimpleSubrecord <FaceGenModelFlags>();
                    }

                    FemaleBipedModelFaceGenModelFlags.ReadBinary(reader);
                    break;

                case "MOD4":
                    if (FemaleWorldModelFileName == null)
                    {
                        FemaleWorldModelFileName = new SimpleSubrecord <String>();
                    }

                    FemaleWorldModelFileName.ReadBinary(reader);
                    break;

                case "MO4T":
                    if (FemaleWorldModelTextureHashes == null)
                    {
                        FemaleWorldModelTextureHashes = new SimpleSubrecord <Byte[]>();
                    }

                    FemaleWorldModelTextureHashes.ReadBinary(reader);
                    break;

                case "MO4S":
                    if (FemaleWorldModelAlternateTextures == null)
                    {
                        FemaleWorldModelAlternateTextures = new AlternateTextures();
                    }

                    FemaleWorldModelAlternateTextures.ReadBinary(reader);
                    break;

                case "ICO2":
                    if (FemaleInventoryIcon == null)
                    {
                        FemaleInventoryIcon = new SimpleSubrecord <String>();
                    }

                    FemaleInventoryIcon.ReadBinary(reader);
                    break;

                case "MIC2":
                    if (FemaleMessageIcon == null)
                    {
                        FemaleMessageIcon = new SimpleSubrecord <String>();
                    }

                    FemaleMessageIcon.ReadBinary(reader);
                    break;

                case "BMCT":
                    if (RagdollConstraintTemplate == null)
                    {
                        RagdollConstraintTemplate = new SimpleSubrecord <String>();
                    }

                    RagdollConstraintTemplate.ReadBinary(reader);
                    break;

                case "REPL":
                    if (RepairList == null)
                    {
                        RepairList = new RecordReference();
                    }

                    RepairList.ReadBinary(reader);
                    break;

                case "BIPL":
                    if (BipedModelList == null)
                    {
                        BipedModelList = new RecordReference();
                    }

                    BipedModelList.ReadBinary(reader);
                    break;

                case "ETYP":
                    if (EquipmentType == null)
                    {
                        EquipmentType = new SimpleSubrecord <EquipmentType>();
                    }

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

                    Data.ReadBinary(reader);
                    break;

                case "DNAM":
                    if (ExtraData == null)
                    {
                        ExtraData = new ArmorExtraData();
                    }

                    ExtraData.ReadBinary(reader);
                    break;

                case "BNAM":
                    if (OverridesAnimationSounds == null)
                    {
                        OverridesAnimationSounds = new SimpleSubrecord <NoYes>();
                    }

                    OverridesAnimationSounds.ReadBinary(reader);
                    break;

                case "SNAM":
                    if (AnimationSounds == null)
                    {
                        AnimationSounds = new List <AnimationSound>();
                    }

                    AnimationSound tempSNAM = new AnimationSound();
                    tempSNAM.ReadBinary(reader);
                    AnimationSounds.Add(tempSNAM);
                    break;

                case "TNAM":
                    if (AnimationSoundsTemplate == null)
                    {
                        AnimationSoundsTemplate = new RecordReference();
                    }

                    AnimationSoundsTemplate.ReadBinary(reader);
                    break;

                default:
                    throw new Exception();
                }
            }
        }