diff --git a/source/tegraexplorer/fs/fsmenu.c b/source/tegraexplorer/fs/fsmenu.c index 5846be6..f5796d3 100644 --- a/source/tegraexplorer/fs/fsmenu.c +++ b/source/tegraexplorer/fs/fsmenu.c @@ -36,7 +36,7 @@ void fileexplorer(const char *startpath, int type){ */ while (1){ - res = menu_make(fsreader_files, mu_countObjects(fsreader_files, 0), currentpath); + res = menu_make(fsreader_files, mu_countObjects(fsreader_files, 0, 0), currentpath); switch (res){ case FILEMENU_RETURN: if (!strcmp(startpath, currentpath)) diff --git a/source/tegraexplorer/gfx/menu.c b/source/tegraexplorer/gfx/menu.c index 9bed238..223dcef 100644 --- a/source/tegraexplorer/gfx/menu.c +++ b/source/tegraexplorer/gfx/menu.c @@ -70,7 +70,7 @@ int menu_make(menu_entry *entries, int amount, const char *toptext){ gfx_clearscreen(); - calculatedamount = mu_countObjects(entries, ISMENU); + calculatedamount = mu_countObjects(entries, amount, ISMENU); gfx_con_setpos(0, 16); diff --git a/source/tegraexplorer/utils/menuUtils.c b/source/tegraexplorer/utils/menuUtils.c index 6f67d76..fba4d56 100644 --- a/source/tegraexplorer/utils/menuUtils.c +++ b/source/tegraexplorer/utils/menuUtils.c @@ -20,17 +20,14 @@ void mu_createObjects(int size, menu_entry **menu){ (*menu)[size].name = NULL; } -int mu_countObjects(menu_entry *entries, u8 propertyMask){ +int mu_countObjects(menu_entry *entries, u32 count, u8 propertyMask){ int amount = 0; - for (u32 i = 0; entries[i].name != NULL; i++){ + for (u32 i = 0; (count) ? i < count : entries[i].name != NULL; i++){ if (!(entries[i].property & propertyMask)) amount++; } - while (entries[amount].name != NULL) - amount++; - return amount; } diff --git a/source/tegraexplorer/utils/menuUtils.h b/source/tegraexplorer/utils/menuUtils.h index 90c5572..db8725e 100644 --- a/source/tegraexplorer/utils/menuUtils.h +++ b/source/tegraexplorer/utils/menuUtils.h @@ -4,5 +4,5 @@ void mu_createObjects(int size, menu_entry **menu); void mu_clearObjects(menu_entry **menu); -int mu_countObjects(menu_entry *entries, u8 propertyMask); +int mu_countObjects(menu_entry *entries, u32 count, u8 propertyMask); void mu_copySingle(char *name, u32 storage, u8 property, menu_entry *out); \ No newline at end of file