private void ReadSkeleton() { ms.Seek(pBase + pBones, SeekOrigin.Begin); if (ms.Position > ms.Length) { return; //error handler } bones = new Bone[cSkeletonBones]; for (int i = 0; i < cSkeletonBones; i++) { bones[i] = Extended.ByteArrayToStructure <Bone>(br.ReadBytes(64)); } return; }
private void ReadGeometry() { ms.Seek(pBase + pVertices, SeekOrigin.Begin); if (ms.Position > ms.Length || pVertices + ms.Position > ms.Length) //pvert error handler { return; //error handler } vertices = new Vector4[cVertices]; for (int i = 0; i < vertices.Length; i++) { vertices[i] = new Vector4(br.ReadInt16(), br.ReadInt16(), br.ReadInt16(), br.ReadInt16()); } ms.Seek(pBase + pFaces, SeekOrigin.Begin); List <Face> face = new List <Face>(); for (int i = 0; i < cFaces; i++) { face.Add(Extended.ByteArrayToStructure <Face>(br.ReadBytes(64))); } faces = face.ToArray(); return; }