\r
if (maxw < 0)\r
return;\r
-\r
- strncpy(buffer, texto, sizeof(buffer));\r
if (maxw > sizeof(buffer) - 1)\r
maxw = sizeof(buffer) - 1;\r
+\r
+ strncpy(buffer, texto, maxw);\r
buffer[maxw] = 0;\r
\r
smalltext_out16_(x, y, buffer, color);\r
\r
static unsigned int me_read_onoff(const menu_entry *ent)\r
{\r
- // guess var size based on mask to avoid reading too much\r
- if (ent->mask & 0xffff0000)\r
- return *(unsigned int *)ent->var & ent->mask;\r
- else if (ent->mask & 0xff00)\r
- return *(unsigned short *)ent->var & ent->mask;\r
- else\r
- return *(unsigned char *)ent->var & ent->mask;\r
+ return *(unsigned int *)ent->var & ent->mask;\r
}\r
\r
static void me_toggle_onoff(menu_entry *ent)\r
{\r
- // guess var size based on mask to avoid reading too much\r
- if (ent->mask & 0xffff0000)\r
- *(unsigned int *)ent->var ^= ent->mask;\r
- else if (ent->mask & 0xff00)\r
- *(unsigned short *)ent->var ^= ent->mask;\r
- else\r
- *(unsigned char *)ent->var ^= ent->mask;\r
+ *(unsigned int *)ent->var ^= ent->mask;\r
}\r
\r
static void me_draw(const menu_entry *entries, int sel, void (*draw_more)(void))\r
name = ent->generate_name(ent->id, &offs);\r
}\r
if (name != NULL) {\r
- text_out16(x, y, name);\r
+ text_out16(x, y, "%s", name);\r
leftname_end = x + (strlen(name) + 1) * me_mfont_w;\r
}\r
\r
case MB_NONE:\r
break;\r
case MB_OPT_ONOFF:\r
- text_out16(x + col2_offs, y, me_read_onoff(ent) ? "ON" : "OFF");\r
+ text_out16(x + col2_offs, y, "%s", me_read_onoff(ent) ? "ON" : "OFF");\r
break;\r
case MB_OPT_RANGE:\r
text_out16(x + col2_offs, y, "%i", *(int *)ent->var);\r
offs = x + col2_offs;\r
len = strlen(names[i]);\r
if (len > 10)\r
- offs += (10 - len - 2) * me_mfont_w;\r
+ offs += (10 - len) * me_mfont_w;\r
if (offs < leftname_end)\r
offs = leftname_end;\r
- if (i == *(unsigned char *)ent->var) {\r
+ if (i == *(int *)ent->var) {\r
text_out16(offs, y, "%s", names[i]);\r
break;\r
}\r
h = (g_menuscreen_h - h) / 2; // bottom area height\r
if (menu_error_msg[0] != 0) {\r
if (h >= me_mfont_h + 4)\r
- text_out16(5, g_menuscreen_h - me_mfont_h - 4, menu_error_msg);\r
+ text_out16(5, g_menuscreen_h - me_mfont_h - 4, "%s", menu_error_msg);\r
else\r
lprintf("menu msg doesn't fit!\n");\r
\r
names = (const char **)entry->data;\r
for (c = 0; names[c] != NULL; c++)\r
;\r
- *(signed char *)entry->var += is_next ? 1 : -1;\r
- if (*(signed char *)entry->var < 0)\r
- *(signed char *)entry->var = 0;\r
- if (*(signed char *)entry->var >= c)\r
- *(signed char *)entry->var = c - 1;\r
+ *(int *)entry->var += is_next ? 1 : -1;\r
+ if (*(int *)entry->var < 0)\r
+ *(int *)entry->var = 0;\r
+ if (*(int *)entry->var >= c)\r
+ *(int *)entry->var = c - 1;\r
return 1;\r
default:\r
return 0;\r
menu_draw_begin(1, 0);\r
\r
for (p = msg; *p != 0 && y <= g_menuscreen_h - me_mfont_h; y += me_mfont_h) {\r
- text_out16(x, y, p);\r
+ text_out16(x, y, "%s", p);\r
\r
for (; *p != 0 && *p != '\n'; p++)\r
;\r
snprintf(tmp + len, sizeof(tmp) - len, "%s - cancel)", nm);\r
len = strlen(tmp);\r
\r
- text_out16(mid - me_mfont_w * len / 2, 12 * me_mfont_h, tmp);\r
+ text_out16(mid - me_mfont_w * len / 2, 12 * me_mfont_h, "%s", tmp);\r
menu_draw_end();\r
\r
while (in_menu_wait_any(NULL, 50) & (PBTN_MENU|PBTN_MA2));\r
{\r
int i;\r
\r
- sel++;\r
for (i = sel + 1; ; i++) {\r
if (i >= len)\r
i = 1;\r
break;\r
}\r
\r
- return i - 1;\r
+ return i;\r
}\r
\r
static const char *menu_loop_romsel(char *curr_path, int len,\r
type = IN_BINDTYPE_EMU;\r
if (player_idx >= 0) {\r
can_combo = 0;\r
- type = IN_BINDTYPE_PLAYER12;\r
+ type = IN_BINDTYPE_PLAYER12 + (player_idx >> 1);\r
+ if (player_idx & 1)\r
+ action_mask <<= 16;\r
}\r
- if (player_idx == 1)\r
- action_mask <<= 16;\r
\r
if (dev_id >= 0)\r
dev = dev_last = dev_id;\r
snprintf(buff2, sizeof(buff2), "%s", in_get_key_name(-1, -PBTN_MOK));\r
snprintf(buff, sizeof(buff), "%s - bind, %s - clear", buff2,\r
in_get_key_name(-1, -PBTN_MA2));\r
- text_out16(x, g_menuscreen_h - 4 * me_mfont_h, buff);\r
+ text_out16(x, g_menuscreen_h - 4 * me_mfont_h, "%s", buff);\r
}\r
else\r
text_out16(x, g_menuscreen_h - 4 * me_mfont_h, "Press a button to bind/unbind");\r
\r
if (dev_count > 1) {\r
- text_out16(x, g_menuscreen_h - 3 * me_mfont_h, dev_name);\r
+ text_out16(x, g_menuscreen_h - 3 * me_mfont_h, "%s", dev_name);\r
text_out16(x, g_menuscreen_h - 2 * me_mfont_h, "Press left/right for other devs");\r
}\r
\r
\r
dev_id = -1; // show all\r
mask_shift = 0;\r
- if (player_idx == 1)\r
- mask_shift = 16;\r
- bindtype = player_idx >= 0 ? IN_BINDTYPE_PLAYER12 : IN_BINDTYPE_EMU;\r
+ if (player_idx >= 0) {\r
+ if (player_idx & 1)\r
+ mask_shift = 16;\r
+ bindtype = IN_BINDTYPE_PLAYER12 + (player_idx >> 1);\r
+ } else\r
+ bindtype = IN_BINDTYPE_EMU;\r
\r
for (;;)\r
{\r