int menu_more() { int i = 0; menu_index = 0; while (aptMainLoop()) { hidScanInput(); u32 kDown = hidKeysDown(); if (kDown & KEY_DOWN) { menu_index++; if (menu_index >= menu_count) menu_index = 0; } if (kDown & KEY_UP) { menu_index--; if (menu_index < 0) menu_index = menu_count - 1; } if (kDown & KEY_A) { if (menu_index == 0 && menu_choose() == 0) { return 0; } else if (menu_index == 1 && menu_netloader() == 0) { return 0; } else if (menu_index == 2) { menu_config(); } else if (menu_index == 3) { reboot(); } else if (menu_index == 4) { poweroff(); } } if (kDown & KEY_B) { return -1; } drawBg(); drawTitle("*** Select an option ***"); for (i = 0; i < menu_count; i++) { drawItem(i == menu_index, 16 * i, menu_item[i]); } // draw "help" switch (menu_index) { case 0: drawInfo("Browse for a file to boot or add a boot entry"); break; case 1: drawInfo("Netload a file (3dsx) from the computer with 3dslink"); break; case 2: drawInfo("Edit boot settings"); break; case 3: drawInfo("Reboot the 3ds..."); break; case 4: drawInfo("Shutdown the 3ds..."); break; default: break; } gfxSwap(); } return -1; }
int menu_more() { menu_index = 0; while (aptMainLoop()) { hidScanInput(); u32 kDown = hidKeysDown(); if (kDown & KEY_DOWN) { menu_index++; if (menu_index >= menu_count) menu_index = 0; } if (kDown & KEY_UP) { menu_index--; if (menu_index < 0) menu_index = menu_count - 1; } if (kDown & KEY_A) { if (menu_index == 0 && menu_choose() == 0) { return 0; } else if (menu_index == 1 && menu_netloader() == 0) { return 0; } else if (menu_index == 2) { menu_config(); } else if (menu_index == 3) { reboot(); } else if (menu_index == 4) { poweroff(); } } if (kDown & KEY_B) { return -1; } gfxClear(); gfxDrawText(GFX_TOP, GFX_LEFT, &fontDefault, "*** Select an option ***", 140, 20); int minX = 16; int maxX = 400 - 16; int minY = 32; int maxY = 240 - 16; drawRect(GFX_TOP, GFX_LEFT, minX, minY, maxX, maxY, 0xFF, 0xFF, 0xFF); minY += 20; int i; for (i = 0; i < menu_count; i++) { if (i >= menu_count) break; if (i == menu_index) { gfxDrawRectangle(GFX_TOP, GFX_LEFT, (u8[]) { 0xDC, 0xDC, 0xDC }, minX + 4, minY + (16 * i), maxX - 23, 15); gfxDrawText(GFX_TOP, GFX_LEFT, &fontSelected, menu_item[i], minX + 6, minY + (16 * i)); } else gfxDrawText(GFX_TOP, GFX_LEFT, &fontDefault, menu_item[i], minX + 6, minY + (16 * i)); }