Sfoglia il codice sorgente

Add versioning for meido

habeebweeb 4 anni fa
parent
commit
bdca70c2e0

+ 3 - 1
COM3D2.MeidoPhotoStudio.Plugin/MeidoPhotoStudio/Managers/MeidoManager.cs

@@ -65,6 +65,7 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
             binaryWriter.Write(header);
             // Only true for MM scenes converted to MPS scenes
             binaryWriter.Write(false);
+            binaryWriter.Write(Meido.meidoDataVersion);
             binaryWriter.Write(ActiveMeidoList.Count);
             foreach (Meido meido in ActiveMeidoList)
             {
@@ -75,6 +76,7 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
         public void Deserialize(System.IO.BinaryReader binaryReader)
         {
             bool isMMScene = binaryReader.ReadBoolean();
+            int dataVersion = binaryReader.ReadInt32();
             int numberOfMaids = binaryReader.ReadInt32();
             for (int i = 0; i < numberOfMaids; i++)
             {
@@ -85,7 +87,7 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
                     continue;
                 }
                 Meido meido = ActiveMeidoList[i];
-                meido.Deserialize(binaryReader, isMMScene);
+                meido.Deserialize(binaryReader, dataVersion, isMMScene);
             }
         }
 

+ 3 - 3
COM3D2.MeidoPhotoStudio.Plugin/MeidoPhotoStudio/Meido/Meido.cs

@@ -11,7 +11,7 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
 {
     internal class Meido : ISerializable
     {
-        private const int maxMaids = 12;
+        public const int meidoDataVersion = 1000;
         public static readonly PoseInfo DefaultPose =
             new PoseInfo(Constants.PoseGroupList[0], Constants.PoseDict[Constants.PoseGroupList[0]][0]);
         public static readonly string defaultFaceBlendSet = "通常";
@@ -470,9 +470,9 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
             binaryWriter.Write("END_FACE");
         }
 
-        public void Deserialize(BinaryReader binaryReader) => Deserialize(binaryReader, false);
+        public void Deserialize(BinaryReader binaryReader) => Deserialize(binaryReader, meidoDataVersion, false);
 
-        public void Deserialize(BinaryReader binaryReader, bool mmScene)
+        public void Deserialize(BinaryReader binaryReader, int dataVersion, bool mmScene)
         {
             Maid.GetAnimation().Stop();
             binaryReader.ReadInt64(); // meido buffer length