public override void Parse(GameBitBuffer buffer)
 {
     Field0 = new int[4];
     for(int i = 0;i < _Field0.Length;i++) _Field0[i] = buffer.ReadInt(32);
     snoLevelAreaOverrideForGizmoLocs = buffer.ReadInt(32);
     Field2 = new GizmoLocSet();
     Field2.Parse(buffer);
     Field3 = buffer.ReadInt(32);
     serSpawnPopulations = new SerializeData();
     serSpawnPopulations.Parse(buffer);
     //still checking variablearrays
     this.SpawnPopulations = new List<LevelAreaSpawnPopulation>( buffer.ReadInt(0) );
     for(int loop12 = 0; loop12 < _SpawnPopulations.Count; loop12++)
     {
         _SpawnPopulations[loop12] = new LevelAreaSpawnPopulation();
         _SpawnPopulations[loop12].Parse(buffer);
     }
 }
 public void FileRead(MpqFileStream stream, long offset)
 {
     stream.Position = offset + 0;
     Field0 = new int[4];
     for(int loop12=0; loop12 < 4; loop12++ )
     {
         int temp12_Field0;
         temp12_Field0 = stream.ReadValueS32();
         _Field0[loop12] = temp12_Field0;
     }
     stream.Position = offset + 16;
     snoLevelAreaOverrideForGizmoLocs = stream.ReadValueS32();
     stream.Position = offset + 24;
     Field2 = new GizmoLocSet();
     Field2.FileRead(stream, stream.Position);
     stream.Position = offset + 9176;
     Field3 = stream.ReadValueS32();
     stream.Position = offset + 9192;
     serSpawnPopulations = new SerializeData();
     serSpawnPopulations.FileRead(stream, stream.Position);
     stream.Position = offset + 9184;
     //still checking variablearrays
     SpawnPopulations = new List<LevelAreaSpawnPopulation>();
     for(int i = 0; i < (int)(serSpawnPopulations.Field1 / 120); i++)
     {
     stream.Position = serSpawnPopulations.Field0 + 16 + (120*i) ;
         LevelAreaSpawnPopulation temp12_SpawnPopulations;
         temp12_SpawnPopulations = new LevelAreaSpawnPopulation();
         temp12_SpawnPopulations.FileRead(stream, stream.Position);
         _SpawnPopulations.Add(temp12_SpawnPopulations);
     }
 }