コード例 #1
0
 /// <summary>
 /// Serializes an instance of a Persistable class into persisted script data,
 /// such as the data from a saved game file.
 /// </summary>
 /// <param name="baseObject">The Persistable class instance to serialize.</param>
 /// <param name="basePersistGroup">The persist group used to serialize the Persistable class instance.</param>
 /// <returns>The persisted script data of the given Persistable instance.</returns>
 public byte[] Serialize(object baseObject, object basePersistGroup)
 {
     using (FastStreamWriter writer = new FastStreamWriter())
     {
         Serialize(baseObject, basePersistGroup, writer);
         return(writer.ToArray());
     }
 }
コード例 #2
0
 public byte[] Write()
 {
     using (FastStreamWriter writer = new FastStreamWriter())
     {
         writer.Write(1);
         writer.Write(this.mAssemblyCount);
         writer.Write(this.mAssemblySignatures);
         writer.Write(this.mSourceDataHash);
         writer.Write(this.mSourceDataSize);
         writer.Write(this.mSourceRecordCount);
         return(writer.ToArray());
     }
 }
コード例 #3
0
 /// <summary>
 /// Serializes the given object instance using the given persist group
 /// and then saves it to the game cache with the given tag.
 /// </summary>
 /// <param name="tag">A unique string that identifies
 /// the serialized object in the game cache.</param>
 /// <param name="baseObject">The object instance to be serialized and written to the game cache.</param>
 /// <param name="basePersistGroup">The persist group used to serialize the object instance.</param>
 public void SaveTuningData(string tag, object baseObject, object basePersistGroup)
 {
     if (!this.mIsCacheVerified)
     {
         this.VerifyCache();
     }
     if (this.mIsCachingEnabled)
     {
         using (FastStreamWriter writer = new FastStreamWriter())
         {
             new ScriptCore.StopWatch(Sims3.SimIFace.StopWatch.TickStyles.Milliseconds).Start();
             //Sims3.SimIFace.StopWatch.Create(Sims3.SimIFace.StopWatch.TickStyles.Milliseconds).Start();
             Serialize(baseObject, basePersistGroup, writer);
             CacheManager_WriteCachedDataFromStream(tag, writer.Handle);
         }
     }
 }
コード例 #4
0
        private static void Serialize(object baseObject, object basePersistGroup, FastStreamWriter binWriter)
        {
            PersistWriter writer = new PersistWriter();
            bool          enableTypeRemapping = Persist.EnableTypeRemapping;

            Persist.EnableTypeRemapping = false;
            bool requireAllPersistable = Persist.RequireAllPersistable;

            Persist.RequireAllPersistable = true;
            try
            {
                writer.AddGroup(basePersistGroup);
                writer.Begin();
                writer.AddObject(baseObject);
                writer.End(binWriter);
            }
            finally
            {
                Persist.EnableTypeRemapping   = enableTypeRemapping;
                Persist.RequireAllPersistable = requireAllPersistable;
            }
        }