public static Formats.Meshes.MeshRiggingGroup ParseMeshRiggingGroup(this SsbhParser parser) { var result = new Formats.Meshes.MeshRiggingGroup(); result.MeshName = parser.ReadOffsetReadString(); result.MeshSubIndex = parser.ReadInt64(); result.Flags = parser.ReadInt64(); { // TODO: Extract this code to a method? long absoluteOffset = parser.ReadRelativeGetAbsoluteOffset(); long elementCount = parser.ReadInt64(); long previousPosition = parser.Position; parser.Seek(absoluteOffset); result.Buffers = new Formats.Meshes.MeshBoneBuffer[elementCount]; for (int i = 0; i < elementCount; i++) { result.Buffers[i] = parser.ParseMeshBoneBuffer(); } parser.Seek(previousPosition); } return(result); }