notaz.gp2x.de
/
libpicofe.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
input: get rid of pl2 flag, use 'bind types' instead
[libpicofe.git]
/
common
/
menu.c
diff --git
a/common/menu.c
b/common/menu.c
index
221a3b8
..
c74d314
100644
(file)
--- a/
common/menu.c
+++ b/
common/menu.c
@@
-328,7
+328,7
@@
static void me_draw(const menu_entry *entries, int sel)
{
\r
const menu_entry *ent;
\r
int x, y, w = 0, h = 0;
\r
{
\r
const menu_entry *ent;
\r
int x, y, w = 0, h = 0;
\r
- int offs,
opt
_offs = 27 * me_mfont_w;
\r
+ int offs,
col2
_offs = 27 * me_mfont_w;
\r
const char *name;
\r
int asel = 0;
\r
int i, n;
\r
const char *name;
\r
int asel = 0;
\r
int i, n;
\r
@@
-353,9
+353,9
@@
static void me_draw(const menu_entry *entries, int sel)
\r
if (ent->beh != MB_NONE)
\r
{
\r
\r
if (ent->beh != MB_NONE)
\r
{
\r
- if (wt >
opt
_offs)
\r
-
opt
_offs = wt + me_mfont_w;
\r
- wt =
opt
_offs;
\r
+ if (wt >
col2
_offs)
\r
+
col2
_offs = wt + me_mfont_w;
\r
+ wt =
col2
_offs;
\r
\r
switch (ent->beh) {
\r
case MB_NONE: break;
\r
\r
switch (ent->beh) {
\r
case MB_NONE: break;
\r
@@
-415,10
+415,10
@@
static void me_draw(const menu_entry *entries, int sel)
case MB_NONE:
\r
break;
\r
case MB_OPT_ONOFF:
\r
case MB_NONE:
\r
break;
\r
case MB_OPT_ONOFF:
\r
- text_out16(x +
opt
_offs, y, (*(int *)ent->var & ent->mask) ? "ON" : "OFF");
\r
+ text_out16(x +
col2
_offs, y, (*(int *)ent->var & ent->mask) ? "ON" : "OFF");
\r
break;
\r
case MB_OPT_RANGE:
\r
break;
\r
case MB_OPT_RANGE:
\r
- text_out16(x +
opt
_offs, y, "%i", *(int *)ent->var);
\r
+ text_out16(x +
col2
_offs, y, "%i", *(int *)ent->var);
\r
break;
\r
case MB_OPT_CUSTOM:
\r
case MB_OPT_CUSTONOFF:
\r
break;
\r
case MB_OPT_CUSTOM:
\r
case MB_OPT_CUSTONOFF:
\r
@@
-428,7
+428,7
@@
static void me_draw(const menu_entry *entries, int sel)
if (ent->generate_name)
\r
name = ent->generate_name(ent->id, &offs);
\r
if (name != NULL)
\r
if (ent->generate_name)
\r
name = ent->generate_name(ent->id, &offs);
\r
if (name != NULL)
\r
- text_out16(x +
opt
_offs + offs * me_mfont_w, y, "%s", name);
\r
+ text_out16(x +
col2
_offs + offs * me_mfont_w, y, "%s", name);
\r
break;
\r
}
\r
\r
break;
\r
}
\r
\r
@@
-1084,8
+1084,8
@@
static int menu_loop_savestate(int is_loading)
\r
static char *action_binds(int player_idx, int action_mask, int dev_id)
\r
{
\r
\r
static char *action_binds(int player_idx, int action_mask, int dev_id)
\r
{
\r
+ int k, count, can_combo, type;
\r
const int *binds;
\r
const int *binds;
\r
- int k, count;
\r
\r
static_buff[0] = 0;
\r
\r
\r
static_buff[0] = 0;
\r
\r
@@
-1094,21
+1094,30
@@
static char *action_binds(int player_idx, int action_mask, int dev_id)
return static_buff;
\r
\r
count = in_get_dev_info(dev_id, IN_INFO_BIND_COUNT);
\r
return static_buff;
\r
\r
count = in_get_dev_info(dev_id, IN_INFO_BIND_COUNT);
\r
+ can_combo = in_get_dev_info(dev_id, IN_INFO_DOES_COMBOS);
\r
+
\r
+ type = IN_BINDTYPE_EMU;
\r
+ if (player_idx >= 0) {
\r
+ can_combo = 0;
\r
+ type = IN_BINDTYPE_PLAYER12;
\r
+ }
\r
+ if (player_idx == 1)
\r
+ action_mask <<= 16;
\r
+
\r
for (k = 0; k < count; k++)
\r
{
\r
const char *xname;
\r
int len;
\r
for (k = 0; k < count; k++)
\r
{
\r
const char *xname;
\r
int len;
\r
- if (!(binds[k] & action_mask))
\r
- continue;
\r
\r
\r
- if (
player_idx >= 0 && ((binds[k] >> 16) & 3) != player_idx
)
\r
+ if (
!(binds[IN_BIND_OFFS(k, type)] & action_mask)
)
\r
continue;
\r
\r
xname = in_get_key_name(dev_id, k);
\r
len = strlen(static_buff);
\r
if (len) {
\r
continue;
\r
\r
xname = in_get_key_name(dev_id, k);
\r
len = strlen(static_buff);
\r
if (len) {
\r
- strncat(static_buff, " + ", sizeof(static_buff) - len - 1);
\r
- len += 3;
\r
+ strncat(static_buff, can_combo ? " + " : ", ",
\r
+ sizeof(static_buff) - len - 1);
\r
+ len += can_combo ? 3 : 2;
\r
}
\r
strncat(static_buff, xname, sizeof(static_buff) - len - 1);
\r
}
\r
}
\r
strncat(static_buff, xname, sizeof(static_buff) - len - 1);
\r
}
\r
@@
-1116,7
+1125,7
@@
static char *action_binds(int player_idx, int action_mask, int dev_id)
return static_buff;
\r
}
\r
\r
return static_buff;
\r
}
\r
\r
-static int count_bound_keys(int dev_id, int action_mask, int
player_idx
)
\r
+static int count_bound_keys(int dev_id, int action_mask, int
bindtype
)
\r
{
\r
const int *binds;
\r
int k, keys = 0;
\r
{
\r
const int *binds;
\r
int k, keys = 0;
\r
@@
-1129,13
+1138,8
@@
static int count_bound_keys(int dev_id, int action_mask, int player_idx)
count = in_get_dev_info(dev_id, IN_INFO_BIND_COUNT);
\r
for (k = 0; k < count; k++)
\r
{
\r
count = in_get_dev_info(dev_id, IN_INFO_BIND_COUNT);
\r
for (k = 0; k < count; k++)
\r
{
\r
- if (!(binds[k] & action_mask))
\r
- continue;
\r
-
\r
- if (player_idx >= 0 && ((binds[k] >> 16) & 3) != player_idx)
\r
- continue;
\r
-
\r
- keys++;
\r
+ if (binds[IN_BIND_OFFS(k, bindtype)] & action_mask)
\r
+ keys++;
\r
}
\r
\r
return keys;
\r
}
\r
\r
return keys;
\r
@@
-1191,7
+1195,8
@@
static void draw_key_config(const me_bind_action *opts, int opt_cnt, int player_
static void key_config_loop(const me_bind_action *opts, int opt_cnt, int player_idx)
\r
{
\r
int i, sel = 0, menu_sel_max = opt_cnt - 1;
\r
static void key_config_loop(const me_bind_action *opts, int opt_cnt, int player_idx)
\r
{
\r
int i, sel = 0, menu_sel_max = opt_cnt - 1;
\r
- int dev_id, dev_count, kc, is_down, mkey, unbind;
\r
+ int dev_id, dev_count, kc, is_down, mkey;
\r
+ int unbind, bindtype, mask;
\r
\r
for (i = 0, dev_id = -1, dev_count = 0; i < IN_MAX_DEVS; i++) {
\r
if (in_get_dev_name(i, 1, 0) != NULL) {
\r
\r
for (i = 0, dev_id = -1, dev_count = 0; i < IN_MAX_DEVS; i++) {
\r
if (in_get_dev_name(i, 1, 0) != NULL) {
\r
@@
-1244,19
+1249,20
@@
static void key_config_loop(const me_bind_action *opts, int opt_cnt, int player_
for (is_down = 1; is_down; )
\r
kc = in_update_keycode(&dev_id, &is_down, -1);
\r
\r
for (is_down = 1; is_down; )
\r
kc = in_update_keycode(&dev_id, &is_down, -1);
\r
\r
- i = count_bound_keys(dev_id, opts[sel].mask, player_idx);
\r
+ bindtype = player_idx >= 0 ? IN_BINDTYPE_PLAYER12 : IN_BINDTYPE_EMU;
\r
+ mask = opts[sel].mask;
\r
+ if (player_idx == 1)
\r
+ mask <<= 16;
\r
+
\r
+ i = count_bound_keys(dev_id, mask, bindtype);
\r
unbind = (i > 0);
\r
\r
/* allow combos if device supports them */
\r
unbind = (i > 0);
\r
\r
/* allow combos if device supports them */
\r
- if (i == 1 && in_get_dev_info(dev_id, IN_INFO_DOES_COMBOS))
\r
+ if (i == 1 && bindtype == IN_BINDTYPE_EMU &&
\r
+ in_get_dev_info(dev_id, IN_INFO_DOES_COMBOS))
\r
unbind = 0;
\r
\r
unbind = 0;
\r
\r
- in_bind_key(dev_id, kc, opts[sel].mask, unbind);
\r
- if (player_idx >= 0) {
\r
- /* FIXME */
\r
- in_bind_key(dev_id, kc, 3 << 16, 1);
\r
- in_bind_key(dev_id, kc, player_idx << 16, 0);
\r
- }
\r
+ in_bind_key(dev_id, kc, bindtype, mask, unbind);
\r
}
\r
}
\r
\r
}
\r
}
\r
\r
@@
-1280,10
+1286,6
@@
me_bind_action me_ctrl_actions[15] =
{ "Z ", 0x0100 }
\r
};
\r
\r
{ "Z ", 0x0100 }
\r
};
\r
\r
-// player2_flag, reserved, ?, ?,
\r
-// ?, ?, fast forward, menu
\r
-// "NEXT SAVE SLOT", "PREV SAVE SLOT", "SWITCH RENDERER", "SAVE STATE",
\r
-// "LOAD STATE", "VOLUME UP", "VOLUME DOWN", "DONE"
\r
me_bind_action emuctrl_actions[] =
\r
{
\r
{ "Load State ", PEV_STATE_LOAD },
\r
me_bind_action emuctrl_actions[] =
\r
{
\r
{ "Load State ", PEV_STATE_LOAD },
\r