void IResData.Save(ResFileSaver saver)
 {
     saver.WriteSignature(_signature);
     saver.SaveString(Name);
     saver.SaveString(Path);
     saver.Write(Flags, true);
     saver.Write((ushort)UserData.Count);
     saver.Write(FrameCount);
     saver.Write((ushort)TextureRefs.Count);
     saver.Write((ushort)TexPatternMatAnims.Count);
     saver.Write(TexPatternMatAnims.Sum((x) => x.PatternAnimInfos.Count));
     saver.Write(TexPatternMatAnims.Sum((x) => x.Curves.Count));
     saver.Write(BakedSize);
     saver.Save(BindModel);
     saver.SaveCustom(BindIndices, () => saver.Write(BindIndices));
     saver.SaveList(TexPatternMatAnims);
     saver.SaveDict(TextureRefs);
     saver.SaveDict(UserData);
 }
예제 #2
0
        void IResData.Save(ResFileSaver saver)
        {
            saver.WriteSignature(_signature);
            saver.SaveString(Name);
            saver.SaveString(Path);
            saver.Write(Flags, true);
            if (saver.ResFile.Version >= 0x03040000)
            {
                saver.Write((ushort)UserData.Count);
                saver.Write(FrameCount);
                saver.Write((ushort)TextureRefs.Count);
                saver.Write((ushort)TexPatternMatAnims.Count);
                saver.Write(TexPatternMatAnims.Sum((x) => x.PatternAnimInfos.Count));
                saver.Write(TexPatternMatAnims.Sum((x) => x.Curves.Count));
                saver.Write(BakedSize);
            }
            else
            {
                if (TextureRefs == null)
                {
                    TextureRefs = new ResDict <TextureRef>();
                }

                saver.Write((ushort)FrameCount);
                saver.Write((ushort)TextureRefNames.Count);
                saver.Write((ushort)TexPatternMatAnims.Count);
                saver.Write((ushort)UserData.Count);
                saver.Write((ushort)TexPatternMatAnims.Sum((x) => x.PatternAnimInfos.Count));
                saver.Write(TexPatternMatAnims.Sum((x) => x.Curves.Count));
                saver.Write(BakedSize);
                saver.Seek(4);
            }

            PosBindModelOffset    = saver.SaveOffsetPos();
            PosBindIndicesOffset  = saver.SaveOffsetPos();
            PosTexPatternMatAnims = saver.SaveOffsetPos();
            PosTexureListOffset   = saver.SaveOffsetPos();
            PosUserDataOffset     = saver.SaveOffsetPos();
        }