public override void Parse(GameBitBuffer buffer) { Field0 = buffer.ReadInt(32); snoActor = buffer.ReadInt(32); Field2 = buffer.ReadInt(32); Field3 = buffer.ReadInt(4) + (-1); Field4 = buffer.ReadInt(4) + (-1); Field5 = buffer.ReadInt(4) + (-1); Field6 = buffer.ReadInt(3); Field7 = buffer.ReadInt(32); Field8 = buffer.ReadInt(32); Field9 = new int[4]; for(int i = 0;i < _Field9.Length;i++) _Field9[i] = buffer.ReadInt(32); Field10 = buffer.ReadFloat32(); Field11 = buffer.ReadFloat32(); Field12 = buffer.ReadFloat32(); Field13 = buffer.ReadFloat32(); Field14 = buffer.ReadFloat32(); Field15 = buffer.ReadFloat32(); snoInventory = buffer.ReadInt(32); snoSecondaryInventory = buffer.ReadInt(32); snoLore = buffer.ReadInt(32); Field19 = new HealthDropInfo(); Field19.Parse(buffer); Field20 = new HealthDropInfo(); Field20.Parse(buffer); Field21 = new HealthDropInfo(); Field21.Parse(buffer); Field22 = new HealthDropInfo(); Field22.Parse(buffer); Field23 = buffer.ReadInt(32); Field24 = buffer.ReadInt(3); //still checking fixedarrays on basictypes Field25 = new float[139]; for(int loop12 = 0;loop12 < _Field25.Length;loop12++) { _Field25[loop12] = buffer.ReadFloat32(); } snoSkillKit = buffer.ReadInt(32); Field27 = new SkillDeclaration[8]; for(int i = 0;i < _Field27.Length;i++) { _Field27[i] = new SkillDeclaration(); _Field27[i].Parse(buffer); } Field28 = new MonsterSkillDeclaration[8]; for(int i = 0;i < _Field28.Length;i++) { _Field28[i] = new MonsterSkillDeclaration(); _Field28[i].Parse(buffer); } snoTreasureClassFirstKill = buffer.ReadInt(32); snoTreasureClass = buffer.ReadInt(32); snoTreasureClassRare = buffer.ReadInt(32); snoTreasureClassChampion = buffer.ReadInt(32); snoTreasureClassChampionLight = buffer.ReadInt(32); Field34 = new Monster2(); Field34.Parse(buffer); Field35 = buffer.ReadFloat32(); Field36 = buffer.ReadFloat32(); Field37 = buffer.ReadFloat32(); Field38 = buffer.ReadFloat32(); Field39 = buffer.ReadInt(32); Field40 = buffer.ReadFloat32(); Field41 = buffer.ReadInt(32); Field42 = buffer.ReadInt(32); arAIBehaviors = new int[6]; for(int i = 0;i < _arAIBehaviors.Length;i++) _arAIBehaviors[i] = buffer.ReadInt(32); Field44 = new int[8]; for(int i = 0;i < _Field44.Length;i++) _Field44[i] = buffer.ReadInt(32); snoSummonActor = new int[6]; for(int i = 0;i < _snoSummonActor.Length;i++) _snoSummonActor[i] = buffer.ReadInt(32); Field46 = new int[4]; for(int i = 0;i < _Field46.Length;i++) _Field46[i] = buffer.ReadInt(32); Field47 = new int[6]; for(int i = 0;i < _Field47.Length;i++) _Field47[i] = buffer.ReadInt(32); Field48 = buffer.ReadInt(32); Field49 = buffer.ReadInt(32); Field50 = buffer.ReadInt(32); Field51 = buffer.ReadCharArray(128); serTagMap = new SerializeData(); serTagMap.Parse(buffer); hTagMap = new DT_TAGMAP(); hTagMap.Parse(buffer); Field54 = buffer.ReadInt(32); serSpawnGroups = new SerializeData(); serSpawnGroups.Parse(buffer); //still checking variablearrays this.SpawnGroups = new List<MonsterMinionSpawnGroup>( buffer.ReadInt(0) ); for(int loop12 = 0; loop12 < _SpawnGroups.Count; loop12++) { _SpawnGroups[loop12] = new MonsterMinionSpawnGroup(); _SpawnGroups[loop12].Parse(buffer); } }
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); } }