帖子地址:https://forums.unrealengine.com/showthread.php?130820-Sonys-TRC-save-data-plolicy

we had several problems with the standard Ps4 save game implementation, so I wanted to tell you what changes we had to make to get through the submission.

In the first must fix bug reported from Sony was:
"Placeholder icon is used for save data icon."

To fix that I had to copy an image file named "save_data.png" (228x128/24) into the sce_sys folder.
In the "PS4SaveGameSystem.cpp" I had to change the line 611 from
FillOutSceSaveDataMount(SCE_SAVE_DATA_MOUNT_MODE_RDWR | SCE_SAVE_DATA_MOUNT_MODE_CREATE, &MountData);
to
FillOutSceSaveDataMount(SCE_SAVE_DATA_MOUNT_MODE_RDWR | SCE_SAVE_DATA_MOUNT_MODE_CREATE | SCE_SAVE_DATA_MOUNT_MODE_COPY_ICON, &MountData);

And line 652 from
MountData.mountMode = SCE_SAVE_DATA_MOUNT_MODE_RDWR | SCE_SAVE_DATA_MOUNT_MODE_CREATE;
to
MountData.mountMode = SCE_SAVE_DATA_MOUNT_MODE_RDWR | SCE_SAVE_DATA_MOUNT_MODE_CREATE | SCE_SAVE_DATA_MOUNT_MODE_COPY_ICON;

The other must fix sony complained about is:
"The application deletes save data without informing the user a deletion will occur.

PREREQUISITE
No save data present for the application.

STEPS TO REPRODUCE
1. Let your app create a save game
2. Set 'Fake Save Data Broken Status' – ‘On’ for all save files.
3. Set 'Fake Free Space(FS)' – ‘On’.
4. Let your app load save data
5. Select OK to the ‘not enough free space’ message.
6. Select OK to the second ‘not enough free space’ message.
7. Select OK to the ‘Corrupted Data’ message.
8. Press the PS button and access save data from the system settings.

BUG DESCRIPTION
Observe that the application deletes the users save data without informing the user deletion will occur."

To fix that one I used DisplayDeleteConfirm() in "PS4SaveGameSystem.cpp" line 648 instead of DeleteSavedGame().

The whole process was made with engine version 4.12.5. but I compared my file to the one of the 4.14 source and there were no changes. So it’s still up to date I guess.
I hope that helps.

To set the save title and details, there's a game delegate which you can assign a function in your code to return that information:

static void ExtendedSaveGameInfoDelegate(const TCHAR* SaveName, const EGameDelegates_SaveGame Key, FString& Value)
{
static const int32 MAX_SAVEGAME_SIZE = 100 * 1024;
switch (Key)
{
case EGameDelegates_SaveGame::MaxSize:
Value = FString::Printf(TEXT("%i"), MAX_SAVEGAME_SIZE);
break;
case EGameDelegates_SaveGame::Title:
Value = TEXT("ShooterGame");
break;
case EGameDelegates_SaveGame::SubTitle:
Value = TEXT("The Shootening");
break;
case EGameDelegates_SaveGame::Detail:
Value = TEXT("ShooterGame User Settings");
break;
default:
break;
}
} class FMyGameModule : public FDefaultGameModuleImpl
{
virtual void StartupModule() override
{
FGameDelegates::Get().GetExtendedSaveGameInfoDelegate() = FExtendedSaveGameInfoDelegate::CreateStatic(ExtendedSaveGameInfoDelegate);
} virtual void ShutdownModule() override
{ }
};

  

Sonys TRC save data plolicy的更多相关文章

  1. HTML save data to CSV or excel

    /********************************************************************************* * HTML save data ...

  2. Mobile data

    1.Consume REST web services from app 2.De-serialize JSON into an in-memory object collection 3.Save ...

  3. ExtJS笔记 Ext.data.Model

    A Model represents some object that your application manages. For example, one might define a Model ...

  4. Working with Data » 使用Visual Studio开发ASP.NET Core MVC and Entity Framework Core初学者教程

    原文地址:https://docs.asp.net/en/latest/data/ef-mvc/intro.html The Contoso University sample web applica ...

  5. ios开发:Core Data概述

    Core Data 概述 2005年的四月份,Apple 发布了 OS X 10.4,在这个版本中 Core Data 框架发布了.Core Data本身既不是数据库也不是数据库访问框架.相反,Cor ...

  6. 关于Core Data的一些整理(一)

    关于Core Data的一些整理(一) 在Xcode7.2中只有Mast-Debug和Single View中可以勾选Use Core Data 如果勾选了Use Core Data,Xcode会自动 ...

  7. ThinkPHP5.0更改框架的验证方法对象->validate(true)->save();

    我们更希望看到: // 新增对象至数据表 $result = $Teacher->validate(true)->save(); 而不是: // 新增对象至数据表 $result = $T ...

  8. [Project] Simulate HTTP Post Request to obtain data from Web Page by using Python Scrapy Framework

    1. Background Though it's always difficult to give child a perfect name, parent never give up trying ...

  9. 《python for data analysis》第四章,numpy的基本使用

    <利用python进行数据分析>第四章的程序,介绍了numpy的基本使用方法.(第三章为Ipython的基本使用) 科学计算.常用函数.数组处理.线性代数运算.随机模块…… # -*- c ...

随机推荐

  1. Canvas入门05-渐变颜色

    线性渐变API: ctx.createLinearGradient(double x1, double y1, double x2, double y2) 创建一个渐变实例 (x1, y1) 渐变的起 ...

  2. window 下python2.7与python3.5两版本共存设置

    分别下载两个版本的Python,安装. (1)在Path环境变量中检查以下4个变量(Path中的环境变量是以分号隔开的): 1.c:\Python27 2.c:\Python27\Scripts 3. ...

  3. spring扩展点之PropertyPlaceholderConfigurer

    原理机制讲解 https://leokongwq.github.io/2016/12/28/spring-PropertyPlaceholderConfigurer.html 使用时多个配置讲解 ht ...

  4. [转帖]CBO和RBO

    http://www.itpub.net/thread-263395-1-1.html 参数不能随便改啊.. optimizer_features_enable('8.1.7') ORACLE 提供了 ...

  5. 关于postman

    1 Get 1.1 Params 直接显示在url上,即url参数,用&分隔开. springboot中可以用@RequestParam注解获取. 1.2 Headers 1.3 Body 1 ...

  6. 【监控笔记】【2.4】SQL Server中的 Ring Buffer 诊断各种系统资源压力情况

    SQL Server 操作系统(SQLOS)负责管理特定于SQL Server的操作系统资源. 其中相关的动态管理试图sys.dm_os_ring_buffers将被标识为仅供参考.不提供支持.不保证 ...

  7. Kubernetes组件及网络基础

    在前面的部分了解了Pod的创建删除 ,查看信息等.那么我们怎么去管理Pod呢?我们可以通过 ReplicationController 去管理维护 Pod. Replication Controlle ...

  8. Luogu P4040 [AHOI2014/JSOI2014]宅男计划

    题目 显然存活天数与叫外卖次数的函数是凸函数. 所以三分买外卖的次数. 然后把食品按保质期升序排序. 并且单调栈搞一下,把又贵又保质期短的丢掉. 那么随着保质期的增加,食品的价格一定上涨. 所以我们从 ...

  9. 【NOI2007】项链工厂 ——老题新做.jpg

    第一次是用 ODT 过的...(虽说跑得飞慢但它就是能过) 而且还写了发题解... 第二次是在考场上碰到了这道题,然后居然打了线段树,各种 bug 直接让代码爆零 但还是补好了代码重新交了一发,发现跑 ...

  10. C语言--一维数组,字符数组

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zuoyou1314/article/details/30799519 watermark/2/tex ...