Inheritance: DataContainer
        public override GlobalDataType BuildType(GlobalData globalData)
        {
            SkyrimBinaryReader br = CreateDataReader(globalData);

            MiscStats ms = new MiscStats();
            ms.count = br.ReadUInt32();
            ms.stats = new MiscStat[ms.count];

            for (int i = 0; i < ms.count; i++)
            {
                MiscStat m = new MiscStat();
                m.name = br.ReadWString();
                m.category = br.ReadByte();
                m.value = br.ReadInt32();

                ms.stats[i] = m;
            }

            return ms;
        }
 public override bool CanBuild(GlobalData globalData)
 {
     return true;
 }
 public override GlobalDataType BuildType(GlobalData globalData)
 {
     return new GlobalDataStub(globalData.type);
 }
 protected SkyrimBinaryReader CreateDataReader(GlobalData globalData)
 {
     return new SkyrimBinaryReader(new MemoryStream(globalData.data));
 }
 public abstract bool CanBuild(GlobalData globalData);
 public abstract GlobalDataType BuildType(GlobalData globalData);
 private GlobalDataType ParseGlobalData(GlobalData gd)
 {
     foreach (var factory in gtypeFactories)
     {
         if (factory.CanBuild(gd))
         {
             return factory.BuildType(gd);
         }
     }
     throw new ArgumentException("unknown global data type: " + gd.type);
 }
        private GlobalDataType[] ReadGlobalDataTable(int tableSize)
        {
            GlobalDataType[] gtab = new GlobalDataType[tableSize];
            for (int i = 0; i < tableSize; i++)
            {
                GlobalData gd = new GlobalData();
                gd.type = br.ReadUInt32();
                gd.length = br.ReadUInt32();
                gd.data = br.ReadBytes((int)gd.length);

                gtab[i] = ParseGlobalData(gd);
            }

            return gtab;
        }
 public override bool CanBuild(GlobalData globalData)
 {
     return globalData.type == 0;
 }