Changed ui_menu_get_selection() and ui_menu_set_selection() to use itemrefs

instead of indexes as per Aaron's guidance.
This commit is contained in:
Nathan Woods 2008-07-15 11:04:30 +00:00
parent f9f57af7a1
commit efcaebaea2
2 changed files with 17 additions and 6 deletions

View File

@ -3131,9 +3131,11 @@ static void menu_render_triangle(bitmap_t *dest, const bitmap_t *source, const r
of the currently selected menu item
-------------------------------------------------*/
int ui_menu_get_selection(ui_menu *menu)
void *ui_menu_get_selection(ui_menu *menu)
{
return menu->selected;
return (menu->selected >= 0) && (menu->selected < menu->numitems)
? menu->item[menu->selected].ref
: NULL;
}
@ -3143,7 +3145,16 @@ int ui_menu_get_selection(ui_menu *menu)
of the currently selected menu item
-------------------------------------------------*/
void ui_menu_set_selection(ui_menu *menu, int selected)
void ui_menu_set_selection(ui_menu *menu, void *selected_itemref)
{
menu->selected = selected;
int i;
for (i = 0; i < menu->numitems; i++)
{
if (menu->item[i].ref == selected_itemref)
{
menu->selected = i;
return;
}
}
menu->selected = -1;
}

View File

@ -143,10 +143,10 @@ int ui_menu_is_force_game_select(void);
/* ----- accessors ----- */
/* retrieves the index of the currently selected menu item */
int ui_menu_get_selection(ui_menu *menu);
void *ui_menu_get_selection(ui_menu *menu);
/* changes the index of the currently selected menu item */
void ui_menu_set_selection(ui_menu *menu, int selected);
void ui_menu_set_selection(ui_menu *menu, void *selected_itemref);