public static void Read(ResFileSwitchLoader loader, FogAnim fogAnim)
        {
            if (loader.ResFile.VersionMajor2 == 9)
            {
                fogAnim.Flags = loader.ReadEnum <FogAnimFlags>(true);
                loader.Seek(2);
            }
            else
            {
                loader.LoadHeaderBlock();
            }
            fogAnim.Name = loader.LoadString();
            long CurveArrayOffset = loader.ReadInt64();

            fogAnim.BaseData             = loader.LoadCustom(() => new FogAnimData(loader));
            fogAnim.UserData             = loader.LoadDictValues <UserData>();
            fogAnim.DistanceAttnFuncName = loader.LoadString();

            ushort numUserData = 0;
            byte   numCurve    = 0;

            if (loader.ResFile.VersionMajor2 == 9)
            {
                fogAnim.FrameCount            = loader.ReadInt32();
                numCurve                      = loader.ReadByte();
                fogAnim.DistanceAttnFuncIndex = loader.ReadSByte();
                numUserData                   = loader.ReadUInt16();
                fogAnim.BakedSize             = loader.ReadUInt32();
                loader.Seek(4);
            }
            else
            {
                fogAnim.Flags = loader.ReadEnum <FogAnimFlags>(true);
                loader.Seek(2);
                fogAnim.FrameCount            = loader.ReadInt32();
                numCurve                      = loader.ReadByte();
                fogAnim.DistanceAttnFuncIndex = loader.ReadSByte();
                numUserData                   = loader.ReadUInt16();
                fogAnim.BakedSize             = loader.ReadUInt32();
            }

            fogAnim.Curves = loader.LoadList <AnimCurve>(numCurve);
        }