Make option descriptions more readable, fix bug in draw.c

This commit is contained in:
TuxSH 2016-09-18 17:40:00 +02:00
parent d7bdf3fc19
commit efe66bc72e
2 changed files with 58 additions and 48 deletions

View File

@ -86,68 +86,69 @@ void configMenu(bool oldPinStatus)
#endif #endif
}; };
const char *optionsDescription[] = { "Select the default EmuNAND.\n" const char *optionsDescription[] = { "Select the default EmuNAND.\n\n"
"It will booted with no directional pad\n" "It will booted with no directional pad\n"
"buttons pressed", "buttons pressed.",
"Select the screen brightness", "Select the screen brightness",
"Activate a PIN lock.\n" "Activate a PIN lock.\n\n"
"The PIN will be asked each time\n" "The PIN will be asked each time\n"
"Luma3DS boots.\n" "Luma3DS boots.\n\n"
"4, 6 or 8 digits can be selected.\n" "4, 6 or 8 digits can be selected.\n\n"
"The ABXY buttons and the directional\n" "The ABXY buttons and the directional\n"
"pad buttons can be used as keys", "pad buttons can be used as keys.",
"Select the New 3DS CPU mode.\n" "Select the New 3DS CPU mode.\n\n"
"It will be always enabled.\n" "It will be always enabled.\n\n"
"'Clock+L2' can cause issues with some\n" "'Clock+L2' can cause issues with some\n"
"games", "games.",
#ifdef DEV #ifdef DEV
"Select the developer features.\n" "Select the developer features.\n\n"
"'ErrDisp' displays debug information\n" "\t* 'ErrDisp' displays debug info. "
"on the 'An error has occurred' screen.\n" "on the 'An error has occurred' screen.\n"
"'UNITINFO' makes the console be always\n" "\t* 'UNITINFO' makes the console be\n"
"detected as a development unit (which\n" "always detected as a development unit (which "
"breaks online features and allows\n" "breaks online features and\n"
"booting some developer software).\n" "allows booting some developer software).\n"
"'Off' disables exception handlers\n" "\t* 'Off' disables exception handlers\n"
"in FIRM", "in FIRM.",
#endif #endif
"If enabled SysNAND will be launched on\n" "If enabled SysNAND will be launched on\n"
"boot. Otherwise, an EmuNAND will.\n" "boot. Otherwise, an EmuNAND will.\n\n"
"Hold L on boot to switch NAND.\n" "Hold L on boot to switch NAND.\n\n"
"To use a different EmuNAND from the\n" "To use a different EmuNAND from the\n"
"default, hold a directional pad button\n" "default, hold a directional pad button\n"
"(Up/Right/Down/Left equal EmuNANDs\n" "(Up/Right/Down/Left equal EmuNANDs\n"
"1/2/3/4)", "1/2/3/4).",
"If enabled, when holding R on boot\n" "If enabled, when holding R on boot\n"
"EmuNAND will be booted with the\n" "EmuNAND will be booted with the\n"
"SysNAND FIRM. Otherwise, SysNAND will\n" "SysNAND FIRM. Otherwise, SysNAND will\n"
"be booted with an EmuNAND FIRM.\n" "be booted with an EmuNAND FIRM.\n\n"
"To use a different EmuNAND from the\n" "To use a different EmuNAND from the\n"
"default, hold a directional pad button\n" "default, hold a directional pad button\n"
"(Up/Right/Down/Left equal EmuNANDs\n" "(Up/Right/Down/Left equal EmuNANDs\n"
"1/2/3/4)", "1/2/3/4).",
"Enable overriding the region and\n" "Enable overriding the region and\n"
"language configuration and the usage\n" "language configuration and the usage\n"
"of patched code binaries for specific\n" "of patched code binaries for specific\n"
"games.\n" "games.\n\n"
"Also makes certain DLCs for\n" "Also makes certain DLCs for\n"
"out-of-region games work.\n" "out-of-region games work.\n\n"
"Refer to the wiki for instructions", "Refer to the wiki for instructions.",
"Show the currently booted NAND\n" "Show the currently booted NAND.\n\n"
"(Sys = SysNAND, Emu = EmuNAND 1,\n" "\t* Sys = SysNAND\n"
"EmuX = EmuNAND X,\n" "\t* Emu = EmuNAND 1\n"
"SysE = SysNAND with EmuNAND 1 FIRM,\n" "\t* EmuX = EmuNAND X\n"
"SyEX = SysNAND with EmuNAND X FIRM,\n" "\t* SysE = SysNAND with EmuNAND 1 FIRM\n"
"EmXS = EmuNAND X with SysNAND FIRM)\n" "\t* SyEX = SysNAND with EmuNAND X FIRM\n"
"\t* EmXS = EmuNAND X with SysNAND FIRM\n\n"
"or an user-defined custom string in\n" "or an user-defined custom string in\n"
"System Settings.\n" "System Settings.\n\n"
"Refer to the wiki for instructions", "Refer to the wiki for instructions.",
"Show the GBA boot screen when booting\n" "Show the GBA boot screen when booting\n"
"GBA games", "GBA games",
@ -155,9 +156,9 @@ void configMenu(bool oldPinStatus)
"If enabled, the splash screen will be\n" "If enabled, the splash screen will be\n"
"displayed before booting payloads,\n" "displayed before booting payloads,\n"
"otherwise it will be displayed\n" "otherwise it will be displayed\n"
"afterwards.\n" "afterwards.\n\n"
"Intended for splash screens that\n" "Intended for splash screens that\n"
"display button hints" "display button hints."
#ifdef DEV #ifdef DEV
, "Disable SVC, service, archive and ARM9\n" , "Disable SVC, service, archive and ARM9\n"
"exheader access checks" "exheader access checks"

View File

@ -76,23 +76,32 @@ void drawCharacter(char character, bool isTopScreen, u32 posX, u32 posY, u32 col
u32 drawString(const char *string, bool isTopScreen, u32 posX, u32 posY, u32 color) u32 drawString(const char *string, bool isTopScreen, u32 posX, u32 posY, u32 color)
{ {
for(u32 i = 0, line_i = 0; i < strlen(string); i++, line_i++) for(u32 i = 0, line_i = 0; i < strlen(string); i++)
{ {
if(string[i] == '\n') switch(string[i])
{
case '\n':
posY += SPACING_Y;
line_i = 0;
break;
case '\t':
line_i += 2;
break;
default:
//Make sure we never get out of the screen
if(line_i >= ((isTopScreen ? SCREEN_TOP_WIDTH : SCREEN_BOTTOM_WIDTH) - posX) / SPACING_X)
{ {
posY += SPACING_Y; posY += SPACING_Y;
line_i = 0; line_i = 0;
i++;
}
else if(line_i >= ((isTopScreen ? SCREEN_TOP_WIDTH : SCREEN_BOTTOM_WIDTH) - posX) / SPACING_X)
{
//Make sure we never get out of the screen
posY += SPACING_Y;
line_i = 1; //Little offset so we know the same string continues
if(string[i] == ' ') i++; //Spaces at the start look weird
} }
drawCharacter(string[i], isTopScreen, posX + line_i * SPACING_X, posY, color); drawCharacter(string[i], isTopScreen, posX + line_i * SPACING_X, posY, color);
line_i++;
break;
}
} }
return posY; return posY;