public void FileRead(MpqFileStream stream, long offset) { stream.Position = offset + 0; Field0 = stream.ReadString(64); stream.Position = offset + 64; Field1 = stream.ReadValueS32(); stream.Position = offset + 68; Field2 = new AABB(); Field2.FileRead(stream, stream.Position); stream.Position = offset + 92; wsBounds = new Sphere(); wsBounds.FileRead(stream, stream.Position); stream.Position = offset + 108; Field4 = new PRSTransform(); Field4.FileRead(stream, stream.Position); stream.Position = offset + 140; Field5 = new PRSTransform(); Field5.FileRead(stream, stream.Position); stream.Position = offset + 172; Field6 = new PRSTransform(); Field6.FileRead(stream, stream.Position); stream.Position = offset + 204; Field7 = stream.ReadValueS32(); stream.Position = offset + 208; serShapes = new SerializeData(); serShapes.FileRead(stream, stream.Position); stream.Position = offset + 216; //still checking variablearrays Shapes = new List<CollisionShape>(); for(int i = 0; i < (int)(serShapes.Field1 / 68); i++) { stream.Position = serShapes.Field0 + 16 + (68*i) ; CollisionShape temp12_Shapes; temp12_Shapes = new CollisionShape(); temp12_Shapes.FileRead(stream, stream.Position); _Shapes.Add(temp12_Shapes); } stream.Position = offset + 220; serConstraint = new SerializeData(); serConstraint.FileRead(stream, stream.Position); stream.Position = offset + 228; //still checking variablearrays Constraint = new List<ConstraintParameters>(); for(int i = 0; i < (int)(serConstraint.Field1 / 276); i++) { stream.Position = serConstraint.Field0 + 16 + (276*i) ; ConstraintParameters temp12_Constraint; temp12_Constraint = new ConstraintParameters(); temp12_Constraint.FileRead(stream, stream.Position); _Constraint.Add(temp12_Constraint); } stream.Position = offset + 232; snoParticleSystem = stream.ReadValueS32(); }
public void FileRead(MpqFileStream stream, long offset) { stream.Position = offset + 0; Field0 = stream.ReadValueS32(); stream.Position = offset + 4; nVertCount = stream.ReadValueS32(); stream.Position = offset + 8; serVertList = new SerializeData(); serVertList.FileRead(stream, stream.Position); stream.Position = offset + 16; //still checking variablearrays VertList = new List<FatVertex>(); for(int i = 0; i < (int)(serVertList.Field1 / 44); i++) { stream.Position = serVertList.Field0 + 16 + (44*i) ; FatVertex temp12_VertList; temp12_VertList = new FatVertex(); temp12_VertList.FileRead(stream, stream.Position); _VertList.Add(temp12_VertList); } stream.Position = offset + 20; serInfluenceList = new SerializeData(); serInfluenceList.FileRead(stream, stream.Position); stream.Position = offset + 28; //still checking variablearrays InfluenceList = new List<VertInfluences>(); for(int i = 0; i < (int)(serInfluenceList.Field1 / 24); i++) { stream.Position = serInfluenceList.Field0 + 16 + (24*i) ; VertInfluences temp12_InfluenceList; temp12_InfluenceList = new VertInfluences(); temp12_InfluenceList.FileRead(stream, stream.Position); _InfluenceList.Add(temp12_InfluenceList); } stream.Position = offset + 32; nIndexCount = stream.ReadValueS32(); stream.Position = offset + 36; serIndexList = new SerializeData(); serIndexList.FileRead(stream, stream.Position); stream.Position = offset + 44; //still checking variablearrays IndexList = new List<ushort>(); for(int i = 0; i < (int)(serIndexList.Field1 / 2); i++) { stream.Position = serIndexList.Field0 + 16 + (2*i) ; ushort temp12_IndexList; temp12_IndexList = stream.ReadValueU16(); _IndexList.Add(temp12_IndexList); } stream.Position = offset + 48; serClothStructure = new SerializeData(); serClothStructure.FileRead(stream, stream.Position); stream.Position = offset + 56; //still checking variablearrays ClothStructure = new List<ClothStructure>(); for(int i = 0; i < (int)(serClothStructure.Field1 / 88); i++) { stream.Position = serClothStructure.Field0 + 16 + (88*i) ; ClothStructure temp12_ClothStructure; temp12_ClothStructure = new ClothStructure(); temp12_ClothStructure.FileRead(stream, stream.Position); _ClothStructure.Add(temp12_ClothStructure); } stream.Position = offset + 60; snoSurface = stream.ReadValueS32(); stream.Position = offset + 64; Field12 = stream.ReadValueS32(); stream.Position = offset + 68; Field13 = stream.ReadValueF32(); stream.Position = offset + 72; Field14 = stream.ReadString(128); stream.Position = offset + 200; Field15 = stream.ReadString(128); stream.Position = offset + 328; aabbBounds = new AABB(); aabbBounds.FileRead(stream, stream.Position); stream.Position = offset + 352; nShapeCount = stream.ReadValueS32(); stream.Position = offset + 356; serShapes = new SerializeData(); serShapes.FileRead(stream, stream.Position); stream.Position = offset + 364; //still checking variablearrays Shapes = new List<CollisionShape>(); for(int i = 0; i < (int)(serShapes.Field1 / 68); i++) { stream.Position = serShapes.Field0 + 16 + (68*i) ; CollisionShape temp12_Shapes; temp12_Shapes = new CollisionShape(); temp12_Shapes.FileRead(stream, stream.Position); _Shapes.Add(temp12_Shapes); } }