public static bool CreateFromHeader(SourceSave saveRef, SaveGameHeader header, out SaveStateBlock block) { switch (header) { case ETableHeader eTableHeader: block = new EntitySaveStateBlock(saveRef, eTableHeader); return(true); case PhysicsInfoHeader physHeader: block = new PhysSaveStateRestoreHandler(saveRef, physHeader); return(true); default: block = null !; return(false); } }
protected SaveStateBlock(SourceSave?saveRef, SaveGameHeader dataHeader) : base(saveRef) { DataHeader = dataHeader; }
static void SaveGameHeader(JsonWriter writer, SaveGameHeader header) { writer.WriteStartObject(); writer.WritePropertyName(JsonNaming.SaveGameHeader.FileTypeTag); writer.WriteValue(header.FileTypeTag); writer.WritePropertyName(JsonNaming.SaveGameHeader.SaveGameFileVersion); writer.WriteValue(header.SaveGameFileVersion); writer.WritePropertyName(JsonNaming.SaveGameHeader.PackageFileUE4Version); writer.WriteValue(header.PackageFileUE4Version); writer.WritePropertyName(JsonNaming.SaveGameHeader.SavedEngineVersion); { writer.WriteStartObject(); writer.WritePropertyName(JsonNaming.SaveGameHeader.EngineVersion.Major); writer.WriteValue(header.SavedEngineVersion.Major); writer.WritePropertyName(JsonNaming.SaveGameHeader.EngineVersion.Minor); writer.WriteValue(header.SavedEngineVersion.Minor); writer.WritePropertyName(JsonNaming.SaveGameHeader.EngineVersion.Patch); writer.WriteValue(header.SavedEngineVersion.Patch); writer.WritePropertyName(JsonNaming.SaveGameHeader.EngineVersion.ChangeList); writer.WriteValue(header.SavedEngineVersion.ChangeList); writer.WritePropertyName(JsonNaming.SaveGameHeader.EngineVersion.Branch); writer.WriteValue(header.SavedEngineVersion.Branch); writer.WriteEndObject(); } writer.WritePropertyName(JsonNaming.SaveGameHeader.CustomVersionFormat); writer.WriteValue(header.CustomVersionFormat); writer.WritePropertyName(JsonNaming.SaveGameHeader.CustomVersions); { writer.WriteStartObject(); writer.WritePropertyName(JsonNaming.SaveGameHeader.CustomVersionContainer.Count); writer.WriteValue(header.CustomVersions.Count); writer.WritePropertyName(JsonNaming.SaveGameHeader.CustomVersionContainer.Versions); { writer.WriteStartArray(); foreach (CustomVersion version in header.CustomVersions.Versions) { writer.WriteStartObject(); writer.WritePropertyName(JsonNaming.SaveGameHeader.CustomVersion.Key); writer.WriteValue(version.Key.ToString()); writer.WritePropertyName(JsonNaming.SaveGameHeader.CustomVersion.Version); writer.WriteValue(version.Version); writer.WriteEndObject(); } writer.WriteEndArray(); } writer.WriteEndObject(); } writer.WritePropertyName(JsonNaming.SaveGameHeader.SaveGameClassName); writer.WriteValue(header.SaveGameClassName); writer.WriteEndObject(); }