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