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 {
|
||||
const char *title;
|
||||
|
||||
MenuItem items[24];
|
||||
MenuItem items[25];
|
||||
} Menu;
|
||||
|
||||
extern u32 menuCombo;
|
||||
|
||||
@ -36,6 +36,7 @@ void RosalinaMenu_TakeScreenshot(void);
|
||||
void RosalinaMenu_ShowCredits(void);
|
||||
void RosalinaMenu_ProcessList(void);
|
||||
void RosalinaMenu_SaveSettings(void);
|
||||
void RosalinaMenu_HomeMenu(void);
|
||||
void RosalinaMenu_Cheats(void);
|
||||
|
||||
void RosalinaMenu_PowerOffOrReboot(void);
|
||||
|
||||
@ -55,6 +55,7 @@ Menu rosalinaMenu = {
|
||||
{ "System configuration...", MENU, .menu = &sysconfigMenu },
|
||||
{ "Miscellaneous options...", MENU, .menu = &miscellaneousMenu },
|
||||
{ "Save settings", METHOD, .method = &RosalinaMenu_SaveSettings },
|
||||
{ "Return To Home Menu", METHOD, .method = &RosalinaMenu_HomeMenu },
|
||||
{ "Power off / reboot", METHOD, .method = &RosalinaMenu_PowerOffOrReboot },
|
||||
{ "System info", METHOD, .method = &RosalinaMenu_ShowSystemInfo },
|
||||
{ "Credits", METHOD, .method = &RosalinaMenu_ShowCredits },
|
||||
@ -301,6 +302,34 @@ static Result RosalinaMenu_WriteScreenshot(IFile *file, u32 width, bool top, boo
|
||||
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)
|
||||
{
|
||||
IFile file = {0};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user