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 "NAM1": if (Type == null) { Type = new SimpleSubrecord <MediaSetType>(); } Type.ReadBinary(reader); break; case "NAM2": if (Loop_Battle_DayOuter == null) { Loop_Battle_DayOuter = new SimpleSubrecord <String>(); } Loop_Battle_DayOuter.ReadBinary(reader); break; case "NAM3": if (Explore_DayMiddle == null) { Explore_DayMiddle = new SimpleSubrecord <String>(); } Explore_DayMiddle.ReadBinary(reader); break; case "NAM4": if (Suspense_DayInner == null) { Suspense_DayInner = new SimpleSubrecord <String>(); } Suspense_DayInner.ReadBinary(reader); break; case "NAM5": if (NightOuter == null) { NightOuter = new SimpleSubrecord <String>(); } NightOuter.ReadBinary(reader); break; case "NAM6": if (NightMiddle == null) { NightMiddle = new SimpleSubrecord <String>(); } NightMiddle.ReadBinary(reader); break; case "NAM7": if (NightInner == null) { NightInner = new SimpleSubrecord <String>(); } NightInner.ReadBinary(reader); break; case "NAM8": if (DecibelLoop_Battle_DayOuter == null) { DecibelLoop_Battle_DayOuter = new SimpleSubrecord <Single>(); } DecibelLoop_Battle_DayOuter.ReadBinary(reader); break; case "NAM9": if (DecibelExplore_DayMiddle == null) { DecibelExplore_DayMiddle = new SimpleSubrecord <Single>(); } DecibelExplore_DayMiddle.ReadBinary(reader); break; case "NAM0": if (DecibelSuspense_DayInner == null) { DecibelSuspense_DayInner = new SimpleSubrecord <Single>(); } DecibelSuspense_DayInner.ReadBinary(reader); break; case "ANAM": if (DecibelNightOuter == null) { DecibelNightOuter = new SimpleSubrecord <Single>(); } DecibelNightOuter.ReadBinary(reader); break; case "BNAM": if (DecibelNightMiddle == null) { DecibelNightMiddle = new SimpleSubrecord <Single>(); } DecibelNightMiddle.ReadBinary(reader); break; case "CNAM": if (DecibelNightInner == null) { DecibelNightInner = new SimpleSubrecord <Single>(); } DecibelNightInner.ReadBinary(reader); break; case "JNAM": if (DayOuterBoundary == null) { DayOuterBoundary = new SimpleSubrecord <Single>(); } DayOuterBoundary.ReadBinary(reader); break; case "KNAM": if (DayMiddleBoundary == null) { DayMiddleBoundary = new SimpleSubrecord <Single>(); } DayMiddleBoundary.ReadBinary(reader); break; case "LNAM": if (DayInnerBoundary == null) { DayInnerBoundary = new SimpleSubrecord <Single>(); } DayInnerBoundary.ReadBinary(reader); break; case "MNAM": if (NightOuterBoundary == null) { NightOuterBoundary = new SimpleSubrecord <Single>(); } NightOuterBoundary.ReadBinary(reader); break; case "NNAM": if (NightMiddleBoundary == null) { NightMiddleBoundary = new SimpleSubrecord <Single>(); } NightMiddleBoundary.ReadBinary(reader); break; case "ONAM": if (NightInnerBoundary == null) { NightInnerBoundary = new SimpleSubrecord <Single>(); } NightInnerBoundary.ReadBinary(reader); break; case "PNAM": if (EnableFlags == null) { EnableFlags = new SimpleSubrecord <MediaSetEnableFlags>(); } EnableFlags.ReadBinary(reader); break; case "DNAM": if (WaitTime_MinTimeOn_DaytimeMin == null) { WaitTime_MinTimeOn_DaytimeMin = new SimpleSubrecord <Single>(); } WaitTime_MinTimeOn_DaytimeMin.ReadBinary(reader); break; case "ENAM": if (LoopFadeOut_LoopingRandomCrossfadeOverlap_NighttimeMin == null) { LoopFadeOut_LoopingRandomCrossfadeOverlap_NighttimeMin = new SimpleSubrecord <Single>(); } LoopFadeOut_LoopingRandomCrossfadeOverlap_NighttimeMin.ReadBinary(reader); break; case "FNAM": if (RecoveryTime_LayerCrossfadeTime_DaytimeMax == null) { RecoveryTime_LayerCrossfadeTime_DaytimeMax = new SimpleSubrecord <Single>(); } RecoveryTime_LayerCrossfadeTime_DaytimeMax.ReadBinary(reader); break; case "GNAM": if (NighttimeMax == null) { NighttimeMax = new SimpleSubrecord <Single>(); } NighttimeMax.ReadBinary(reader); break; case "HNAM": if (Intro_Daytime == null) { Intro_Daytime = new RecordReference(); } Intro_Daytime.ReadBinary(reader); break; case "INAM": if (Outro_Nighttime == null) { Outro_Nighttime = new RecordReference(); } Outro_Nighttime.ReadBinary(reader); break; case "DATA": if (Unknown == null) { Unknown = new SimpleSubrecord <Byte[]>(); } Unknown.ReadBinary(reader); break; default: throw new Exception(); } } }