Fix broken menus
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
Reference in New Issue
Block a user