public void FileRead(MpqFileStream stream, long offset) { stream.Position = offset + 0; Field0 = new VelocityVector3D(); Field0.FileRead(stream, stream.Position); stream.Position = offset + 12; Field1 = new VelocityVector3D(); Field1.FileRead(stream, stream.Position); stream.Position = offset + 24; Field2 = stream.ReadValueF32(); }
public void FileRead(MpqFileStream stream, long offset) { stream.Position = offset + 0; Field0 = stream.ReadValueS32(); stream.Position = offset + 4; AnimName = stream.ReadString(65); stream.Position = offset + 72; Velocity = stream.ReadValueF32(); stream.Position = offset + 76; Field3 = stream.ReadValueF32(); stream.Position = offset + 80; Field4 = stream.ReadValueF32(); stream.Position = offset + 84; Field5 = stream.ReadValueF32(); stream.Position = offset + 88; Field6 = stream.ReadValueF32(); stream.Position = offset + 92; Time1 = stream.ReadValueS32(); stream.Position = offset + 96; Time2 = stream.ReadValueS32(); stream.Position = offset + 104; Field9 = stream.ReadValueF32(); stream.Position = offset + 108; Field10 = stream.ReadValueF32(); stream.Position = offset + 112; Field11 = stream.ReadValueF32(); stream.Position = offset + 116; Field12 = stream.ReadValueF32(); stream.Position = offset + 100; Field13 = stream.ReadValueS32(); stream.Position = offset + 120; BoneNameCount = stream.ReadValueS32(); stream.Position = offset + 124; serBoneNames = new SerializeData(); serBoneNames.FileRead(stream, stream.Position); stream.Position = offset + 136; //still checking variablearrays BoneNames = new List<BoneName>(); for(int i = 0; i < (int)(serBoneNames.Field1 / 64); i++) { stream.Position = serBoneNames.Field0 + 16 + (64*i) ; BoneName temp12_BoneNames; temp12_BoneNames = new BoneName(); temp12_BoneNames.FileRead(stream, stream.Position); _BoneNames.Add(temp12_BoneNames); } stream.Position = offset + 144; KeyframePosCount = stream.ReadValueS32(); stream.Position = offset + 148; serTranslationCurves = new SerializeData(); serTranslationCurves.FileRead(stream, stream.Position); stream.Position = offset + 160; //still checking variablearrays TranslationCurves = new List<TranslationCurve>(); for(int i = 0; i < (int)(serTranslationCurves.Field1 / 24); i++) { stream.Position = serTranslationCurves.Field0 + 16 + (24*i) ; TranslationCurve temp12_TranslationCurves; temp12_TranslationCurves = new TranslationCurve(); temp12_TranslationCurves.FileRead(stream, stream.Position); _TranslationCurves.Add(temp12_TranslationCurves); } stream.Position = offset + 168; serRotationCurves = new SerializeData(); serRotationCurves.FileRead(stream, stream.Position); stream.Position = offset + 176; //still checking variablearrays RotationCurves = new List<RotationCurve>(); for(int i = 0; i < (int)(serRotationCurves.Field1 / 24); i++) { stream.Position = serRotationCurves.Field0 + 16 + (24*i) ; RotationCurve temp12_RotationCurves; temp12_RotationCurves = new RotationCurve(); temp12_RotationCurves.FileRead(stream, stream.Position); _RotationCurves.Add(temp12_RotationCurves); } stream.Position = offset + 184; serScaleCurves = new SerializeData(); serScaleCurves.FileRead(stream, stream.Position); stream.Position = offset + 192; //still checking variablearrays ScaleCurves = new List<ScaleCurve>(); for(int i = 0; i < (int)(serScaleCurves.Field1 / 24); i++) { stream.Position = serScaleCurves.Field0 + 16 + (24*i) ; ScaleCurve temp12_ScaleCurves; temp12_ScaleCurves = new ScaleCurve(); temp12_ScaleCurves.FileRead(stream, stream.Position); _ScaleCurves.Add(temp12_ScaleCurves); } stream.Position = offset + 200; Field24 = stream.ReadValueF32(); stream.Position = offset + 204; Field25 = stream.ReadValueF32(); stream.Position = offset + 208; Field26 = stream.ReadValueF32(); stream.Position = offset + 212; Field27 = stream.ReadValueF32(); stream.Position = offset + 216; Field28 = new Vector3D(); Field28.FileRead(stream, stream.Position); stream.Position = offset + 228; Field29 = new Vector3D(); Field29.FileRead(stream, stream.Position); stream.Position = offset + 240; Field30 = new Vector3D(); Field30.FileRead(stream, stream.Position); stream.Position = offset + 252; Field31 = new Vector3D(); Field31.FileRead(stream, stream.Position); stream.Position = offset + 264; Field32 = stream.ReadValueF32(); stream.Position = offset + 276; KeyedAttachmentsCount = stream.ReadValueS32(); stream.Position = offset + 268; serKeyedAttachments = new SerializeData(); serKeyedAttachments.FileRead(stream, stream.Position); stream.Position = offset + 280; //still checking variablearrays KeyedAttachments = new List<KeyframedAttachment>(); for(int i = 0; i < (int)(serKeyedAttachments.Field1 / 412); i++) { stream.Position = serKeyedAttachments.Field0 + 16 + (412*i) ; KeyframedAttachment temp12_KeyedAttachments; temp12_KeyedAttachments = new KeyframedAttachment(); temp12_KeyedAttachments.FileRead(stream, stream.Position); _KeyedAttachments.Add(temp12_KeyedAttachments); } stream.Position = offset + 288; serKeyframePosList = new SerializeData(); serKeyframePosList.FileRead(stream, stream.Position); stream.Position = offset + 296; //still checking variablearrays KeyframePosList = new List<Vector3D>(); for(int i = 0; i < (int)(serKeyframePosList.Field1 / 12); i++) { stream.Position = serKeyframePosList.Field0 + 16 + (12*i) ; Vector3D temp12_KeyframePosList; temp12_KeyframePosList = new Vector3D(); temp12_KeyframePosList.FileRead(stream, stream.Position); _KeyframePosList.Add(temp12_KeyframePosList); } stream.Position = offset + 304; serNonlinearOffset = new SerializeData(); serNonlinearOffset.FileRead(stream, stream.Position); stream.Position = offset + 312; //still checking variablearrays NonlinearOffset = new List<Vector3D>(); for(int i = 0; i < (int)(serNonlinearOffset.Field1 / 12); i++) { stream.Position = serNonlinearOffset.Field0 + 16 + (12*i) ; Vector3D temp12_NonlinearOffset; temp12_NonlinearOffset = new Vector3D(); temp12_NonlinearOffset.FileRead(stream, stream.Position); _NonlinearOffset.Add(temp12_NonlinearOffset); } stream.Position = offset + 320; Velocity3D = new VelocityVector3D(); Velocity3D.FileRead(stream, stream.Position); stream.Position = offset + 332; Link = new HardpointLink(); Link.FileRead(stream, stream.Position); stream.Position = offset + 400; Field42 = stream.ReadString(256); stream.Position = offset + 656; Field43 = stream.ReadString(256); }