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 "ACBS": if (BaseStats == null) { BaseStats = new NPCBaseStats(); } BaseStats.ReadBinary(reader); break; case "SNAM": if (Factions == null) { Factions = new List <FactionMembership>(); } FactionMembership tempSNAM = new FactionMembership(); tempSNAM.ReadBinary(reader); Factions.Add(tempSNAM); break; case "INAM": if (DeathItem == null) { DeathItem = new RecordReference(); } DeathItem.ReadBinary(reader); break; case "VTCK": if (VoiceType == null) { VoiceType = new RecordReference(); } VoiceType.ReadBinary(reader); break; case "TPLT": if (Template == null) { Template = new RecordReference(); } Template.ReadBinary(reader); break; case "RNAM": if (Race == null) { Race = new RecordReference(); } Race.ReadBinary(reader); break; case "SPLO": if (ActorEffects == null) { ActorEffects = new List <RecordReference>(); } RecordReference tempSPLO = new RecordReference(); tempSPLO.ReadBinary(reader); ActorEffects.Add(tempSPLO); break; case "EITM": if (UnarmedAttackEffect == null) { UnarmedAttackEffect = new RecordReference(); } UnarmedAttackEffect.ReadBinary(reader); break; case "EAMT": if (UnarmedAttackAnimation == null) { UnarmedAttackAnimation = new SimpleSubrecord <UInt16>(); } UnarmedAttackAnimation.ReadBinary(reader); break; case "DEST": if (Destructable == null) { Destructable = new Destructable(); } Destructable.ReadBinary(reader); break; case "SCRI": if (Script == null) { Script = new RecordReference(); } Script.ReadBinary(reader); break; case "CNTO": if (Contents == null) { Contents = new List <InventoryItem>(); } InventoryItem tempCNTO = new InventoryItem(); tempCNTO.ReadBinary(reader); Contents.Add(tempCNTO); break; case "AIDT": if (AIData == null) { AIData = new AIData(); } AIData.ReadBinary(reader); break; case "PKID": if (Packages == null) { Packages = new List <RecordReference>(); } RecordReference tempPKID = new RecordReference(); tempPKID.ReadBinary(reader); Packages.Add(tempPKID); break; case "CNAM": if (Class == null) { Class = new RecordReference(); } Class.ReadBinary(reader); break; case "DATA": if (Data == null) { Data = new NPCData(); } Data.ReadBinary(reader); break; case "DNAM": if (Skills == null) { Skills = new NPCSkills(); } Skills.ReadBinary(reader); break; case "PNAM": if (HeadParts == null) { HeadParts = new List <RecordReference>(); } RecordReference tempPNAM = new RecordReference(); tempPNAM.ReadBinary(reader); HeadParts.Add(tempPNAM); break; case "HNAM": if (HairType == null) { HairType = new RecordReference(); } HairType.ReadBinary(reader); break; case "LNAM": if (HairLength == null) { HairLength = new SimpleSubrecord <Single>(); } HairLength.ReadBinary(reader); break; case "ENAM": if (Eyes == null) { Eyes = new RecordReference(); } Eyes.ReadBinary(reader); break; case "HCLR": if (HairColor == null) { HairColor = new SimpleSubrecord <Color>(); } HairColor.ReadBinary(reader); break; case "ZNAM": if (CombatStyle == null) { CombatStyle = new RecordReference(); } CombatStyle.ReadBinary(reader); break; case "NAM4": if (ImpactMaterialType == null) { ImpactMaterialType = new SimpleSubrecord <MaterialTypeUInt>(); } ImpactMaterialType.ReadBinary(reader); break; case "FGGS": if (FaceGenGeometrySymmetric == null) { FaceGenGeometrySymmetric = new SimpleSubrecord <Byte[]>(); } FaceGenGeometrySymmetric.ReadBinary(reader); break; case "FGGA": if (FaceGenGeometryAsymmetric == null) { FaceGenGeometryAsymmetric = new SimpleSubrecord <Byte[]>(); } FaceGenGeometryAsymmetric.ReadBinary(reader); break; case "FGTS": if (FaceGenTexture == null) { FaceGenTexture = new SimpleSubrecord <Byte[]>(); } FaceGenTexture.ReadBinary(reader); break; case "NAM5": if (Unknown == null) { Unknown = new SimpleSubrecord <UInt16>(); } Unknown.ReadBinary(reader); break; case "NAM6": if (Height == null) { Height = new SimpleSubrecord <Single>(); } Height.ReadBinary(reader); break; case "NAM7": if (Weight == null) { Weight = new SimpleSubrecord <Single>(); } Weight.ReadBinary(reader); break; default: throw new Exception(); } } }
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(); } } }