void redrawKeyConfigChooser() { int& option = keyConfigChooser_option; KeyConfig* config = &keyConfigs[selectedKeyConfig]; clearConsole(); iprintf("Config: "); if (option == -1) iprintfColored(CONSOLE_COLOR_LIGHT_YELLOW, "* %s *\n\n", config->name); else iprintf(" %s \n\n", config->name); iprintf(" Button Function\n\n"); for (int i=0; i<NUM_BINDABLE_BUTTONS; i++) { #if defined(_3DS) // These button bits aren't assigned to anything, so no strings for them if((i > 15 && i < 24) || i == 12 || i == 13) continue; #endif int len = 11-strlen(dsKeyNames[i]); while (len > 0) { iprintf(" "); len--; } if (option == i) iprintfColored(CONSOLE_COLOR_LIGHT_YELLOW, "* %s | %s *\n", dsKeyNames[i], gbKeyNames[config->funcKeys[i]]); else iprintf(" %s | %s \n", dsKeyNames[i], gbKeyNames[config->funcKeys[i]]); } iprintf("\nPress X to make a new config."); if (selectedKeyConfig != 0) /* can't erase the default */ { iprintf("\n\nPress Y to delete this config."); } }
void redrawMenu() { PrintConsole* oldConsole = getPrintConsole(); setPrintConsole(menuConsole); consoleClear(); // Top line: submenu int pos=0; int nameStart = (32-strlen(menuList[menu].name)-2)/2; if (option == -1) { nameStart-=2; iprintfColored(CONSOLE_COLOR_LIGHT_GREEN, "<"); } else iprintf("<"); pos++; for (; pos<nameStart; pos++) iprintf(" "); if (option == -1) { iprintfColored(CONSOLE_COLOR_LIGHT_YELLOW, "* "); pos += 2; } { int color = (option == -1 ? CONSOLE_COLOR_LIGHT_YELLOW : CONSOLE_COLOR_WHITE); iprintfColored(color, "[%s]", menuList[menu].name); } pos += 2 + strlen(menuList[menu].name); if (option == -1) { iprintfColored(CONSOLE_COLOR_LIGHT_YELLOW, " *"); pos += 2; } for (; pos < 31; pos++) iprintf(" "); if (option == -1) iprintfColored(CONSOLE_COLOR_LIGHT_GREEN, ">"); else iprintf(">"); iprintf("\n"); // Rest of the lines: options for (int i=0; i<menuList[menu].numOptions; i++) { int option_color; if (!menuList[menu].options[i].enabled) option_color = CONSOLE_COLOR_GREY; else if (option == i) option_color = CONSOLE_COLOR_LIGHT_YELLOW; else option_color = CONSOLE_COLOR_WHITE; if (menuList[menu].options[i].numValues == 0) { for (unsigned int j=0; j<(32-strlen(menuList[menu].options[i].name))/2-2; j++) iprintf(" "); if (i == option) { iprintfColored(option_color, "* %s *\n\n", menuList[menu].options[i].name); } else iprintfColored(option_color, " %s \n\n", menuList[menu].options[i].name); } else { for (unsigned int j=0; j<16-strlen(menuList[menu].options[i].name); j++) iprintf(" "); if (i == option) { iprintfColored(option_color, "* "); iprintfColored(option_color, "%s ", menuList[menu].options[i].name); iprintfColored(menuList[menu].options[i].enabled ? CONSOLE_COLOR_LIGHT_GREEN : option_color, "%s", menuList[menu].options[i].values[menuList[menu].options[i].selection]); iprintfColored(option_color, " *"); } else { iprintf(" "); iprintfColored(option_color, "%s ", menuList[menu].options[i].name); iprintfColored(option_color, "%s", menuList[menu].options[i].values[menuList[menu].options[i].selection]); } iprintf("\n\n"); } } // Message at the bottom if (printMessage[0] != '\0') { int newlines = 23-(menuList[menu].numOptions*2+2)-1; for (int i=0; i<newlines; i++) iprintf("\n"); int spaces = 31-strlen(printMessage); for (int i=0; i<spaces; i++) iprintf(" "); iprintf("%s\n", printMessage); printMessage[0] = '\0'; } consoleSelect(oldConsole); }