Sonys TRC save data plolicy
帖子地址: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的更多相关文章
- HTML save data to CSV or excel
/********************************************************************************* * HTML save data ...
- Mobile data
1.Consume REST web services from app 2.De-serialize JSON into an in-memory object collection 3.Save ...
- ExtJS笔记 Ext.data.Model
A Model represents some object that your application manages. For example, one might define a Model ...
- 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 ...
- ios开发:Core Data概述
Core Data 概述 2005年的四月份,Apple 发布了 OS X 10.4,在这个版本中 Core Data 框架发布了.Core Data本身既不是数据库也不是数据库访问框架.相反,Cor ...
- 关于Core Data的一些整理(一)
关于Core Data的一些整理(一) 在Xcode7.2中只有Mast-Debug和Single View中可以勾选Use Core Data 如果勾选了Use Core Data,Xcode会自动 ...
- ThinkPHP5.0更改框架的验证方法对象->validate(true)->save();
我们更希望看到: // 新增对象至数据表 $result = $Teacher->validate(true)->save(); 而不是: // 新增对象至数据表 $result = $T ...
- [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 ...
- 《python for data analysis》第四章,numpy的基本使用
<利用python进行数据分析>第四章的程序,介绍了numpy的基本使用方法.(第三章为Ipython的基本使用) 科学计算.常用函数.数组处理.线性代数运算.随机模块…… # -*- c ...
随机推荐
- python+selenium模拟键盘输入
from selenium.webdriver.common.keys import Keys #键盘导入类 --------------------------------------------- ...
- Linux-定时任务-打包与压缩
figure:first-child { margin-top: -20px; } #write ol, #write ul { position: relative; } img { max-wid ...
- go net库
1 使用Listen函数创建一个server ln, err := net.Listen("tcp", ":8080") if err != nil { // ...
- iScroll使用参考
分享是传播.学习知识最好的方法 以下这篇文章是iScroll.js官网的中文翻译,尽管自己英文不好,但觉得原作者们翻译的这个资料还是可以的,基本用法介绍清楚了.如果你英文比较好的话,可以看看官网的资料 ...
- C++基础-多态
本文为 C++ 学习笔记,参考<Sams Teach Yourself C++ in One Hour a Day>第 8 版.<C++ Primer>第 5 版.<代码 ...
- P2672跳石头
这是2015noip的一道二分答案的题目,看了题解才会,, 题目给出石头的位置并且让你踩着石头往前跳,最多删掉m个石头还可以顺利通过,求解最短跳跃距离的最大值. 那么二分什么呢:mid为跳跃的长度.那 ...
- so easy(并查集+unordered_map)
There are nn points in an array with index from 11 to nn, and there are two operations to those poin ...
- java 如何重写equal 和hashcode方法(最佳实践)
先看完理解这篇:Java hashCode() 和 equals()的若干问题解答 实现高质量的equals方法的诀窍包括 使用==操作符检查“参数是否为这个对象的引用”: 使用instanceof操 ...
- “程序包com.sun.tools.javac.util不存在” 问题解决
最近工作中在编译打包项目的时候遇到了如标题所示的问题,报这个错误的类是 com.sun.tools.javac.util.Pair.问题很诡异,在Idea可以导入此类,项目启动运行也很正常,但就是在打 ...
- 吴恩达深度学习:2.1Logistic Regression逻辑回归及其损失函数
1.Logistic Regression是一个二元分类问题 (1)已知输入的特征向量x可能是一张图,你希望把它识别出来,这是不是猫图,你需要一个算法,可以给出预测值,更正式的y是一个概率,当输入特征 ...