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); }
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(); }