internal static void Read(ResFileSwitchLoader loader, ShapeAnim shapeAnim) { if (loader.ResFile.VersionMajor2 == 9) { shapeAnim.Flags = (ShapeAnimFlags)loader.ReadUInt32(); } else { loader.LoadHeaderBlock(); } shapeAnim.Name = loader.LoadString(); shapeAnim.Path = loader.LoadString(); shapeAnim.BindModel = loader.Load <Model>(); uint BindIndicesOffset = loader.ReadOffset(); uint VertexShapeAnimsArrayOffset = loader.ReadOffset(); shapeAnim.UserData = loader.LoadDictValues <UserData>(); if (loader.ResFile.VersionMajor2 < 9) { shapeAnim.Flags = (ShapeAnimFlags)loader.ReadInt16(); } ushort numUserData = loader.ReadUInt16(); ushort numVertexShapeAnim = loader.ReadUInt16(); ushort numKeyShapeAnim = loader.ReadUInt16(); shapeAnim.FrameCount = loader.ReadInt32(); shapeAnim.BakedSize = loader.ReadUInt32(); ushort numCurve = loader.ReadUInt16(); shapeAnim.BindIndices = loader.LoadCustom(() => loader.ReadUInt16s(numVertexShapeAnim), BindIndicesOffset); shapeAnim.VertexShapeAnims = loader.LoadList <VertexShapeAnim>(numVertexShapeAnim, VertexShapeAnimsArrayOffset); }