mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Validate options in MsgDialog v3 per tests.
This commit is contained in:
parent
fa1c5e0f87
commit
bcdcd528b2
2 changed files with 20 additions and 15 deletions
|
@ -54,7 +54,7 @@ int PSPMsgDialog::Init(unsigned int paramAddr)
|
|||
Memory::Memcpy(&messageDialog,paramAddr,size);
|
||||
|
||||
// debug info
|
||||
int optionsNotCoded = ((messageDialog.options | SCE_UTILITY_MSGDIALOG_DEBUG_OPTION_CODED) ^ SCE_UTILITY_MSGDIALOG_DEBUG_OPTION_CODED);
|
||||
int optionsNotCoded = messageDialog.options & ~SCE_UTILITY_MSGDIALOG_OPTION_SUPPORTED;
|
||||
if(optionsNotCoded)
|
||||
{
|
||||
ERROR_LOG_REPORT(SCEUTILITY, "PSPMsgDialog options not coded : 0x%08x", optionsNotCoded);
|
||||
|
@ -70,7 +70,7 @@ int PSPMsgDialog::Init(unsigned int paramAddr)
|
|||
}
|
||||
else if(size == SCE_UTILITY_MSGDIALOG_SIZE_V2 && messageDialog.type == 1)
|
||||
{
|
||||
unsigned int validOp = SCE_UTILITY_MSGDIALOG_OPTION_TEXT |
|
||||
unsigned int validOp = SCE_UTILITY_MSGDIALOG_OPTION_TEXTSOUND |
|
||||
SCE_UTILITY_MSGDIALOG_OPTION_YESNO |
|
||||
SCE_UTILITY_MSGDIALOG_OPTION_DEFAULT_NO;
|
||||
if (((messageDialog.options | validOp) ^ validOp) != 0)
|
||||
|
@ -87,6 +87,11 @@ int PSPMsgDialog::Init(unsigned int paramAddr)
|
|||
flag |= DS_ERROR;
|
||||
messageDialog.result = SCE_UTILITY_MSGDIALOG_ERROR_BADOPTION;
|
||||
}
|
||||
if (messageDialog.options & ~SCE_UTILITY_MSGDIALOG_OPTION_SUPPORTED)
|
||||
{
|
||||
flag |= DS_ERROR;
|
||||
messageDialog.result = SCE_UTILITY_MSGDIALOG_ERROR_BADOPTION;
|
||||
}
|
||||
}
|
||||
|
||||
if(flag == 0)
|
||||
|
|
|
@ -19,22 +19,22 @@
|
|||
|
||||
#include "PSPDialog.h"
|
||||
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_ERROR 0x00000000
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_TEXT 0x00000001
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_NOSOUND 0x00000002
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_YESNO 0x00000010
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_OK 0x00000020
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_NOCANCEL 0x00000080
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_DEFAULT_NO 0x00000100
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_ERRORSOUND 0x00000000
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_TEXTSOUND 0x00000001
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_NOSOUND 0x00000002
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_YESNO 0x00000010
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_OK 0x00000020
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_NOCANCEL 0x00000080
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_DEFAULT_NO 0x00000100
|
||||
|
||||
#define SCE_UTILITY_MSGDIALOG_SIZE_V1 572
|
||||
#define SCE_UTILITY_MSGDIALOG_SIZE_V2 580
|
||||
#define SCE_UTILITY_MSGDIALOG_SIZE_V3 708
|
||||
#define SCE_UTILITY_MSGDIALOG_SIZE_V1 572
|
||||
#define SCE_UTILITY_MSGDIALOG_SIZE_V2 580
|
||||
#define SCE_UTILITY_MSGDIALOG_SIZE_V3 708
|
||||
|
||||
#define SCE_UTILITY_MSGDIALOG_DEBUG_OPTION_CODED 0x000001B3 // OR of all options coded to display warning
|
||||
#define SCE_UTILITY_MSGDIALOG_OPTION_SUPPORTED 0x000001B3 // OR of all options coded to display warning
|
||||
|
||||
#define SCE_UTILITY_MSGDIALOG_ERROR_BADOPTION 0x80110501
|
||||
#define SCE_UTILITY_MSGDIALOG_ERROR_ERRORCODEINVALID 0x80110502
|
||||
#define SCE_UTILITY_MSGDIALOG_ERROR_BADOPTION 0x80110501
|
||||
#define SCE_UTILITY_MSGDIALOG_ERROR_ERRORCODEINVALID 0x80110502
|
||||
|
||||
struct pspMessageDialog
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue