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("IdleMarkerFlags", false, out subEle)) { if (IdleMarkerFlags == null) { IdleMarkerFlags = new SimpleSubrecord <IdleMarkerFlags>(); } IdleMarkerFlags.ReadXML(subEle, master); } if (ele.TryPathTo("AnimationCount", false, out subEle)) { if (AnimationCount == null) { AnimationCount = new SimpleSubrecord <Byte>(); } AnimationCount.ReadXML(subEle, master); } if (ele.TryPathTo("IdleTimer", false, out subEle)) { if (IdleTimer == null) { IdleTimer = new SimpleSubrecord <Single>(); } IdleTimer.ReadXML(subEle, master); } if (ele.TryPathTo("Animations", false, out subEle)) { if (Animations == null) { Animations = new FormArray(); } Animations.ReadXML(subEle, master); } }
public RegionDataEntry(RegionDataHeader Header, RegionObjectList ObjectList, SimpleSubrecord <String> MapName, RegionGrassList GrassList, SimpleSubrecord <RegionMusicType> MusicType, RecordReference Music, RecordReference IncidentalMediaSet, List <RecordReference> BattleMediaSets, RegionSoundList Sounds, WeatherList Weathers, FormArray Imposters) { this.Header = Header; this.ObjectList = ObjectList; this.MapName = MapName; this.GrassList = GrassList; this.MusicType = MusicType; this.Music = Music; this.IncidentalMediaSet = IncidentalMediaSet; this.BattleMediaSets = BattleMediaSets; this.Sounds = Sounds; this.Weathers = Weathers; this.Imposters = Imposters; }
public Race() { EditorID = new SimpleSubrecord <String>("EDID"); Description = new SimpleSubrecord <String>("DESC"); Data = new RaceData("DATA"); UnknownMarker = new SubMarker("NAM2"); DefaultVoices = new RaceDefaultVoices("VTCK"); DefaultHairStyles = new RaceDefaultHairStyles("DNAM"); DefaultHairColors = new RaceDefaultHairColors("CNAM"); FaceGenMainClamp = new SimpleSubrecord <Single>("PNAM"); FaceGenFaceClamp = new SimpleSubrecord <Single>("UNAM"); Unknown = new SimpleSubrecord <Byte[]>("ATTR"); HeadData = new RaceHeadData(); BodyData = new RaceBodyData(); Hairs = new FormArray("HNAM"); Eyes = new FormArray("ENAM"); MaleFaceGenData = new FaceGenData(); FemaleFaceGenData = new FaceGenData(); }
public override void ReadBinary(ESPReader reader) { List <string> readTags = new List <string>(); while (reader.BaseStream.Position < reader.BaseStream.Length) { string subTag = reader.PeekTag(); switch (subTag) { case "RDAT": if (readTags.Contains("RDAT")) { return; } Header.ReadBinary(reader); break; case "RDOT": if (readTags.Contains("RDOT")) { return; } if (ObjectList == null) { ObjectList = new RegionObjectList(); } ObjectList.ReadBinary(reader); break; case "RDMP": if (readTags.Contains("RDMP")) { return; } if (MapName == null) { MapName = new SimpleSubrecord <String>(); } MapName.ReadBinary(reader); break; case "RDGS": if (readTags.Contains("RDGS")) { return; } if (GrassList == null) { GrassList = new RegionGrassList(); } GrassList.ReadBinary(reader); break; case "RDMD": if (readTags.Contains("RDMD")) { return; } if (MusicType == null) { MusicType = new SimpleSubrecord <RegionMusicType>(); } MusicType.ReadBinary(reader); break; case "RDMO": if (readTags.Contains("RDMO")) { return; } if (Music == null) { Music = new RecordReference(); } Music.ReadBinary(reader); break; case "RDSI": if (readTags.Contains("RDSI")) { return; } if (IncidentalMediaSet == null) { IncidentalMediaSet = new RecordReference(); } IncidentalMediaSet.ReadBinary(reader); break; case "RDSB": if (BattleMediaSets == null) { BattleMediaSets = new List <RecordReference>(); } RecordReference tempRDSB = new RecordReference(); tempRDSB.ReadBinary(reader); BattleMediaSets.Add(tempRDSB); break; case "RDSD": if (readTags.Contains("RDSD")) { return; } if (Sounds == null) { Sounds = new RegionSoundList(); } Sounds.ReadBinary(reader); break; case "RDWT": if (readTags.Contains("RDWT")) { return; } if (Weathers == null) { Weathers = new WeatherList(); } Weathers.ReadBinary(reader); break; case "RDID": if (readTags.Contains("RDID")) { return; } if (Imposters == null) { Imposters = new FormArray(); } Imposters.ReadBinary(reader); break; default: return; } readTags.Add(subTag); } }
public override void ReadXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; if (ele.TryPathTo("Header", false, out subEle)) { if (Header == null) { Header = new RegionDataHeader(); } Header.ReadXML(subEle, master); } if (ele.TryPathTo("ObjectList", false, out subEle)) { if (ObjectList == null) { ObjectList = new RegionObjectList(); } ObjectList.ReadXML(subEle, master); } if (ele.TryPathTo("MapName", false, out subEle)) { if (MapName == null) { MapName = new SimpleSubrecord <String>(); } MapName.ReadXML(subEle, master); } if (ele.TryPathTo("GrassList", false, out subEle)) { if (GrassList == null) { GrassList = new RegionGrassList(); } GrassList.ReadXML(subEle, master); } if (ele.TryPathTo("MusicType", false, out subEle)) { if (MusicType == null) { MusicType = new SimpleSubrecord <RegionMusicType>(); } MusicType.ReadXML(subEle, master); } if (ele.TryPathTo("Music", false, out subEle)) { if (Music == null) { Music = new RecordReference(); } Music.ReadXML(subEle, master); } if (ele.TryPathTo("MediaSet/Incidental", false, out subEle)) { if (IncidentalMediaSet == null) { IncidentalMediaSet = new RecordReference(); } IncidentalMediaSet.ReadXML(subEle, master); } if (ele.TryPathTo("MediaSet/Battle", false, out subEle)) { if (BattleMediaSets == null) { BattleMediaSets = new List <RecordReference>(); } foreach (XElement e in subEle.Elements()) { RecordReference temp = new RecordReference(); temp.ReadXML(e, master); BattleMediaSets.Add(temp); } } if (ele.TryPathTo("Sounds", false, out subEle)) { if (Sounds == null) { Sounds = new RegionSoundList(); } Sounds.ReadXML(subEle, master); } if (ele.TryPathTo("Weathers", false, out subEle)) { if (Weathers == null) { Weathers = new WeatherList(); } Weathers.ReadXML(subEle, master); } if (ele.TryPathTo("Imposters", false, out subEle)) { if (Imposters == null) { Imposters = new FormArray(); } Imposters.ReadXML(subEle, master); } }
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("Data", false, out subEle)) { if (Data == null) { Data = new PackageData(); } Data.ReadXML(subEle, master); } if (ele.TryPathTo("Location1", false, out subEle)) { if (Location1 == null) { Location1 = new PackageLocation(); } Location1.ReadXML(subEle, master); } if (ele.TryPathTo("Location2", false, out subEle)) { if (Location2 == null) { Location2 = new PackageLocation(); } Location2.ReadXML(subEle, master); } if (ele.TryPathTo("Schedule", false, out subEle)) { if (Schedule == null) { Schedule = new PackageScheduleData(); } Schedule.ReadXML(subEle, master); } if (ele.TryPathTo("Target1", false, out subEle)) { if (Target1 == null) { Target1 = new PackageTarget(); } Target1.ReadXML(subEle, master); } if (ele.TryPathTo("Conditions", false, out subEle)) { if (Conditions == null) { Conditions = new List <Condition>(); } foreach (XElement e in subEle.Elements()) { Condition tempCTDA = new Condition(); tempCTDA.ReadXML(e, master); Conditions.Add(tempCTDA); } } if (ele.TryPathTo("Idle/Flags", false, out subEle)) { if (IdleFlags == null) { IdleFlags = new SimpleSubrecord <PackageIdleFlags>(); } IdleFlags.ReadXML(subEle, master); } if (ele.TryPathTo("Idle/Count", false, out subEle)) { if (IdleCount == null) { IdleCount = new SimpleSubrecord <Byte>(); } IdleCount.ReadXML(subEle, master); } if (ele.TryPathTo("Idle/TimerSetting", false, out subEle)) { if (IdleTimerSetting == null) { IdleTimerSetting = new SimpleSubrecord <Single>(); } IdleTimerSetting.ReadXML(subEle, master); } if (ele.TryPathTo("Idle/Animations", false, out subEle)) { if (IdleAnimations == null) { IdleAnimations = new FormArray(); } IdleAnimations.ReadXML(subEle, master); } if (ele.TryPathTo("Unused", false, out subEle)) { if (Unused == null) { Unused = new SimpleSubrecord <Byte[]>(); } Unused.ReadXML(subEle, master); } if (ele.TryPathTo("CombatStyle", false, out subEle)) { if (CombatStyle == null) { CombatStyle = new RecordReference(); } CombatStyle.ReadXML(subEle, master); } if (ele.TryPathTo("EatMarker", false, out subEle)) { if (EatMarker == null) { EatMarker = new SubMarker(); } EatMarker.ReadXML(subEle, master); } if (ele.TryPathTo("EscortDistance", false, out subEle)) { if (EscortDistance == null) { EscortDistance = new SimpleSubrecord <UInt32>(); } EscortDistance.ReadXML(subEle, master); } if (ele.TryPathTo("FollowDistance_StartLocation_TriggerRadius", false, out subEle)) { if (FollowDistance_StartLocation_TriggerRadius == null) { FollowDistance_StartLocation_TriggerRadius = new SimpleSubrecord <UInt32>(); } FollowDistance_StartLocation_TriggerRadius.ReadXML(subEle, master); } if (ele.TryPathTo("PatrolIsRepeatable", false, out subEle)) { if (PatrolIsRepeatable == null) { PatrolIsRepeatable = new SimpleSubrecord <NoYesByte>(); } PatrolIsRepeatable.ReadXML(subEle, master); } if (ele.TryPathTo("UseWeaponData", false, out subEle)) { if (UseWeaponData == null) { UseWeaponData = new PackageUseWeaponData(); } UseWeaponData.ReadXML(subEle, master); } if (ele.TryPathTo("Target2", false, out subEle)) { if (Target2 == null) { Target2 = new PackageTarget(); } Target2.ReadXML(subEle, master); } if (ele.TryPathTo("UseItemMarker", false, out subEle)) { if (UseItemMarker == null) { UseItemMarker = new SubMarker(); } UseItemMarker.ReadXML(subEle, master); } if (ele.TryPathTo("AmbushMarker", false, out subEle)) { if (AmbushMarker == null) { AmbushMarker = new SubMarker(); } AmbushMarker.ReadXML(subEle, master); } if (ele.TryPathTo("DialogData", false, out subEle)) { if (DialogData == null) { DialogData = new PackageDialogData(); } DialogData.ReadXML(subEle, master); } if (ele.TryPathTo("DummyIgnore", false, out subEle)) { if (DummyIgnore == null) { DummyIgnore = new PackageLocation(); } DummyIgnore.ReadXML(subEle, master); } if (ele.TryPathTo("OnBegin", false, out subEle)) { if (OnBegin == null) { OnBegin = new PackageEvent(); } OnBegin.ReadXML(subEle, master); } if (ele.TryPathTo("OnEnd", false, out subEle)) { if (OnEnd == null) { OnEnd = new PackageEvent(); } OnEnd.ReadXML(subEle, master); } if (ele.TryPathTo("OnChange", false, out subEle)) { if (OnChange == null) { OnChange = new PackageEvent(); } OnChange.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 "PKDT": if (Data == null) { Data = new PackageData(); } Data.ReadBinary(reader); break; case "PLDT": if (Location1 == null) { Location1 = new PackageLocation(); } Location1.ReadBinary(reader); break; case "PLD2": if (Location2 == null) { Location2 = new PackageLocation(); } Location2.ReadBinary(reader); break; case "PSDT": if (Schedule == null) { Schedule = new PackageScheduleData(); } Schedule.ReadBinary(reader); break; case "PTDT": if (Target1 == null) { Target1 = new PackageTarget(); } Target1.ReadBinary(reader); break; case "CTDA": if (Conditions == null) { Conditions = new List <Condition>(); } Condition tempCTDA = new Condition(); tempCTDA.ReadBinary(reader); Conditions.Add(tempCTDA); break; case "IDLF": if (IdleFlags == null) { IdleFlags = new SimpleSubrecord <PackageIdleFlags>(); } IdleFlags.ReadBinary(reader); break; case "IDLC": if (IdleCount == null) { IdleCount = new SimpleSubrecord <Byte>(); } IdleCount.ReadBinary(reader); break; case "IDLT": if (IdleTimerSetting == null) { IdleTimerSetting = new SimpleSubrecord <Single>(); } IdleTimerSetting.ReadBinary(reader); break; case "IDLA": if (IdleAnimations == null) { IdleAnimations = new FormArray(); } IdleAnimations.ReadBinary(reader); break; case "IDLB": if (Unused == null) { Unused = new SimpleSubrecord <Byte[]>(); } Unused.ReadBinary(reader); break; case "CNAM": if (CombatStyle == null) { CombatStyle = new RecordReference(); } CombatStyle.ReadBinary(reader); break; case "PKED": if (EatMarker == null) { EatMarker = new SubMarker(); } EatMarker.ReadBinary(reader); break; case "PKE2": if (EscortDistance == null) { EscortDistance = new SimpleSubrecord <UInt32>(); } EscortDistance.ReadBinary(reader); break; case "PKFD": if (FollowDistance_StartLocation_TriggerRadius == null) { FollowDistance_StartLocation_TriggerRadius = new SimpleSubrecord <UInt32>(); } FollowDistance_StartLocation_TriggerRadius.ReadBinary(reader); break; case "PKPT": if (PatrolIsRepeatable == null) { PatrolIsRepeatable = new SimpleSubrecord <NoYesByte>(); } PatrolIsRepeatable.ReadBinary(reader); break; case "PKW3": if (UseWeaponData == null) { UseWeaponData = new PackageUseWeaponData(); } UseWeaponData.ReadBinary(reader); break; case "PTD2": if (Target2 == null) { Target2 = new PackageTarget(); } Target2.ReadBinary(reader); break; case "PUID": if (UseItemMarker == null) { UseItemMarker = new SubMarker(); } UseItemMarker.ReadBinary(reader); break; case "PKAM": if (AmbushMarker == null) { AmbushMarker = new SubMarker(); } AmbushMarker.ReadBinary(reader); break; case "PKDD": if (DialogData == null) { DialogData = new PackageDialogData(); } DialogData.ReadBinary(reader); break; case "DUMY": if (DummyIgnore == null) { DummyIgnore = new PackageLocation(); } DummyIgnore.ReadBinary(reader); break; case "POBA": if (OnBegin == null) { OnBegin = new PackageEvent(); } OnBegin.ReadBinary(reader); break; case "POEA": if (OnEnd == null) { OnEnd = new PackageEvent(); } OnEnd.ReadBinary(reader); break; case "POCA": if (OnChange == null) { OnChange = new PackageEvent(); } OnChange.ReadBinary(reader); break; default: throw new Exception(); } } }
public Package(SimpleSubrecord <String> EditorID, PackageData Data, PackageLocation Location1, PackageLocation Location2, PackageScheduleData Schedule, PackageTarget Target1, List <Condition> Conditions, SimpleSubrecord <PackageIdleFlags> IdleFlags, SimpleSubrecord <Byte> IdleCount, SimpleSubrecord <Single> IdleTimerSetting, FormArray IdleAnimations, SimpleSubrecord <Byte[]> Unused, RecordReference CombatStyle, SubMarker EatMarker, SimpleSubrecord <UInt32> EscortDistance, SimpleSubrecord <UInt32> FollowDistance_StartLocation_TriggerRadius, SimpleSubrecord <NoYesByte> PatrolIsRepeatable, PackageUseWeaponData UseWeaponData, PackageTarget Target2, SubMarker UseItemMarker, SubMarker AmbushMarker, PackageDialogData DialogData, PackageLocation DummyIgnore, PackageEvent OnBegin, PackageEvent OnEnd, PackageEvent OnChange) { this.EditorID = EditorID; this.Data = Data; this.Schedule = Schedule; }
public override void ReadData(ESPReader reader, long dataEnd) { while (reader.BaseStream.Position < dataEnd) { string subTag = reader.PeekTag(); switch (subTag) { case "HEDR": if (FileHeader == null) { FileHeader = new PluginHeader(); } FileHeader.ReadBinary(reader); break; case "OFST": if (OffsetData == null) { OffsetData = new SimpleSubrecord <Byte[]>(); } OffsetData.ReadBinary(reader); break; case "DELE": if (DeletionsData == null) { DeletionsData = new SimpleSubrecord <Byte[]>(); } DeletionsData.ReadBinary(reader); break; case "CNAM": if (Author == null) { Author = new SimpleSubrecord <String>(); } Author.ReadBinary(reader); break; case "SNAM": if (Description == null) { Description = new SimpleSubrecord <String>(); } Description.ReadBinary(reader); break; case "MAST": if (MasterFiles == null) { MasterFiles = new List <MasterFileData>(); } MasterFileData tempMAST = new MasterFileData(); tempMAST.ReadBinary(reader); MasterFiles.Add(tempMAST); break; case "ONAM": if (OverriddenRecords == null) { OverriddenRecords = new FormArray(); } OverriddenRecords.ReadBinary(reader); break; case "SCRN": if (ScreenshotData == null) { ScreenshotData = new SimpleSubrecord <Byte[]>(); } ScreenshotData.ReadBinary(reader); break; default: throw new Exception(); } } }
public Header(PluginHeader FileHeader, SimpleSubrecord <Byte[]> OffsetData, SimpleSubrecord <Byte[]> DeletionsData, SimpleSubrecord <String> Author, SimpleSubrecord <String> Description, List <MasterFileData> MasterFiles, FormArray OverriddenRecords, SimpleSubrecord <Byte[]> ScreenshotData) { this.FileHeader = FileHeader; this.Author = Author; }
public override void ReadDataXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; if (ele.TryPathTo("FileHeader", false, out subEle)) { if (FileHeader == null) { FileHeader = new PluginHeader(); } FileHeader.ReadXML(subEle, master); } if (ele.TryPathTo("OffsetData", false, out subEle)) { if (OffsetData == null) { OffsetData = new SimpleSubrecord <Byte[]>(); } OffsetData.ReadXML(subEle, master); } if (ele.TryPathTo("DeletionsData", false, out subEle)) { if (DeletionsData == null) { DeletionsData = new SimpleSubrecord <Byte[]>(); } DeletionsData.ReadXML(subEle, master); } if (ele.TryPathTo("Author", false, out subEle)) { if (Author == null) { Author = new SimpleSubrecord <String>(); } Author.ReadXML(subEle, master); } if (ele.TryPathTo("Description", false, out subEle)) { if (Description == null) { Description = new SimpleSubrecord <String>(); } Description.ReadXML(subEle, master); } if (ele.TryPathTo("MasterFiles", false, out subEle)) { if (MasterFiles == null) { MasterFiles = new List <MasterFileData>(); } foreach (XElement e in subEle.Elements()) { MasterFileData tempMAST = new MasterFileData(); tempMAST.ReadXML(e, master); MasterFiles.Add(tempMAST); } } if (ele.TryPathTo("OverriddenRecords", false, out subEle)) { if (OverriddenRecords == null) { OverriddenRecords = new FormArray(); } OverriddenRecords.ReadXML(subEle, master); } if (ele.TryPathTo("ScreenshotData", false, out subEle)) { if (ScreenshotData == null) { ScreenshotData = new SimpleSubrecord <Byte[]>(); } ScreenshotData.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 "IDLF": if (IdleMarkerFlags == null) { IdleMarkerFlags = new SimpleSubrecord <IdleMarkerFlags>(); } IdleMarkerFlags.ReadBinary(reader); break; case "IDLC": if (AnimationCount == null) { AnimationCount = new SimpleSubrecord <Byte>(); } AnimationCount.ReadBinary(reader); break; case "IDLT": if (IdleTimer == null) { IdleTimer = new SimpleSubrecord <Single>(); } IdleTimer.ReadBinary(reader); break; case "IDLA": if (Animations == null) { Animations = new FormArray(); } Animations.ReadBinary(reader); break; default: throw new Exception(); } } }
public IdleMarker(SimpleSubrecord <String> EditorID, ObjectBounds ObjectBounds, SimpleSubrecord <IdleMarkerFlags> IdleMarkerFlags, SimpleSubrecord <Byte> AnimationCount, SimpleSubrecord <Single> IdleTimer, FormArray Animations) { this.EditorID = EditorID; this.ObjectBounds = ObjectBounds; this.IdleMarkerFlags = IdleMarkerFlags; }
public Race(SimpleSubrecord <String> EditorID, SimpleSubrecord <String> Name, SimpleSubrecord <String> Description, List <Relationship> Relationships, RaceData Data, RecordReference OlderRace, RecordReference YoungerRace, SubMarker UnknownMarker, RaceDefaultVoices DefaultVoices, RaceDefaultHairStyles DefaultHairStyles, RaceDefaultHairColors DefaultHairColors, SimpleSubrecord <Single> FaceGenMainClamp, SimpleSubrecord <Single> FaceGenFaceClamp, SimpleSubrecord <Byte[]> Unknown, RaceHeadData HeadData, RaceBodyData BodyData, FormArray Hairs, FormArray Eyes, FaceGenData MaleFaceGenData, FaceGenData FemaleFaceGenData) { this.EditorID = EditorID; this.Description = Description; this.Data = Data; this.UnknownMarker = UnknownMarker; this.DefaultVoices = DefaultVoices; this.DefaultHairStyles = DefaultHairStyles; this.DefaultHairColors = DefaultHairColors; this.FaceGenMainClamp = FaceGenMainClamp; this.FaceGenFaceClamp = FaceGenFaceClamp; this.Unknown = Unknown; this.HeadData = HeadData; this.BodyData = BodyData; this.Hairs = Hairs; this.Eyes = Eyes; this.MaleFaceGenData = MaleFaceGenData; this.FemaleFaceGenData = FemaleFaceGenData; }
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("Name", false, out subEle)) { if (Name == null) { Name = new SimpleSubrecord <String>(); } Name.ReadXML(subEle, master); } if (ele.TryPathTo("Description", false, out subEle)) { if (Description == null) { Description = new SimpleSubrecord <String>(); } Description.ReadXML(subEle, master); } if (ele.TryPathTo("Relationships", false, out subEle)) { if (Relationships == null) { Relationships = new List <Relationship>(); } foreach (XElement e in subEle.Elements()) { Relationship tempXNAM = new Relationship(); tempXNAM.ReadXML(e, master); Relationships.Add(tempXNAM); } } if (ele.TryPathTo("Data", false, out subEle)) { if (Data == null) { Data = new RaceData(); } Data.ReadXML(subEle, master); } if (ele.TryPathTo("Race/Older", false, out subEle)) { if (OlderRace == null) { OlderRace = new RecordReference(); } OlderRace.ReadXML(subEle, master); } if (ele.TryPathTo("Race/Younger", false, out subEle)) { if (YoungerRace == null) { YoungerRace = new RecordReference(); } YoungerRace.ReadXML(subEle, master); } if (ele.TryPathTo("UnknownMarker", false, out subEle)) { if (UnknownMarker == null) { UnknownMarker = new SubMarker(); } UnknownMarker.ReadXML(subEle, master); } if (ele.TryPathTo("Defaults/Voices", false, out subEle)) { if (DefaultVoices == null) { DefaultVoices = new RaceDefaultVoices(); } DefaultVoices.ReadXML(subEle, master); } if (ele.TryPathTo("Defaults/HairStyles", false, out subEle)) { if (DefaultHairStyles == null) { DefaultHairStyles = new RaceDefaultHairStyles(); } DefaultHairStyles.ReadXML(subEle, master); } if (ele.TryPathTo("Defaults/HairColors", false, out subEle)) { if (DefaultHairColors == null) { DefaultHairColors = new RaceDefaultHairColors(); } DefaultHairColors.ReadXML(subEle, master); } if (ele.TryPathTo("FaceGen/Clamps/Main", false, out subEle)) { if (FaceGenMainClamp == null) { FaceGenMainClamp = new SimpleSubrecord <Single>(); } FaceGenMainClamp.ReadXML(subEle, master); } if (ele.TryPathTo("FaceGen/Clamps/Face", false, out subEle)) { if (FaceGenFaceClamp == null) { FaceGenFaceClamp = new SimpleSubrecord <Single>(); } FaceGenFaceClamp.ReadXML(subEle, master); } if (ele.TryPathTo("Unknown", false, out subEle)) { if (Unknown == null) { Unknown = new SimpleSubrecord <Byte[]>(); } Unknown.ReadXML(subEle, master); } if (ele.TryPathTo("HeadData", false, out subEle)) { if (HeadData == null) { HeadData = new RaceHeadData(); } HeadData.ReadXML(subEle, master); } if (ele.TryPathTo("BodyData", false, out subEle)) { if (BodyData == null) { BodyData = new RaceBodyData(); } BodyData.ReadXML(subEle, master); } if (ele.TryPathTo("Hairs", false, out subEle)) { if (Hairs == null) { Hairs = new FormArray(); } Hairs.ReadXML(subEle, master); } if (ele.TryPathTo("Eyes", false, out subEle)) { if (Eyes == null) { Eyes = new FormArray(); } Eyes.ReadXML(subEle, master); } if (ele.TryPathTo("FaceGen/Male", false, out subEle)) { if (MaleFaceGenData == null) { MaleFaceGenData = new FaceGenData(); } MaleFaceGenData.ReadXML(subEle, master); } if (ele.TryPathTo("FaceGen/Female", false, out subEle)) { if (FemaleFaceGenData == null) { FemaleFaceGenData = new FaceGenData(); } FemaleFaceGenData.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 "FULL": if (Name == null) { Name = new SimpleSubrecord <String>(); } Name.ReadBinary(reader); break; case "DESC": if (Description == null) { Description = new SimpleSubrecord <String>(); } Description.ReadBinary(reader); break; case "XNAM": if (Relationships == null) { Relationships = new List <Relationship>(); } Relationship tempXNAM = new Relationship(); tempXNAM.ReadBinary(reader); Relationships.Add(tempXNAM); break; case "DATA": if (Data == null) { Data = new RaceData(); } Data.ReadBinary(reader); break; case "ONAM": if (OlderRace == null) { OlderRace = new RecordReference(); } OlderRace.ReadBinary(reader); break; case "YNAM": if (YoungerRace == null) { YoungerRace = new RecordReference(); } YoungerRace.ReadBinary(reader); break; case "NAM2": if (UnknownMarker == null) { UnknownMarker = new SubMarker(); } UnknownMarker.ReadBinary(reader); break; case "VTCK": if (DefaultVoices == null) { DefaultVoices = new RaceDefaultVoices(); } DefaultVoices.ReadBinary(reader); break; case "DNAM": if (DefaultHairStyles == null) { DefaultHairStyles = new RaceDefaultHairStyles(); } DefaultHairStyles.ReadBinary(reader); break; case "CNAM": if (DefaultHairColors == null) { DefaultHairColors = new RaceDefaultHairColors(); } DefaultHairColors.ReadBinary(reader); break; case "PNAM": if (FaceGenMainClamp == null) { FaceGenMainClamp = new SimpleSubrecord <Single>(); } FaceGenMainClamp.ReadBinary(reader); break; case "UNAM": if (FaceGenFaceClamp == null) { FaceGenFaceClamp = new SimpleSubrecord <Single>(); } FaceGenFaceClamp.ReadBinary(reader); break; case "ATTR": if (Unknown == null) { Unknown = new SimpleSubrecord <Byte[]>(); } Unknown.ReadBinary(reader); break; case "NAM0": if (HeadData == null) { HeadData = new RaceHeadData(); } HeadData.ReadBinary(reader); break; case "NAM1": if (BodyData == null) { BodyData = new RaceBodyData(); } BodyData.ReadBinary(reader); break; case "HNAM": if (Hairs == null) { Hairs = new FormArray(); } Hairs.ReadBinary(reader); break; case "ENAM": if (Eyes == null) { Eyes = new FormArray(); } Eyes.ReadBinary(reader); break; case "MNAM": if (MaleFaceGenData == null) { MaleFaceGenData = new FaceGenData(); } MaleFaceGenData.ReadBinary(reader); break; case "FNAM": if (FemaleFaceGenData == null) { FemaleFaceGenData = new FaceGenData(); } FemaleFaceGenData.ReadBinary(reader); break; default: throw new Exception(); } } }