Пример #1
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("ImageSpaceModifier/Sunrise", false, out subEle))
            {
                if (ImageSpaceModifierSunrise == null)
                {
                    ImageSpaceModifierSunrise = new RecordReference();
                }

                ImageSpaceModifierSunrise.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ImageSpaceModifier/Day", false, out subEle))
            {
                if (ImageSpaceModifierDay == null)
                {
                    ImageSpaceModifierDay = new RecordReference();
                }

                ImageSpaceModifierDay.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ImageSpaceModifier/Sunset", false, out subEle))
            {
                if (ImageSpaceModifierSunset == null)
                {
                    ImageSpaceModifierSunset = new RecordReference();
                }

                ImageSpaceModifierSunset.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ImageSpaceModifier/Night", false, out subEle))
            {
                if (ImageSpaceModifierNight == null)
                {
                    ImageSpaceModifierNight = new RecordReference();
                }

                ImageSpaceModifierNight.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ImageSpaceModifier/HighNoon", false, out subEle))
            {
                if (ImageSpaceModifierHighNoon == null)
                {
                    ImageSpaceModifierHighNoon = new RecordReference();
                }

                ImageSpaceModifierHighNoon.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ImageSpaceModifier/Midnight", false, out subEle))
            {
                if (ImageSpaceModifierMidnight == null)
                {
                    ImageSpaceModifierMidnight = new RecordReference();
                }

                ImageSpaceModifierMidnight.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("CloudTexture/Layer0", false, out subEle))
            {
                if (CloudTextureLayer0 == null)
                {
                    CloudTextureLayer0 = new SimpleSubrecord <String>();
                }

                CloudTextureLayer0.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("CloudTexture/Layer1", false, out subEle))
            {
                if (CloudTextureLayer1 == null)
                {
                    CloudTextureLayer1 = new SimpleSubrecord <String>();
                }

                CloudTextureLayer1.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("CloudTexture/Layer2", false, out subEle))
            {
                if (CloudTextureLayer2 == null)
                {
                    CloudTextureLayer2 = new SimpleSubrecord <String>();
                }

                CloudTextureLayer2.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("CloudTexture/Layer3", false, out subEle))
            {
                if (CloudTextureLayer3 == null)
                {
                    CloudTextureLayer3 = new SimpleSubrecord <String>();
                }

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

                Model.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Unknown", false, out subEle))
            {
                if (Unknown == null)
                {
                    Unknown = new SimpleSubrecord <Byte[]>();
                }

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

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

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

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

                WeatherFogDistance.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Unused", false, out subEle))
            {
                if (Unused == null)
                {
                    Unused = new SimpleSubrecord <Byte[]>();
                }

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

                Data.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Sounds", false, out subEle))
            {
                if (Sounds == null)
                {
                    Sounds = new List <WeatherSound>();
                }

                foreach (XElement e in subEle.Elements())
                {
                    WeatherSound tempSNAM = new WeatherSound();
                    tempSNAM.ReadXML(e, master);
                    Sounds.Add(tempSNAM);
                }
            }
        }
Пример #2
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 "aIAD":
                    if (ImageSpaceModifierSunrise == null)
                    {
                        ImageSpaceModifierSunrise = new RecordReference();
                    }

                    ImageSpaceModifierSunrise.ReadBinary(reader);
                    break;

                case "bIAD":
                    if (ImageSpaceModifierDay == null)
                    {
                        ImageSpaceModifierDay = new RecordReference();
                    }

                    ImageSpaceModifierDay.ReadBinary(reader);
                    break;

                case "cIAD":
                    if (ImageSpaceModifierSunset == null)
                    {
                        ImageSpaceModifierSunset = new RecordReference();
                    }

                    ImageSpaceModifierSunset.ReadBinary(reader);
                    break;

                case "dIAD":
                    if (ImageSpaceModifierNight == null)
                    {
                        ImageSpaceModifierNight = new RecordReference();
                    }

                    ImageSpaceModifierNight.ReadBinary(reader);
                    break;

                case "eIAD":
                    if (ImageSpaceModifierHighNoon == null)
                    {
                        ImageSpaceModifierHighNoon = new RecordReference();
                    }

                    ImageSpaceModifierHighNoon.ReadBinary(reader);
                    break;

                case "fIAD":
                    if (ImageSpaceModifierMidnight == null)
                    {
                        ImageSpaceModifierMidnight = new RecordReference();
                    }

                    ImageSpaceModifierMidnight.ReadBinary(reader);
                    break;

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

                    CloudTextureLayer0.ReadBinary(reader);
                    break;

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

                    CloudTextureLayer1.ReadBinary(reader);
                    break;

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

                    CloudTextureLayer2.ReadBinary(reader);
                    break;

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

                    CloudTextureLayer3.ReadBinary(reader);
                    break;

                case "MODL":
                    if (Model == null)
                    {
                        Model = new Model();
                    }

                    Model.ReadBinary(reader);
                    break;

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

                    Unknown.ReadBinary(reader);
                    break;

                case "ONAM":
                    if (CloudLayerSpeed == null)
                    {
                        CloudLayerSpeed = new CloudLayerSpeed();
                    }

                    CloudLayerSpeed.ReadBinary(reader);
                    break;

                case "PNAM":
                    if (CloudLayerColors == null)
                    {
                        CloudLayerColors = new CloudLayerColors();
                    }

                    CloudLayerColors.ReadBinary(reader);
                    break;

                case "NAM0":
                    if (EnvironmentalColors == null)
                    {
                        EnvironmentalColors = new EnvironmentalColors();
                    }

                    EnvironmentalColors.ReadBinary(reader);
                    break;

                case "FNAM":
                    if (WeatherFogDistance == null)
                    {
                        WeatherFogDistance = new WeatherFogDistance();
                    }

                    WeatherFogDistance.ReadBinary(reader);
                    break;

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

                    Unused.ReadBinary(reader);
                    break;

                case "DATA":
                    if (Data == null)
                    {
                        Data = new WeatherData();
                    }

                    Data.ReadBinary(reader);
                    break;

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

                    WeatherSound tempSNAM = new WeatherSound();
                    tempSNAM.ReadBinary(reader);
                    Sounds.Add(tempSNAM);
                    break;

                default:
                    throw new Exception();
                }
            }
        }