public void FileRead(MpqFileStream stream, long offset) { stream.Position = offset + 0; dwFlags = stream.ReadValueS32(); stream.Position = offset + 4; nBoneCount = stream.ReadValueS32(); stream.Position = offset + 8; serBoneStructure = new SerializeData(); serBoneStructure.FileRead(stream, stream.Position); stream.Position = offset + 16; //still checking variablearrays BoneStructure = new List<BoneStructure>(); for(int i = 0; i < (int)(serBoneStructure.Field1 / 236); i++) { stream.Position = serBoneStructure.Field0 + 16 + (236*i) ; BoneStructure temp12_BoneStructure; temp12_BoneStructure = new BoneStructure(); temp12_BoneStructure.FileRead(stream, stream.Position); _BoneStructure.Add(temp12_BoneStructure); } stream.Position = offset + 24; Field4 = new LookAtData(); Field4.FileRead(stream, stream.Position); stream.Position = offset + 116; Field5 = stream.ReadValueS32(); stream.Position = offset + 128; serBonePulses = new SerializeData(); serBonePulses.FileRead(stream, stream.Position); stream.Position = offset + 120; //still checking variablearrays BonePulses = new List<BonePulseData>(); for(int i = 0; i < (int)(serBonePulses.Field1 / 76); i++) { stream.Position = serBonePulses.Field0 + 16 + (76*i) ; BonePulseData temp12_BonePulses; temp12_BonePulses = new BonePulseData(); temp12_BonePulses.FileRead(stream, stream.Position); _BonePulses.Add(temp12_BonePulses); } stream.Position = offset + 136; Field8 = new GeoSet[2]; for(int loop12=0; loop12 < 2; loop12++ ) { GeoSet temp12_Field8; temp12_Field8 = new GeoSet(); temp12_Field8.FileRead(stream, stream.Position); _Field8[loop12] = temp12_Field8; } stream.Position = offset + 184; Field9 = new Sphere(); Field9.FileRead(stream, stream.Position); stream.Position = offset + 200; nCollisionCapsuleCount = stream.ReadValueS32(); stream.Position = offset + 204; serCollisionCapsules = new SerializeData(); serCollisionCapsules.FileRead(stream, stream.Position); stream.Position = offset + 216; //still checking variablearrays CollisionCapsules = new List<CollisionCapsule>(); for(int i = 0; i < (int)(serCollisionCapsules.Field1 / 104); i++) { stream.Position = serCollisionCapsules.Field0 + 16 + (104*i) ; CollisionCapsule temp12_CollisionCapsules; temp12_CollisionCapsules = new CollisionCapsule(); temp12_CollisionCapsules.FileRead(stream, stream.Position); _CollisionCapsules.Add(temp12_CollisionCapsules); } stream.Position = offset + 224; nHardpointCount = stream.ReadValueS32(); stream.Position = offset + 228; serHardpoints = new SerializeData(); serHardpoints.FileRead(stream, stream.Position); stream.Position = offset + 240; //still checking variablearrays Hardpoints = new List<Hardpoint>(); for(int i = 0; i < (int)(serHardpoints.Field1 / 96); i++) { stream.Position = serHardpoints.Field0 + 16 + (96*i) ; Hardpoint temp12_Hardpoints; temp12_Hardpoints = new Hardpoint(); temp12_Hardpoints.FileRead(stream, stream.Position); _Hardpoints.Add(temp12_Hardpoints); } stream.Position = offset + 248; Field16 = new Vector3D(); Field16.FileRead(stream, stream.Position); stream.Position = offset + 264; tOctreeVisualMesh = new Octree(); tOctreeVisualMesh.FileRead(stream, stream.Position); stream.Position = offset + 336; aabbBounds = new AABB(); aabbBounds.FileRead(stream, stream.Position); stream.Position = offset + 400; Field19 = stream.ReadString(256); stream.Position = offset + 656; Field20 = stream.ReadString(256); stream.Position = offset + 912; Field21 = stream.ReadString(256); stream.Position = offset + 1168; Field22 = stream.ReadString(256); stream.Position = offset + 1424; Field23 = stream.ReadValueS32(); stream.Position = offset + 1428; Field24 = stream.ReadValueF32(); stream.Position = offset + 1432; Field25 = stream.ReadValueS32(); stream.Position = offset + 360; nLoopConstraintCount = stream.ReadValueS32(); stream.Position = offset + 364; serLoopConstraints = new SerializeData(); serLoopConstraints.FileRead(stream, stream.Position); stream.Position = offset + 376; //still checking variablearrays LoopConstraints = new List<ConstraintParameters>(); for(int i = 0; i < (int)(serLoopConstraints.Field1 / 276); i++) { stream.Position = serLoopConstraints.Field0 + 16 + (276*i) ; ConstraintParameters temp12_LoopConstraints; temp12_LoopConstraints = new ConstraintParameters(); temp12_LoopConstraints.FileRead(stream, stream.Position); _LoopConstraints.Add(temp12_LoopConstraints); } stream.Position = offset + 384; uRagdollDegrade = stream.ReadValueS32(); }
public void FileRead(MpqFileStream stream, long offset) { stream.Position = offset + 0; Field0 = stream.ReadValueF32(); stream.Position = offset + 4; Field1 = stream.ReadValueF32(); stream.Position = offset + 8; Field2 = new Hardpoint(); Field2.FileRead(stream, stream.Position); }