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