コード例 #1
0
        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);
            }
        }
コード例 #2
0
 protected SaveStateBlock(SourceSave?saveRef, SaveGameHeader dataHeader) : base(saveRef)
 {
     DataHeader = dataHeader;
 }
コード例 #3
0
            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();
            }