public override void Parse(GameBitBuffer buffer) { dwFlags = buffer.ReadInt(32); nBoneCount = buffer.ReadInt(32); serBoneStructure = new SerializeData(); serBoneStructure.Parse(buffer); //still checking variablearrays this.BoneStructure = new List<BoneStructure>( buffer.ReadInt(0) ); for(int loop12 = 0; loop12 < _BoneStructure.Count; loop12++) { _BoneStructure[loop12] = new BoneStructure(); _BoneStructure[loop12].Parse(buffer); } Field4 = new LookAtData(); Field4.Parse(buffer); Field5 = buffer.ReadInt(32); serBonePulses = new SerializeData(); serBonePulses.Parse(buffer); //still checking variablearrays this.BonePulses = new List<BonePulseData>( buffer.ReadInt(0) ); for(int loop12 = 0; loop12 < _BonePulses.Count; loop12++) { _BonePulses[loop12] = new BonePulseData(); _BonePulses[loop12].Parse(buffer); } Field8 = new GeoSet[2]; for(int i = 0;i < _Field8.Length;i++) { _Field8[i] = new GeoSet(); _Field8[i].Parse(buffer); } Field9 = new Sphere(); Field9.Parse(buffer); nCollisionCapsuleCount = buffer.ReadInt(32); serCollisionCapsules = new SerializeData(); serCollisionCapsules.Parse(buffer); //still checking variablearrays this.CollisionCapsules = new List<CollisionCapsule>( buffer.ReadInt(0) ); for(int loop12 = 0; loop12 < _CollisionCapsules.Count; loop12++) { _CollisionCapsules[loop12] = new CollisionCapsule(); _CollisionCapsules[loop12].Parse(buffer); } nHardpointCount = buffer.ReadInt(32); serHardpoints = new SerializeData(); serHardpoints.Parse(buffer); //still checking variablearrays this.Hardpoints = new List<Hardpoint>( buffer.ReadInt(0) ); for(int loop12 = 0; loop12 < _Hardpoints.Count; loop12++) { _Hardpoints[loop12] = new Hardpoint(); _Hardpoints[loop12].Parse(buffer); } Field16 = new Vector3D(); Field16.Parse(buffer); tOctreeVisualMesh = new Octree(); tOctreeVisualMesh.Parse(buffer); aabbBounds = new AABB(); aabbBounds.Parse(buffer); Field19 = buffer.ReadCharArray(256); Field20 = buffer.ReadCharArray(256); Field21 = buffer.ReadCharArray(256); Field22 = buffer.ReadCharArray(256); Field23 = buffer.ReadInt(32); Field24 = buffer.ReadFloat32(); Field25 = buffer.ReadInt(32); nLoopConstraintCount = buffer.ReadInt(32); serLoopConstraints = new SerializeData(); serLoopConstraints.Parse(buffer); //still checking variablearrays this.LoopConstraints = new List<ConstraintParameters>( buffer.ReadInt(0) ); for(int loop12 = 0; loop12 < _LoopConstraints.Count; loop12++) { _LoopConstraints[loop12] = new ConstraintParameters(); _LoopConstraints[loop12].Parse(buffer); } uRagdollDegrade = buffer.ReadInt(32); }
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(); }