diff --git a/source/main.c b/source/main.c index 9f66150..bfdd5be 100644 --- a/source/main.c +++ b/source/main.c @@ -495,17 +495,17 @@ void menuMain(FILE** file) struct MenuEntry entries[] = { { - .String = str_opt_changefile, + .String = str_opt_edit, .Type = Entry_Button, }, { - .String = str_opt_edit, + .String = str_opt_screenshot, .Type = Entry_Button, }, { - .String = str_opt_screenshot, + .String = str_opt_changefile, .Type = Entry_Button, - } + }, }; s32 cursor = 0; @@ -515,7 +515,13 @@ void menuMain(FILE** file) switch(sel) { - case 0: // change file + case 0: // edit menu + menuEditVars(); + break; + case 1: // screenshot + menuScreenshot(); + break; + case 2: // change file { bool unloaded = false; while(true) @@ -549,12 +555,6 @@ void menuMain(FILE** file) } break; } - case 1: // edit menu - menuEditVars(); - break; - case 2: // screenshot - menuScreenshot(); - break; } abort: } diff --git a/source/menu/menu.c b/source/menu/menu.c index b8bf820..6d3800f 100644 --- a/source/menu/menu.c +++ b/source/menu/menu.c @@ -296,16 +296,20 @@ u32 menuInputs(struct MenuDat m) if (MENU_DOWN & keysrep) { (*m.Cursor)++; - if (*m.Cursor > m.NumEntries-1) *m.Cursor = 0; + if (*m.Cursor > m.NumEntries-1 || *m.Cursor < 0) *m.Cursor = 0; menudirty = true; } if (MENU_PAGEUP & keysrep) { - // todo + *m.Cursor -= 10; + if (*m.Cursor < 0) *m.Cursor = 0; + menudirty = true; } if (MENU_PAGEDOWN & keysrep) { - // todo + *m.Cursor += 10; + if (*m.Cursor > m.NumEntries-1 || *m.Cursor < 0) *m.Cursor = m.NumEntries-1; + menudirty = true; } } if ((ENTRY.Type == Entry_Button)) diff --git a/source/menuedit.c b/source/menuedit.c index cc81f80..ddd9efa 100644 --- a/source/menuedit.c +++ b/source/menuedit.c @@ -87,8 +87,8 @@ void menuClearColor() .Mask = 0x3F, }, }; - - //menuInputs(Str) + s32 cursor = 0; + menuInputs((struct MenuDat){&cursor, headers, entries, ARRSIZE(entries), InputsCommon}); } void menuEdgeColor() @@ -352,7 +352,7 @@ void menuEditGlobals() menuEdgeColor(); break; case 3: // clear color - //menuClearColor(); + menuClearColor(); break; case 4: // clear depth break;