public void FileRead(MpqFileStream stream, long offset) { stream.Position = offset + 12; Field0 = stream.ReadValueS32(); stream.Position = offset + 16; snoActor = stream.ReadValueS32(); stream.Position = offset + 20; Field2 = stream.ReadValueS32(); stream.Position = offset + 24; _Field3 = stream.ReadValueS32(); stream.Position = offset + 28; _Field4 = stream.ReadValueS32(); stream.Position = offset + 32; _Field5 = stream.ReadValueS32(); stream.Position = offset + 56; _Field6 = stream.ReadValueS32(); stream.Position = offset + 60; Field7 = stream.ReadValueS32(); stream.Position = offset + 64; Field8 = stream.ReadValueS32(); stream.Position = offset + 68; Field9 = new int[4]; for(int loop12=0; loop12 < 4; loop12++ ) { int temp12_Field9; temp12_Field9 = stream.ReadValueS32(); _Field9[loop12] = temp12_Field9; } stream.Position = offset + 640; Field10 = stream.ReadValueF32(); stream.Position = offset + 644; Field11 = stream.ReadValueF32(); stream.Position = offset + 648; Field12 = stream.ReadValueF32(); stream.Position = offset + 652; Field13 = stream.ReadValueF32(); stream.Position = offset + 656; Field14 = stream.ReadValueF32(); stream.Position = offset + 660; Field15 = stream.ReadValueF32(); stream.Position = offset + 964; snoInventory = stream.ReadValueS32(); stream.Position = offset + 968; snoSecondaryInventory = stream.ReadValueS32(); stream.Position = offset + 972; snoLore = stream.ReadValueS32(); stream.Position = offset + 668; Field19 = new HealthDropInfo(); Field19.FileRead(stream, stream.Position); stream.Position = offset + 680; Field20 = new HealthDropInfo(); Field20.FileRead(stream, stream.Position); stream.Position = offset + 692; Field21 = new HealthDropInfo(); Field21.FileRead(stream, stream.Position); stream.Position = offset + 704; Field22 = new HealthDropInfo(); Field22.FileRead(stream, stream.Position); stream.Position = offset + 664; Field23 = stream.ReadValueS32(); stream.Position = offset + 1108; _Field24 = stream.ReadValueS32(); stream.Position = offset + 84; Field25 = new float[139]; for(int loop12=0; loop12 < 139; loop12++ ) { float temp12_Field25; temp12_Field25 = stream.ReadValueF32(); _Field25[loop12] = temp12_Field25; } stream.Position = offset + 716; snoSkillKit = stream.ReadValueS32(); stream.Position = offset + 720; Field27 = new SkillDeclaration[8]; for(int loop12=0; loop12 < 8; loop12++ ) { SkillDeclaration temp12_Field27; temp12_Field27 = new SkillDeclaration(); temp12_Field27.FileRead(stream, stream.Position); _Field27[loop12] = temp12_Field27; } stream.Position = offset + 784; Field28 = new MonsterSkillDeclaration[8]; for(int loop12=0; loop12 < 8; loop12++ ) { MonsterSkillDeclaration temp12_Field28; temp12_Field28 = new MonsterSkillDeclaration(); temp12_Field28.FileRead(stream, stream.Position); _Field28[loop12] = temp12_Field28; } stream.Position = offset + 912; snoTreasureClassFirstKill = stream.ReadValueS32(); stream.Position = offset + 916; snoTreasureClass = stream.ReadValueS32(); stream.Position = offset + 920; snoTreasureClassRare = stream.ReadValueS32(); stream.Position = offset + 924; snoTreasureClassChampion = stream.ReadValueS32(); stream.Position = offset + 928; snoTreasureClassChampionLight = stream.ReadValueS32(); stream.Position = offset + 36; Field34 = new Monster2(); Field34.FileRead(stream, stream.Position); stream.Position = offset + 932; Field35 = stream.ReadValueF32(); stream.Position = offset + 936; Field36 = stream.ReadValueF32(); stream.Position = offset + 940; Field37 = stream.ReadValueF32(); stream.Position = offset + 944; Field38 = stream.ReadValueF32(); stream.Position = offset + 948; Field39 = stream.ReadValueS32(); stream.Position = offset + 952; Field40 = stream.ReadValueF32(); stream.Position = offset + 956; Field41 = stream.ReadValueS32(); stream.Position = offset + 960; Field42 = stream.ReadValueS32(); stream.Position = offset + 976; arAIBehaviors = new int[6]; for(int loop12=0; loop12 < 6; loop12++ ) { int temp12_arAIBehaviors; temp12_arAIBehaviors = stream.ReadValueS32(); _arAIBehaviors[loop12] = temp12_arAIBehaviors; } stream.Position = offset + 1000; Field44 = new int[8]; for(int loop12=0; loop12 < 8; loop12++ ) { int temp12_Field44; temp12_Field44 = stream.ReadValueS32(); _Field44[loop12] = temp12_Field44; } stream.Position = offset + 1032; snoSummonActor = new int[6]; for(int loop12=0; loop12 < 6; loop12++ ) { int temp12_snoSummonActor; temp12_snoSummonActor = stream.ReadValueS32(); _snoSummonActor[loop12] = temp12_snoSummonActor; } stream.Position = offset + 1056; Field46 = new int[4]; for(int loop12=0; loop12 < 4; loop12++ ) { int temp12_Field46; temp12_Field46 = stream.ReadValueS32(); _Field46[loop12] = temp12_Field46; } stream.Position = offset + 1072; Field47 = new int[6]; for(int loop12=0; loop12 < 6; loop12++ ) { int temp12_Field47; temp12_Field47 = stream.ReadValueS32(); _Field47[loop12] = temp12_Field47; } stream.Position = offset + 1096; Field48 = stream.ReadValueS32(); stream.Position = offset + 1100; Field49 = stream.ReadValueS32(); stream.Position = offset + 1104; Field50 = stream.ReadValueS32(); stream.Position = offset + 1176; Field51 = stream.ReadString(128); stream.Position = offset + 1136; serTagMap = new SerializeData(); serTagMap.FileRead(stream, stream.Position); stream.Position = offset + 1144; // hTagMap: type DT_TAGMAP hasnt a deserializer implemented throw new Exception("some fields arent going to be decoded."); stream.Position = offset + 1152; Field54 = stream.ReadValueS32(); stream.Position = offset + 1168; serSpawnGroups = new SerializeData(); serSpawnGroups.FileRead(stream, stream.Position); stream.Position = offset + 1160; //still checking variablearrays SpawnGroups = new List<MonsterMinionSpawnGroup>(); for(int i = 0; i < (int)(serSpawnGroups.Field1 / 24); i++) { stream.Position = serSpawnGroups.Field0 + 16 + (24*i) ; MonsterMinionSpawnGroup temp12_SpawnGroups; temp12_SpawnGroups = new MonsterMinionSpawnGroup(); temp12_SpawnGroups.FileRead(stream, stream.Position); _SpawnGroups.Add(temp12_SpawnGroups); } }