public override void Parse(GameBitBuffer buffer)
 {
     serTexBackgrounds = new SerializeData();
     serTexBackgrounds.Parse(buffer);
     //still checking variablearrays
     this.TexBackgrounds = new List<BannerTexturePair>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _TexBackgrounds.Count; loop12++)
     {
         _TexBackgrounds[loop12] = new BannerTexturePair();
         _TexBackgrounds[loop12].Parse(buffer);
     }
     Field2 = buffer.ReadInt(32);
     serTexPatterns = new SerializeData();
     serTexPatterns.Parse(buffer);
     //still checking variablearrays
     this.TexPatterns = new List<BannerTexturePair>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _TexPatterns.Count; loop12++)
     {
         _TexPatterns[loop12] = new BannerTexturePair();
         _TexPatterns[loop12].Parse(buffer);
     }
     Field5 = buffer.ReadInt(32);
     serTexMainSigils = new SerializeData();
     serTexMainSigils.Parse(buffer);
     //still checking variablearrays
     this.TexMainSigils = new List<BannerTexturePair>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _TexMainSigils.Count; loop12++)
     {
         _TexMainSigils[loop12] = new BannerTexturePair();
         _TexMainSigils[loop12].Parse(buffer);
     }
     serTexVariantSigils = new SerializeData();
     serTexVariantSigils.Parse(buffer);
     //still checking variablearrays
     this.TexVariantSigils = new List<BannerTexturePair>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _TexVariantSigils.Count; loop12++)
     {
         _TexVariantSigils[loop12] = new BannerTexturePair();
         _TexVariantSigils[loop12].Parse(buffer);
     }
     Field10 = buffer.ReadInt(32);
     serTexSigilAccents = new SerializeData();
     serTexSigilAccents.Parse(buffer);
     //still checking variablearrays
     this.TexSigilAccents = new List<BannerTexturePair>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _TexSigilAccents.Count; loop12++)
     {
         _TexSigilAccents[loop12] = new BannerTexturePair();
         _TexSigilAccents[loop12].Parse(buffer);
     }
     Field13 = buffer.ReadInt(32);
     serColorSets = new SerializeData();
     serColorSets.Parse(buffer);
     //still checking variablearrays
     this.ColorSets = new List<BannerColorSet>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _ColorSets.Count; loop12++)
     {
         _ColorSets[loop12] = new BannerColorSet();
         _ColorSets[loop12].Parse(buffer);
     }
     serSigilPlacements = new SerializeData();
     serSigilPlacements.Parse(buffer);
     //still checking variablearrays
     this.SigilPlacements = new List<BannerSigilPlacement>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _SigilPlacements.Count; loop12++)
     {
         _SigilPlacements[loop12] = new BannerSigilPlacement();
         _SigilPlacements[loop12].Parse(buffer);
     }
     serActorBases = new SerializeData();
     serActorBases.Parse(buffer);
     //still checking variablearrays
     this.ActorBases = new List<int>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _ActorBases.Count; loop12++)
     {
         _ActorBases[loop12] = buffer.ReadInt(0);
     }
     serActorCaps = new SerializeData();
     serActorCaps.Parse(buffer);
     //still checking variablearrays
     this.ActorCaps = new List<int>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _ActorCaps.Count; loop12++)
     {
         _ActorCaps[loop12] = buffer.ReadInt(0);
     }
     serActorPoles = new SerializeData();
     serActorPoles.Parse(buffer);
     //still checking variablearrays
     this.ActorPoles = new List<int>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _ActorPoles.Count; loop12++)
     {
         _ActorPoles[loop12] = buffer.ReadInt(0);
     }
     serActorRibbons = new SerializeData();
     serActorRibbons.Parse(buffer);
     //still checking variablearrays
     this.ActorRibbons = new List<int>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _ActorRibbons.Count; loop12++)
     {
         _ActorRibbons[loop12] = buffer.ReadInt(0);
     }
     serEpicBannerDescriptions = new SerializeData();
     serEpicBannerDescriptions.Parse(buffer);
     //still checking variablearrays
     this.EpicBannerDescriptions = new List<EpicBannerDescription>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _EpicBannerDescriptions.Count; loop12++)
     {
         _EpicBannerDescriptions[loop12] = new EpicBannerDescription();
         _EpicBannerDescriptions[loop12].Parse(buffer);
     }
 }
 public void FileRead(MpqFileStream stream, long offset)
 {
     stream.Position = offset + 8;
     serTexBackgrounds = new SerializeData();
     serTexBackgrounds.FileRead(stream, stream.Position);
     stream.Position = offset + 0;
     //still checking variablearrays
     TexBackgrounds = new List<BannerTexturePair>();
     for(int i = 0; i < (int)(serTexBackgrounds.Field1 / 12); i++)
     {
     stream.Position = serTexBackgrounds.Field0 + 16 + (12*i) ;
         BannerTexturePair temp12_TexBackgrounds;
         temp12_TexBackgrounds = new BannerTexturePair();
         temp12_TexBackgrounds.FileRead(stream, stream.Position);
         _TexBackgrounds.Add(temp12_TexBackgrounds);
     }
     stream.Position = offset + 16;
     Field2 = stream.ReadValueS32();
     stream.Position = offset + 32;
     serTexPatterns = new SerializeData();
     serTexPatterns.FileRead(stream, stream.Position);
     stream.Position = offset + 24;
     //still checking variablearrays
     TexPatterns = new List<BannerTexturePair>();
     for(int i = 0; i < (int)(serTexPatterns.Field1 / 12); i++)
     {
     stream.Position = serTexPatterns.Field0 + 16 + (12*i) ;
         BannerTexturePair temp12_TexPatterns;
         temp12_TexPatterns = new BannerTexturePair();
         temp12_TexPatterns.FileRead(stream, stream.Position);
         _TexPatterns.Add(temp12_TexPatterns);
     }
     stream.Position = offset + 40;
     Field5 = stream.ReadValueS32();
     stream.Position = offset + 56;
     serTexMainSigils = new SerializeData();
     serTexMainSigils.FileRead(stream, stream.Position);
     stream.Position = offset + 48;
     //still checking variablearrays
     TexMainSigils = new List<BannerTexturePair>();
     for(int i = 0; i < (int)(serTexMainSigils.Field1 / 12); i++)
     {
     stream.Position = serTexMainSigils.Field0 + 16 + (12*i) ;
         BannerTexturePair temp12_TexMainSigils;
         temp12_TexMainSigils = new BannerTexturePair();
         temp12_TexMainSigils.FileRead(stream, stream.Position);
         _TexMainSigils.Add(temp12_TexMainSigils);
     }
     stream.Position = offset + 72;
     serTexVariantSigils = new SerializeData();
     serTexVariantSigils.FileRead(stream, stream.Position);
     stream.Position = offset + 64;
     //still checking variablearrays
     TexVariantSigils = new List<BannerTexturePair>();
     for(int i = 0; i < (int)(serTexVariantSigils.Field1 / 12); i++)
     {
     stream.Position = serTexVariantSigils.Field0 + 16 + (12*i) ;
         BannerTexturePair temp12_TexVariantSigils;
         temp12_TexVariantSigils = new BannerTexturePair();
         temp12_TexVariantSigils.FileRead(stream, stream.Position);
         _TexVariantSigils.Add(temp12_TexVariantSigils);
     }
     stream.Position = offset + 80;
     Field10 = stream.ReadValueS32();
     stream.Position = offset + 96;
     serTexSigilAccents = new SerializeData();
     serTexSigilAccents.FileRead(stream, stream.Position);
     stream.Position = offset + 88;
     //still checking variablearrays
     TexSigilAccents = new List<BannerTexturePair>();
     for(int i = 0; i < (int)(serTexSigilAccents.Field1 / 12); i++)
     {
     stream.Position = serTexSigilAccents.Field0 + 16 + (12*i) ;
         BannerTexturePair temp12_TexSigilAccents;
         temp12_TexSigilAccents = new BannerTexturePair();
         temp12_TexSigilAccents.FileRead(stream, stream.Position);
         _TexSigilAccents.Add(temp12_TexSigilAccents);
     }
     stream.Position = offset + 104;
     Field13 = stream.ReadValueS32();
     stream.Position = offset + 120;
     serColorSets = new SerializeData();
     serColorSets.FileRead(stream, stream.Position);
     stream.Position = offset + 112;
     //still checking variablearrays
     ColorSets = new List<BannerColorSet>();
     for(int i = 0; i < (int)(serColorSets.Field1 / 84); i++)
     {
     stream.Position = serColorSets.Field0 + 16 + (84*i) ;
         BannerColorSet temp12_ColorSets;
         temp12_ColorSets = new BannerColorSet();
         temp12_ColorSets.FileRead(stream, stream.Position);
         _ColorSets.Add(temp12_ColorSets);
     }
     stream.Position = offset + 136;
     serSigilPlacements = new SerializeData();
     serSigilPlacements.FileRead(stream, stream.Position);
     stream.Position = offset + 128;
     //still checking variablearrays
     SigilPlacements = new List<BannerSigilPlacement>();
     for(int i = 0; i < (int)(serSigilPlacements.Field1 / 68); i++)
     {
     stream.Position = serSigilPlacements.Field0 + 16 + (68*i) ;
         BannerSigilPlacement temp12_SigilPlacements;
         temp12_SigilPlacements = new BannerSigilPlacement();
         temp12_SigilPlacements.FileRead(stream, stream.Position);
         _SigilPlacements.Add(temp12_SigilPlacements);
     }
     stream.Position = offset + 152;
     serActorBases = new SerializeData();
     serActorBases.FileRead(stream, stream.Position);
     stream.Position = offset + 144;
     //still checking variablearrays
     ActorBases = new List<int>();
     for(int i = 0; i < (int)(serActorBases.Field1 / 4); i++)
     {
     stream.Position = serActorBases.Field0 + 16 + (4*i) ;
         int temp12_ActorBases;
         temp12_ActorBases = stream.ReadValueS32();
         _ActorBases.Add(temp12_ActorBases);
     }
     stream.Position = offset + 168;
     serActorCaps = new SerializeData();
     serActorCaps.FileRead(stream, stream.Position);
     stream.Position = offset + 160;
     //still checking variablearrays
     ActorCaps = new List<int>();
     for(int i = 0; i < (int)(serActorCaps.Field1 / 4); i++)
     {
     stream.Position = serActorCaps.Field0 + 16 + (4*i) ;
         int temp12_ActorCaps;
         temp12_ActorCaps = stream.ReadValueS32();
         _ActorCaps.Add(temp12_ActorCaps);
     }
     stream.Position = offset + 184;
     serActorPoles = new SerializeData();
     serActorPoles.FileRead(stream, stream.Position);
     stream.Position = offset + 176;
     //still checking variablearrays
     ActorPoles = new List<int>();
     for(int i = 0; i < (int)(serActorPoles.Field1 / 4); i++)
     {
     stream.Position = serActorPoles.Field0 + 16 + (4*i) ;
         int temp12_ActorPoles;
         temp12_ActorPoles = stream.ReadValueS32();
         _ActorPoles.Add(temp12_ActorPoles);
     }
     stream.Position = offset + 200;
     serActorRibbons = new SerializeData();
     serActorRibbons.FileRead(stream, stream.Position);
     stream.Position = offset + 192;
     //still checking variablearrays
     ActorRibbons = new List<int>();
     for(int i = 0; i < (int)(serActorRibbons.Field1 / 4); i++)
     {
     stream.Position = serActorRibbons.Field0 + 16 + (4*i) ;
         int temp12_ActorRibbons;
         temp12_ActorRibbons = stream.ReadValueS32();
         _ActorRibbons.Add(temp12_ActorRibbons);
     }
     stream.Position = offset + 216;
     serEpicBannerDescriptions = new SerializeData();
     serEpicBannerDescriptions.FileRead(stream, stream.Position);
     stream.Position = offset + 208;
     //still checking variablearrays
     EpicBannerDescriptions = new List<EpicBannerDescription>();
     for(int i = 0; i < (int)(serEpicBannerDescriptions.Field1 / 148); i++)
     {
     stream.Position = serEpicBannerDescriptions.Field0 + 16 + (148*i) ;
         EpicBannerDescription temp12_EpicBannerDescriptions;
         temp12_EpicBannerDescriptions = new EpicBannerDescription();
         temp12_EpicBannerDescriptions.FileRead(stream, stream.Position);
         _EpicBannerDescriptions.Add(temp12_EpicBannerDescriptions);
     }
 }