mirror of
https://github.com/LumaTeam/Luma3DS.git
synced 2026-02-22 01:44:38 +00:00
Add "Return to Home Menu" button for consoles with broken Home Buttons (#2143)
This commit is contained in:
parent
4cfca3c55d
commit
db639a80c9
@ -62,7 +62,7 @@ typedef struct MenuItem {
|
|||||||
typedef struct Menu {
|
typedef struct Menu {
|
||||||
const char *title;
|
const char *title;
|
||||||
|
|
||||||
MenuItem items[24];
|
MenuItem items[25];
|
||||||
} Menu;
|
} Menu;
|
||||||
|
|
||||||
extern u32 menuCombo;
|
extern u32 menuCombo;
|
||||||
|
|||||||
@ -36,6 +36,7 @@ void RosalinaMenu_TakeScreenshot(void);
|
|||||||
void RosalinaMenu_ShowCredits(void);
|
void RosalinaMenu_ShowCredits(void);
|
||||||
void RosalinaMenu_ProcessList(void);
|
void RosalinaMenu_ProcessList(void);
|
||||||
void RosalinaMenu_SaveSettings(void);
|
void RosalinaMenu_SaveSettings(void);
|
||||||
|
void RosalinaMenu_HomeMenu(void);
|
||||||
void RosalinaMenu_Cheats(void);
|
void RosalinaMenu_Cheats(void);
|
||||||
|
|
||||||
void RosalinaMenu_PowerOffOrReboot(void);
|
void RosalinaMenu_PowerOffOrReboot(void);
|
||||||
|
|||||||
@ -55,6 +55,7 @@ Menu rosalinaMenu = {
|
|||||||
{ "System configuration...", MENU, .menu = &sysconfigMenu },
|
{ "System configuration...", MENU, .menu = &sysconfigMenu },
|
||||||
{ "Miscellaneous options...", MENU, .menu = &miscellaneousMenu },
|
{ "Miscellaneous options...", MENU, .menu = &miscellaneousMenu },
|
||||||
{ "Save settings", METHOD, .method = &RosalinaMenu_SaveSettings },
|
{ "Save settings", METHOD, .method = &RosalinaMenu_SaveSettings },
|
||||||
|
{ "Return To Home Menu", METHOD, .method = &RosalinaMenu_HomeMenu },
|
||||||
{ "Power off / reboot", METHOD, .method = &RosalinaMenu_PowerOffOrReboot },
|
{ "Power off / reboot", METHOD, .method = &RosalinaMenu_PowerOffOrReboot },
|
||||||
{ "System info", METHOD, .method = &RosalinaMenu_ShowSystemInfo },
|
{ "System info", METHOD, .method = &RosalinaMenu_ShowSystemInfo },
|
||||||
{ "Credits", METHOD, .method = &RosalinaMenu_ShowCredits },
|
{ "Credits", METHOD, .method = &RosalinaMenu_ShowCredits },
|
||||||
@ -301,6 +302,34 @@ static Result RosalinaMenu_WriteScreenshot(IFile *file, u32 width, bool top, boo
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RosalinaMenu_HomeMenu(void) {
|
||||||
|
Draw_Lock();
|
||||||
|
Draw_ClearFramebuffer();
|
||||||
|
Draw_FlushFramebuffer();
|
||||||
|
Draw_Unlock();
|
||||||
|
|
||||||
|
do {
|
||||||
|
Draw_DrawString(10, 10, COLOR_TITLE, "Rosalina -- Return to Home");
|
||||||
|
|
||||||
|
srvPublishToSubscriber(0x204, 0);
|
||||||
|
|
||||||
|
Draw_Lock();
|
||||||
|
Draw_ClearFramebuffer();
|
||||||
|
Draw_DrawString(10, 30, COLOR_WHITE, "Exit Rosalina to get back to the Home Menu.");
|
||||||
|
Draw_DrawString(10, 40, COLOR_WHITE, "Press A to confirm");
|
||||||
|
Draw_FlushFramebuffer();
|
||||||
|
Draw_Unlock();
|
||||||
|
|
||||||
|
u32 pressed = waitInputWithTimeout(1000);
|
||||||
|
|
||||||
|
if(pressed & KEY_A)
|
||||||
|
return;
|
||||||
|
else if(pressed & KEY_B)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
while(!menuShouldExit);
|
||||||
|
}
|
||||||
|
|
||||||
void RosalinaMenu_TakeScreenshot(void)
|
void RosalinaMenu_TakeScreenshot(void)
|
||||||
{
|
{
|
||||||
IFile file = {0};
|
IFile file = {0};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user