Ejemplo n.º 1
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 "OBND":
                    if (ObjectBounds == null)
                    {
                        ObjectBounds = new ObjectBounds();
                    }

                    ObjectBounds.ReadBinary(reader);
                    break;

                case "LVLD":
                    if (ChanceNone == null)
                    {
                        ChanceNone = new SimpleSubrecord <Byte>();
                    }

                    ChanceNone.ReadBinary(reader);
                    break;

                case "LVLF":
                    if (LeveledObjectFlags == null)
                    {
                        LeveledObjectFlags = new SimpleSubrecord <LeveledListFlags>();
                    }

                    LeveledObjectFlags.ReadBinary(reader);
                    break;

                case "LVLO":
                    if (LeveledList == null)
                    {
                        LeveledList = new List <LeveledListEntry>();
                    }

                    LeveledListEntry tempLVLO = new LeveledListEntry();
                    tempLVLO.ReadBinary(reader);
                    LeveledList.Add(tempLVLO);
                    break;

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

                    Model.ReadBinary(reader);
                    break;

                default:
                    throw new Exception();
                }
            }
        }
Ejemplo n.º 2
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("ObjectBounds", false, out subEle))
            {
                if (ObjectBounds == null)
                {
                    ObjectBounds = new ObjectBounds();
                }

                ObjectBounds.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ChanceNone", false, out subEle))
            {
                if (ChanceNone == null)
                {
                    ChanceNone = new SimpleSubrecord <Byte>();
                }

                ChanceNone.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("LeveledObjectFlags", false, out subEle))
            {
                if (LeveledObjectFlags == null)
                {
                    LeveledObjectFlags = new SimpleSubrecord <LeveledListFlags>();
                }

                LeveledObjectFlags.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("LeveledList", false, out subEle))
            {
                if (LeveledList == null)
                {
                    LeveledList = new List <LeveledListEntry>();
                }

                foreach (XElement e in subEle.Elements())
                {
                    LeveledListEntry tempLVLO = new LeveledListEntry();
                    tempLVLO.ReadXML(e, master);
                    LeveledList.Add(tempLVLO);
                }
            }
            if (ele.TryPathTo("Model", false, out subEle))
            {
                if (Model == null)
                {
                    Model = new Model();
                }

                Model.ReadXML(subEle, master);
            }
        }