public override void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     Field1 = buffer.ReadInt(32);
     Class = new int[5];
     for(int i = 0;i < _Class.Length;i++) _Class[i] = buffer.ReadInt(32);
     Difficulty = new int[4];
     for(int i = 0;i < _Difficulty.Length;i++) _Difficulty[i] = buffer.ReadInt(32);
     LoreCondition = new LoreSubcondition[3];
     for(int i = 0;i < _LoreCondition.Length;i++)
     {
         _LoreCondition[i] = new LoreSubcondition();
         _LoreCondition[i].Parse(buffer);
     }
     QuestCondition = new QuestSubcondition[3];
     for(int i = 0;i < _QuestCondition.Length;i++)
     {
         _QuestCondition[i] = new QuestSubcondition();
         _QuestCondition[i].Parse(buffer);
     }
     ItemCondition = new ItemSubcondition[3];
     for(int i = 0;i < _ItemCondition.Length;i++)
     {
         _ItemCondition[i] = new ItemSubcondition();
         _ItemCondition[i].Parse(buffer);
     }
     Field7 = buffer.ReadInt(32);
     Field8 = buffer.ReadInt(32);
     Field9 = buffer.ReadInt(32);
     Field10 = buffer.ReadInt(32);
     Field11 = buffer.ReadInt(32);
     Field12 = buffer.ReadInt(32);
     SNOCurrentWorld = buffer.ReadInt(32);
     SNOCurrentLevelArea = buffer.ReadInt(32);
     SNOQuestRange = buffer.ReadInt(32);
     FollowerCondition = new FollowerSubcondition();
     FollowerCondition.Parse(buffer);
     LabelCondition = new LabelSubcondition[3];
     for(int i = 0;i < _LabelCondition.Length;i++)
     {
         _LabelCondition[i] = new LabelSubcondition();
         _LabelCondition[i].Parse(buffer);
     }
     SkillCondition = new SkillSubcondition[3];
     for(int i = 0;i < _SkillCondition.Length;i++)
     {
         _SkillCondition[i] = new SkillSubcondition();
         _SkillCondition[i].Parse(buffer);
     }
     MonsterCondition = new MonsterSubcondition[3];
     for(int i = 0;i < _MonsterCondition.Length;i++)
     {
         _MonsterCondition[i] = new MonsterSubcondition();
         _MonsterCondition[i].Parse(buffer);
     }
     GameFlagCondition = new GameFlagSubcondition[3];
     for(int i = 0;i < _GameFlagCondition.Length;i++)
     {
         _GameFlagCondition[i] = new GameFlagSubcondition();
         _GameFlagCondition[i].Parse(buffer);
     }
     PlayerFlagCondition = new PlayerFlagSubcondition[3];
     for(int i = 0;i < _PlayerFlagCondition.Length;i++)
     {
         _PlayerFlagCondition[i] = new PlayerFlagSubcondition();
         _PlayerFlagCondition[i].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;
     Class = new int[5];
     for(int loop12=0; loop12 < 5; loop12++ )
     {
         int temp12_Class;
         temp12_Class = stream.ReadValueS32();
         _Class[loop12] = temp12_Class;
     }
     stream.Position = offset + 40;
     Difficulty = new int[4];
     for(int loop12=0; loop12 < 4; loop12++ )
     {
         int temp12_Difficulty;
         temp12_Difficulty = stream.ReadValueS32();
         _Difficulty[loop12] = temp12_Difficulty;
     }
     stream.Position = offset + 56;
     LoreCondition = new LoreSubcondition[3];
     for(int loop12=0; loop12 < 3; loop12++ )
     {
         LoreSubcondition temp12_LoreCondition;
         temp12_LoreCondition = new LoreSubcondition();
         temp12_LoreCondition.FileRead(stream, stream.Position);
         _LoreCondition[loop12] = temp12_LoreCondition;
     }
     stream.Position = offset + 80;
     QuestCondition = new QuestSubcondition[3];
     for(int loop12=0; loop12 < 3; loop12++ )
     {
         QuestSubcondition temp12_QuestCondition;
         temp12_QuestCondition = new QuestSubcondition();
         temp12_QuestCondition.FileRead(stream, stream.Position);
         _QuestCondition[loop12] = temp12_QuestCondition;
     }
     stream.Position = offset + 128;
     ItemCondition = new ItemSubcondition[3];
     for(int loop12=0; loop12 < 3; loop12++ )
     {
         ItemSubcondition temp12_ItemCondition;
         temp12_ItemCondition = new ItemSubcondition();
         temp12_ItemCondition.FileRead(stream, stream.Position);
         _ItemCondition[loop12] = temp12_ItemCondition;
     }
     stream.Position = offset + 176;
     Field7 = stream.ReadValueS32();
     stream.Position = offset + 180;
     Field8 = stream.ReadValueS32();
     stream.Position = offset + 188;
     Field9 = stream.ReadValueS32();
     stream.Position = offset + 192;
     Field10 = stream.ReadValueS32();
     stream.Position = offset + 196;
     Field11 = stream.ReadValueS32();
     stream.Position = offset + 200;
     Field12 = stream.ReadValueS32();
     stream.Position = offset + 204;
     SNOCurrentWorld = stream.ReadValueS32();
     stream.Position = offset + 208;
     SNOCurrentLevelArea = stream.ReadValueS32();
     stream.Position = offset + 212;
     SNOQuestRange = stream.ReadValueS32();
     stream.Position = offset + 216;
     FollowerCondition = new FollowerSubcondition();
     FollowerCondition.FileRead(stream, stream.Position);
     stream.Position = offset + 224;
     LabelCondition = new LabelSubcondition[3];
     for(int loop12=0; loop12 < 3; loop12++ )
     {
         LabelSubcondition temp12_LabelCondition;
         temp12_LabelCondition = new LabelSubcondition();
         temp12_LabelCondition.FileRead(stream, stream.Position);
         _LabelCondition[loop12] = temp12_LabelCondition;
     }
     stream.Position = offset + 248;
     SkillCondition = new SkillSubcondition[3];
     for(int loop12=0; loop12 < 3; loop12++ )
     {
         SkillSubcondition temp12_SkillCondition;
         temp12_SkillCondition = new SkillSubcondition();
         temp12_SkillCondition.FileRead(stream, stream.Position);
         _SkillCondition[loop12] = temp12_SkillCondition;
     }
     stream.Position = offset + 284;
     MonsterCondition = new MonsterSubcondition[3];
     for(int loop12=0; loop12 < 3; loop12++ )
     {
         MonsterSubcondition temp12_MonsterCondition;
         temp12_MonsterCondition = new MonsterSubcondition();
         temp12_MonsterCondition.FileRead(stream, stream.Position);
         _MonsterCondition[loop12] = temp12_MonsterCondition;
     }
     stream.Position = offset + 296;
     GameFlagCondition = new GameFlagSubcondition[3];
     for(int loop12=0; loop12 < 3; loop12++ )
     {
         GameFlagSubcondition temp12_GameFlagCondition;
         temp12_GameFlagCondition = new GameFlagSubcondition();
         temp12_GameFlagCondition.FileRead(stream, stream.Position);
         _GameFlagCondition[loop12] = temp12_GameFlagCondition;
     }
     stream.Position = offset + 680;
     PlayerFlagCondition = new PlayerFlagSubcondition[3];
     for(int loop12=0; loop12 < 3; loop12++ )
     {
         PlayerFlagSubcondition temp12_PlayerFlagCondition;
         temp12_PlayerFlagCondition = new PlayerFlagSubcondition();
         temp12_PlayerFlagCondition.FileRead(stream, stream.Position);
         _PlayerFlagCondition[loop12] = temp12_PlayerFlagCondition;
     }
 }