summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Derrick Renaud <derrickr@mamedev.org>2009-04-13 03:42:53 +0000
committer Derrick Renaud <derrickr@mamedev.org>2009-04-13 03:42:53 +0000
commitecac25b281a0d7bcdc5da1515f35a52427243014 (patch)
tree170e31b95562caaf563bc3ef406f4bb4dc34e47b
parent7242193ea02736f3d536189d1758c6e23fab65ef (diff)
Changed Player Input menu to be based off of sortorder instead of item->ref.
Currently an analog control creates the axis;inc;dec menu items all under the same ref. This means the UI still thinks it is adding items when you move between any of the three for the same control. You have to move to a different control before sequences are no longer added to that control. Harder to describe then to try. Try the current code. Map an INC button, move to DEC and map a button. Go back to INC and the old value is not cleared first.
-rw-r--r--src/emu/uimenu.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/emu/uimenu.c b/src/emu/uimenu.c
index 331071ab182..0457dec6bca 100644
--- a/src/emu/uimenu.c
+++ b/src/emu/uimenu.c
@@ -190,7 +190,7 @@ struct _settings_menu_state
typedef struct _input_menu_state input_menu_state;
struct _input_menu_state
{
- const void * lastref;
+ UINT16 last_sortorder;
const void * pollingref;
input_item_data * pollingitem;
UINT8 record_next;
@@ -1779,7 +1779,7 @@ static void menu_input_common(running_machine *machine, ui_menu *menu, void *par
/* an item was selected: begin polling */
case IPT_UI_SELECT:
menustate->pollingitem = item;
- menustate->lastref = item->ref;
+ menustate->last_sortorder = item->sortorder;
menustate->starting_seq = item->seq;
input_seq_poll_start((item->type == INPUT_TYPE_ANALOG) ? ITEM_CLASS_ABSOLUTE : ITEM_CLASS_SWITCH, menustate->record_next ? &item->seq : NULL);
invalidate = TRUE;
@@ -1794,9 +1794,9 @@ static void menu_input_common(running_machine *machine, ui_menu *menu, void *par
}
/* if the selection changed, reset the "record next" flag */
- if (item->ref != menustate->lastref)
+ if (item->sortorder != menustate->last_sortorder)
menustate->record_next = FALSE;
- menustate->lastref = item->ref;
+ menustate->last_sortorder = item->sortorder;
}
/* if the sequence changed, update it */