mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-26 04:32:35 +01:00
sceNpCustomMenu: improvements
This commit is contained in:
parent
80ef348600
commit
8f328b2624
@ -2165,11 +2165,29 @@ error_code sceNpCustomMenuRegisterActions(vm::cptr<SceNpCustomMenu> menu, vm::pt
|
|||||||
return SCE_NP_CUSTOM_MENU_ERROR_NOT_INITIALIZED;
|
return SCE_NP_CUSTOM_MENU_ERROR_NOT_INITIALIZED;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!menu || !handler)
|
if (!menu || !handler) // TODO: handler check might come later
|
||||||
{
|
{
|
||||||
return SCE_NP_CUSTOM_MENU_ERROR_INVALID_ARGUMENT;
|
return SCE_NP_CUSTOM_MENU_ERROR_INVALID_ARGUMENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (menu->numActions > SCE_NP_CUSTOM_MENU_ACTION_ITEMS_TOTAL_MAX)
|
||||||
|
{
|
||||||
|
return SCE_NP_CUSTOM_MENU_ERROR_EXCEEDS_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (u32 i = 0; i < menu->numActions; i++)
|
||||||
|
{
|
||||||
|
if (!menu->actions[i].name)
|
||||||
|
{
|
||||||
|
return SCE_NP_CUSTOM_MENU_ERROR_INVALID_ARGUMENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!memchr(menu->actions[i].name.get_ptr(), '\0', SCE_NP_CUSTOM_MENU_ACTION_CHARACTER_MAX))
|
||||||
|
{
|
||||||
|
return SCE_NP_CUSTOM_MENU_ERROR_EXCEEDS_MAX;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2184,6 +2202,8 @@ error_code sceNpCustomMenuActionSetActivation(vm::cptr<SceNpCustomMenuIndexArray
|
|||||||
return SCE_NP_CUSTOM_MENU_ERROR_NOT_INITIALIZED;
|
return SCE_NP_CUSTOM_MENU_ERROR_NOT_INITIALIZED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: SCE_NP_CUSTOM_MENU_ERROR_NOT_REGISTERED
|
||||||
|
|
||||||
if (!array)
|
if (!array)
|
||||||
{
|
{
|
||||||
return SCE_NP_CUSTOM_MENU_ERROR_INVALID_ARGUMENT;
|
return SCE_NP_CUSTOM_MENU_ERROR_INVALID_ARGUMENT;
|
||||||
@ -2203,17 +2223,18 @@ error_code sceNpCustomMenuRegisterExceptionList(vm::cptr<SceNpCustomMenuActionEx
|
|||||||
return SCE_NP_CUSTOM_MENU_ERROR_NOT_INITIALIZED;
|
return SCE_NP_CUSTOM_MENU_ERROR_NOT_INITIALIZED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: SCE_NP_CUSTOM_MENU_ERROR_NOT_REGISTERED
|
||||||
|
|
||||||
|
if (numItems > SCE_NP_CUSTOM_MENU_EXCEPTION_ITEMS_MAX)
|
||||||
|
{
|
||||||
|
return SCE_NP_CUSTOM_MENU_ERROR_EXCEEDS_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
if (!items)
|
if (!items)
|
||||||
{
|
{
|
||||||
return SCE_NP_CUSTOM_MENU_ERROR_INVALID_ARGUMENT;
|
return SCE_NP_CUSTOM_MENU_ERROR_INVALID_ARGUMENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (numItems > SCE_NP_CUSTOM_MENU_ACTION_ITEMS_MAX)
|
|
||||||
{
|
|
||||||
// TODO: what about SCE_NP_CUSTOM_MENU_ACTION_ITEMS_TOTAL_MAX
|
|
||||||
return SCE_NP_CUSTOM_MENU_ERROR_EXCEEDS_MAX;
|
|
||||||
}
|
|
||||||
|
|
||||||
return CELL_OK;
|
return CELL_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1205,7 +1205,7 @@ struct SceNpSignalingNetInfo
|
|||||||
struct SceNpCustomMenuAction
|
struct SceNpCustomMenuAction
|
||||||
{
|
{
|
||||||
be_t<u32> options;
|
be_t<u32> options;
|
||||||
char name[SCE_NP_CUSTOM_MENU_ACTION_CHARACTER_MAX];
|
vm::bcptr<char> name;
|
||||||
be_t<SceNpCustomMenuActionMask> mask;
|
be_t<SceNpCustomMenuActionMask> mask;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user