mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
In TYPE_SAVE/TYPE_LOAD, show a confirmation.
AUTOSAVE/AUTOLOAD don't, SAVE/LOAD do.
This commit is contained in:
parent
c13a101901
commit
203abe6f7f
3 changed files with 95 additions and 17 deletions
|
@ -57,8 +57,14 @@ int PSPSaveDialog::Init(int paramAddr)
|
|||
|
||||
switch(param.GetPspParam()->mode)
|
||||
{
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_AUTOLOAD:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_LOAD:
|
||||
DEBUG_LOG(HLE, "Loading. Title: %s Save: %s File: %s", param.GetGameName(param.GetPspParam()).c_str(), param.GetSaveName(param.GetPspParam()).c_str(), param.GetFileName(param.GetPspParam()).c_str());
|
||||
if (param.GetFileInfo(0).size != 0)
|
||||
display = DS_LOAD_CONFIRM;
|
||||
else
|
||||
display = DS_LOAD_NODATA;
|
||||
break;
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_AUTOLOAD:
|
||||
DEBUG_LOG(HLE, "Loading. Title: %s Save: %s File: %s", param.GetGameName(param.GetPspParam()).c_str(), param.GetSaveName(param.GetPspParam()).c_str(), param.GetFileName(param.GetPspParam()).c_str());
|
||||
display = DS_NONE;
|
||||
break;
|
||||
|
@ -69,8 +75,14 @@ int PSPSaveDialog::Init(int paramAddr)
|
|||
else
|
||||
display = DS_LOAD_LIST_CHOICE;
|
||||
break;
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_AUTOSAVE:
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_SAVE:
|
||||
DEBUG_LOG(HLE, "Saving. Title: %s Save: %s File: %s", param.GetGameName(param.GetPspParam()).c_str(), param.GetGameName(param.GetPspParam()).c_str(), param.GetFileName(param.GetPspParam()).c_str());
|
||||
if (param.GetFileInfo(0).size != 0)
|
||||
display = DS_SAVE_CONFIRM_OVERWRITE;
|
||||
else
|
||||
display = DS_SAVE_CONFIRM;
|
||||
break;
|
||||
case SCE_UTILITY_SAVEDATA_TYPE_AUTOSAVE:
|
||||
DEBUG_LOG(HLE, "Saving. Title: %s Save: %s File: %s", param.GetGameName(param.GetPspParam()).c_str(), param.GetGameName(param.GetPspParam()).c_str(), param.GetFileName(param.GetPspParam()).c_str());
|
||||
display = DS_NONE;
|
||||
break;
|
||||
|
@ -423,6 +435,7 @@ int PSPSaveDialog::Update()
|
|||
DisplaySaveDataInfo1();
|
||||
|
||||
DisplayEnterBack();
|
||||
|
||||
if (IsButtonPressed(cancelButtonFlag))
|
||||
{
|
||||
param.GetPspParam()->result = SCE_UTILITY_DIALOG_RESULT_CANCEL;
|
||||
|
@ -452,9 +465,39 @@ int PSPSaveDialog::Update()
|
|||
}
|
||||
EndDraw();
|
||||
break;
|
||||
case DS_SAVE_CONFIRM:
|
||||
StartDraw();
|
||||
|
||||
DisplaySaveIcon();
|
||||
DisplaySaveDataInfo2();
|
||||
|
||||
DisplayConfirmationYesNo(d->T("Confirm Save", "Do you want to save this data?"));
|
||||
|
||||
DisplayEnterBack();
|
||||
if (IsButtonPressed(cancelButtonFlag) || (IsButtonPressed(okButtonFlag) && yesnoChoice == 0))
|
||||
{
|
||||
param.GetPspParam()->result = SCE_UTILITY_DIALOG_RESULT_CANCEL;
|
||||
StartFade(false);
|
||||
}
|
||||
else if (IsButtonPressed(okButtonFlag))
|
||||
{
|
||||
display = DS_SAVE_SAVING;
|
||||
if (param.Save(param.GetPspParam(), param.GetSelectedSave()))
|
||||
{
|
||||
param.SetPspParam(param.GetPspParam()); // Optim : Just Update modified save
|
||||
display = DS_SAVE_DONE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: This should probably show an error message?
|
||||
StartFade(false);
|
||||
}
|
||||
}
|
||||
|
||||
EndDraw();
|
||||
break;
|
||||
case DS_SAVE_CONFIRM_OVERWRITE:
|
||||
StartDraw();
|
||||
|
||||
|
||||
DisplaySaveIcon();
|
||||
DisplaySaveDataInfo2();
|
||||
|
@ -462,28 +505,31 @@ int PSPSaveDialog::Update()
|
|||
DisplayConfirmationYesNo(d->T("Do you want to overwrite the data?"));
|
||||
|
||||
DisplayEnterBack();
|
||||
if (IsButtonPressed(cancelButtonFlag))
|
||||
if (IsButtonPressed(cancelButtonFlag) || (IsButtonPressed(okButtonFlag) && yesnoChoice == 0))
|
||||
{
|
||||
display = DS_SAVE_LIST_CHOICE;
|
||||
if (param.GetPspParam()->mode != SCE_UTILITY_SAVEDATA_TYPE_SAVE)
|
||||
display = DS_SAVE_LIST_CHOICE;
|
||||
else
|
||||
{
|
||||
param.GetPspParam()->result = SCE_UTILITY_DIALOG_RESULT_CANCEL;
|
||||
StartFade(false);
|
||||
}
|
||||
}
|
||||
else if (IsButtonPressed(okButtonFlag))
|
||||
{
|
||||
if(yesnoChoice == 0)
|
||||
display = DS_SAVE_SAVING;
|
||||
if(param.Save(param.GetPspParam(),currentSelectedSave))
|
||||
{
|
||||
display = DS_SAVE_LIST_CHOICE;
|
||||
param.SetPspParam(param.GetPspParam()); // Optim : Just Update modified save
|
||||
display = DS_SAVE_DONE;
|
||||
}
|
||||
else
|
||||
{
|
||||
display = DS_SAVE_SAVING;
|
||||
if(param.Save(param.GetPspParam(),currentSelectedSave))
|
||||
{
|
||||
param.SetPspParam(param.GetPspParam()); // Optim : Just Update modified save
|
||||
display = DS_SAVE_DONE;
|
||||
}
|
||||
// TODO: This should probably show an error message?
|
||||
if (param.GetPspParam()->mode != SCE_UTILITY_SAVEDATA_TYPE_SAVE)
|
||||
display = DS_SAVE_LIST_CHOICE;
|
||||
else
|
||||
{
|
||||
display = DS_SAVE_LIST_CHOICE; // This will probably need error message ?
|
||||
}
|
||||
StartFade(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -544,6 +590,36 @@ int PSPSaveDialog::Update()
|
|||
|
||||
EndDraw();
|
||||
break;
|
||||
case DS_LOAD_CONFIRM:
|
||||
StartDraw();
|
||||
|
||||
DisplaySaveIcon();
|
||||
DisplaySaveDataInfo2();
|
||||
|
||||
DisplayConfirmationYesNo(d->T("ConfirmLoad", "Load this data?"));
|
||||
|
||||
DisplayEnterBack();
|
||||
if (IsButtonPressed(cancelButtonFlag) || (IsButtonPressed(okButtonFlag) && yesnoChoice == 0))
|
||||
{
|
||||
param.GetPspParam()->result = SCE_UTILITY_DIALOG_RESULT_CANCEL;
|
||||
StartFade(false);
|
||||
}
|
||||
else if (IsButtonPressed(okButtonFlag))
|
||||
{
|
||||
display = DS_LOAD_LOADING;
|
||||
if (param.Load(param.GetPspParam(), param.GetSelectedSave()))
|
||||
{
|
||||
display = DS_LOAD_DONE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: Show some error message?
|
||||
StartFade(false);
|
||||
}
|
||||
}
|
||||
|
||||
EndDraw();
|
||||
break;
|
||||
case DS_LOAD_LOADING:
|
||||
StartDraw();
|
||||
|
||||
|
|
|
@ -88,11 +88,13 @@ private :
|
|||
DS_NONE,
|
||||
|
||||
DS_SAVE_LIST_CHOICE,
|
||||
DS_SAVE_CONFIRM,
|
||||
DS_SAVE_CONFIRM_OVERWRITE,
|
||||
DS_SAVE_SAVING,
|
||||
DS_SAVE_DONE,
|
||||
|
||||
DS_LOAD_LIST_CHOICE,
|
||||
DS_LOAD_CONFIRM,
|
||||
DS_LOAD_LOADING,
|
||||
DS_LOAD_DONE,
|
||||
DS_LOAD_NODATA,
|
||||
|
|
|
@ -110,7 +110,7 @@ struct SceUtilitySavedataParam
|
|||
char unused[3];
|
||||
/** saveName: name of the particular save, normally a number */
|
||||
char saveName[20];
|
||||
int saveNameList;
|
||||
u32 saveNameList;
|
||||
/** fileName: name of the data file of the game for example DATA.BIN */
|
||||
char fileName[13];
|
||||
char unused2[3];
|
||||
|
|
Loading…
Add table
Reference in a new issue