public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
     Field2 = buffer.ReadFloat32();
     Field3 = buffer.ReadFloat32();
     Field4 = buffer.ReadFloat32();
     Field5 = buffer.ReadInt(32);
     Field6 = buffer.ReadFloat32();
     Field7 = buffer.ReadFloat32();
     Field8 = buffer.ReadFloat32();
     Field9 = buffer.ReadFloat32();
     Field10 = buffer.ReadFloat32();
     Field11 = buffer.ReadFloat32();
     Field12 = buffer.ReadFloat32();
     Field13 = buffer.ReadInt(32);
     serPermutations = new SerializeData();
     serPermutations.Parse(buffer);
     //still checking variablearrays
     this.Permutations = new List<SoundPermutation>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _Permutations.Count; loop12++)
     {
         _Permutations[loop12] = new SoundPermutation();
         _Permutations[loop12].Parse(buffer);
     }
     Field16 = buffer.ReadInt(32);
     Field17 = buffer.ReadInt(32);
     Field18 = buffer.ReadInt(32);
     serDspEffects = new SerializeData();
     serDspEffects.Parse(buffer);
     //still checking variablearrays
     this.DspEffects = new List<DspEffect>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _DspEffects.Count; loop12++)
     {
         _DspEffects[loop12] = new DspEffect();
         _DspEffects[loop12].Parse(buffer);
     }
 }
 public void FileRead(MpqFileStream stream, long offset)
 {
     stream.Position = offset + 12;
     Field0 = stream.ReadValueS32();
     stream.Position = offset + 16;
     Field1 = stream.ReadValueS32();
     stream.Position = offset + 20;
     Field2 = stream.ReadValueF32();
     stream.Position = offset + 24;
     Field3 = stream.ReadValueF32();
     stream.Position = offset + 28;
     Field4 = stream.ReadValueF32();
     stream.Position = offset + 32;
     Field5 = stream.ReadValueS32();
     stream.Position = offset + 36;
     Field6 = stream.ReadValueF32();
     stream.Position = offset + 40;
     Field7 = stream.ReadValueF32();
     stream.Position = offset + 44;
     Field8 = stream.ReadValueF32();
     stream.Position = offset + 48;
     Field9 = stream.ReadValueF32();
     stream.Position = offset + 52;
     Field10 = stream.ReadValueF32();
     stream.Position = offset + 56;
     Field11 = stream.ReadValueF32();
     stream.Position = offset + 60;
     Field12 = stream.ReadValueF32();
     stream.Position = offset + 72;
     Field13 = stream.ReadValueS32();
     stream.Position = offset + 64;
     serPermutations = new SerializeData();
     serPermutations.FileRead(stream, stream.Position);
     stream.Position = offset + 76;
     //still checking variablearrays
     Permutations = new List<SoundPermutation>();
     for(int i = 0; i < (int)(serPermutations.Field1 / 172); i++)
     {
     stream.Position = serPermutations.Field0 + 16 + (172*i) ;
         SoundPermutation temp12_Permutations;
         temp12_Permutations = new SoundPermutation();
         temp12_Permutations.FileRead(stream, stream.Position);
         _Permutations.Add(temp12_Permutations);
     }
     stream.Position = offset + 80;
     Field16 = stream.ReadValueS32();
     stream.Position = offset + 84;
     Field17 = stream.ReadValueS32();
     stream.Position = offset + 100;
     Field18 = stream.ReadValueS32();
     stream.Position = offset + 92;
     serDspEffects = new SerializeData();
     serDspEffects.FileRead(stream, stream.Position);
     stream.Position = offset + 88;
     //still checking variablearrays
     DspEffects = new List<DspEffect>();
     for(int i = 0; i < (int)(serDspEffects.Field1 / 136); i++)
     {
     stream.Position = serDspEffects.Field0 + 16 + (136*i) ;
         DspEffect temp12_DspEffects;
         temp12_DspEffects = new DspEffect();
         temp12_DspEffects.FileRead(stream, stream.Position);
         _DspEffects.Add(temp12_DspEffects);
     }
 }