Check whether there may be more than one save file names by mode.

This commit is contained in:
shenweip 2020-09-15 21:48:55 +08:00
parent 68735b4e52
commit 290efbc349
3 changed files with 27 additions and 1 deletions

View file

@ -129,6 +129,9 @@ int PSPSaveDialog::Init(int paramAddr)
break;
}
if(!param.wouldHasMultiSaveName(param.GetPspParam()))
currentSelectedSave = 0;
switch ((SceUtilitySavedataType)(u32)param.GetPspParam()->mode)
{
case SCE_UTILITY_SAVEDATA_TYPE_LOAD:

View file

@ -1398,7 +1398,7 @@ int SavedataParam::SetPspParam(SceUtilitySavedataParam *param)
saveDataListCount++;
}
if (saveDataListCount > 0)
if (saveDataListCount > 0 && wouldHasMultiSaveName(param))
{
hasMultipleFileName = true;
saveDataList = new SaveFileInfo[saveDataListCount];
@ -1724,6 +1724,27 @@ int SavedataParam::GetSaveNameIndex(SceUtilitySavedataParam* param)
return 0;
}
bool SavedataParam::wouldHasMultiSaveName(SceUtilitySavedataParam* param) {
switch ((SceUtilitySavedataType)(u32)param->mode) {
case SCE_UTILITY_SAVEDATA_TYPE_LOAD:
case SCE_UTILITY_SAVEDATA_TYPE_AUTOLOAD:
case SCE_UTILITY_SAVEDATA_TYPE_SAVE:
case SCE_UTILITY_SAVEDATA_TYPE_AUTOSAVE:
case SCE_UTILITY_SAVEDATA_TYPE_MAKEDATASECURE:
case SCE_UTILITY_SAVEDATA_TYPE_MAKEDATA:
case SCE_UTILITY_SAVEDATA_TYPE_READDATASECURE:
case SCE_UTILITY_SAVEDATA_TYPE_READDATA:
case SCE_UTILITY_SAVEDATA_TYPE_WRITEDATASECURE:
case SCE_UTILITY_SAVEDATA_TYPE_WRITEDATA:
case SCE_UTILITY_SAVEDATA_TYPE_ERASESECURE:
case SCE_UTILITY_SAVEDATA_TYPE_ERASE:
case SCE_UTILITY_SAVEDATA_TYPE_DELETEDATA:
return false;
default:
return true;
}
}
void SavedataParam::DoState(PointerWrap &p)
{
auto s = p.Section("SavedataParam", 1);

View file

@ -353,6 +353,8 @@ public:
int GetLastEmptySave();
int GetSaveNameIndex(SceUtilitySavedataParam* param);
bool wouldHasMultiSaveName(SceUtilitySavedataParam* param);
void DoState(PointerWrap &p);
private: