mirror of
https://github.com/CTCaer/RetroArch.git
synced 2024-12-21 02:08:16 +00:00
Add player mouse index setting
This commit is contained in:
parent
f86f1b3e32
commit
a74197dc49
@ -1582,6 +1582,7 @@ static void config_set_defaults(void)
|
|||||||
settings->uints.input_analog_dpad_mode[i] = ANALOG_DPAD_NONE;
|
settings->uints.input_analog_dpad_mode[i] = ANALOG_DPAD_NONE;
|
||||||
if (!retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_LIBRETRO_DEVICE, &i))
|
if (!retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_LIBRETRO_DEVICE, &i))
|
||||||
input_config_set_device(i, RETRO_DEVICE_JOYPAD);
|
input_config_set_device(i, RETRO_DEVICE_JOYPAD);
|
||||||
|
settings->uints.input_mouse_index[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
video_driver_reset_custom_viewport();
|
video_driver_reset_custom_viewport();
|
||||||
@ -2339,6 +2340,9 @@ static bool config_load_file(const char *path, bool set_defaults,
|
|||||||
snprintf(buf, sizeof(buf), "input_player%u_analog_dpad_mode", i + 1);
|
snprintf(buf, sizeof(buf), "input_player%u_analog_dpad_mode", i + 1);
|
||||||
CONFIG_GET_INT_BASE(conf, settings, uints.input_analog_dpad_mode[i], buf);
|
CONFIG_GET_INT_BASE(conf, settings, uints.input_analog_dpad_mode[i], buf);
|
||||||
|
|
||||||
|
snprintf(buf, sizeof(buf), "input_player%u_mouse_index", i + 1);
|
||||||
|
CONFIG_GET_INT_BASE(conf, settings, uints.input_mouse_index[i], buf);
|
||||||
|
|
||||||
if (!retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_LIBRETRO_DEVICE, &i))
|
if (!retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_LIBRETRO_DEVICE, &i))
|
||||||
{
|
{
|
||||||
snprintf(buf, sizeof(buf), "input_libretro_device_p%u", i + 1);
|
snprintf(buf, sizeof(buf), "input_libretro_device_p%u", i + 1);
|
||||||
@ -3492,6 +3496,8 @@ bool config_save_file(const char *path)
|
|||||||
config_set_int(conf, cfg, input_config_get_device(i));
|
config_set_int(conf, cfg, input_config_get_device(i));
|
||||||
snprintf(cfg, sizeof(cfg), "input_player%u_analog_dpad_mode", i + 1);
|
snprintf(cfg, sizeof(cfg), "input_player%u_analog_dpad_mode", i + 1);
|
||||||
config_set_int(conf, cfg, settings->uints.input_analog_dpad_mode[i]);
|
config_set_int(conf, cfg, settings->uints.input_analog_dpad_mode[i]);
|
||||||
|
snprintf(cfg, sizeof(cfg), "input_player%u_mouse_index", i + 1);
|
||||||
|
config_set_int(conf, cfg, settings->uints.input_mouse_index[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Boolean settings */
|
/* Boolean settings */
|
||||||
|
@ -267,6 +267,7 @@ typedef struct settings
|
|||||||
|
|
||||||
unsigned input_joypad_map[MAX_USERS];
|
unsigned input_joypad_map[MAX_USERS];
|
||||||
unsigned input_device[MAX_USERS];
|
unsigned input_device[MAX_USERS];
|
||||||
|
unsigned input_mouse_index[MAX_USERS];
|
||||||
|
|
||||||
unsigned input_turbo_period;
|
unsigned input_turbo_period;
|
||||||
unsigned input_turbo_duty_cycle;
|
unsigned input_turbo_duty_cycle;
|
||||||
|
@ -701,6 +701,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_DEVICE_INDEX,
|
|||||||
"Device Index")
|
"Device Index")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_DEVICE_TYPE,
|
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_DEVICE_TYPE,
|
||||||
"Device Type")
|
"Device Type")
|
||||||
|
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_INDEX,
|
||||||
|
"Mouse Index")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_DRIVER,
|
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_DRIVER,
|
||||||
"Input Driver")
|
"Input Driver")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_DUTY_CYCLE,
|
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_DUTY_CYCLE,
|
||||||
|
@ -1299,7 +1299,36 @@ static int setting_action_right_bind_device(void *data, bool wraparound)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int setting_action_left_mouse_index(void *data, bool wraparound)
|
||||||
|
{
|
||||||
|
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||||
|
settings_t *settings = config_get_ptr();
|
||||||
|
|
||||||
|
if (!setting)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (settings->uints.input_mouse_index[setting->index_offset])
|
||||||
|
{
|
||||||
|
--settings->uints.input_mouse_index[setting->index_offset];
|
||||||
|
settings->modified = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int setting_action_right_mouse_index(void *data, bool wraparound)
|
||||||
|
{
|
||||||
|
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||||
|
settings_t *settings = config_get_ptr();
|
||||||
|
|
||||||
|
if (!setting)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
++settings->uints.input_mouse_index[setting->index_offset];
|
||||||
|
settings->modified = true;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
******* ACTION OK CALLBACK FUNCTIONS *******
|
******* ACTION OK CALLBACK FUNCTIONS *******
|
||||||
@ -1918,6 +1947,7 @@ static bool setting_append_list_input_player_options(
|
|||||||
static char key_bind_all[MAX_USERS][64];
|
static char key_bind_all[MAX_USERS][64];
|
||||||
static char key_bind_all_save_autoconfig[MAX_USERS][64];
|
static char key_bind_all_save_autoconfig[MAX_USERS][64];
|
||||||
static char key_bind_defaults[MAX_USERS][64];
|
static char key_bind_defaults[MAX_USERS][64];
|
||||||
|
static char mouse_index[MAX_USERS][64];
|
||||||
|
|
||||||
static char label[MAX_USERS][64];
|
static char label[MAX_USERS][64];
|
||||||
static char label_type[MAX_USERS][64];
|
static char label_type[MAX_USERS][64];
|
||||||
@ -1925,6 +1955,7 @@ static bool setting_append_list_input_player_options(
|
|||||||
static char label_bind_all[MAX_USERS][64];
|
static char label_bind_all[MAX_USERS][64];
|
||||||
static char label_bind_all_save_autoconfig[MAX_USERS][64];
|
static char label_bind_all_save_autoconfig[MAX_USERS][64];
|
||||||
static char label_bind_defaults[MAX_USERS][64];
|
static char label_bind_defaults[MAX_USERS][64];
|
||||||
|
static char label_mouse_index[MAX_USERS][64];
|
||||||
|
|
||||||
tmp_string[0] = '\0';
|
tmp_string[0] = '\0';
|
||||||
|
|
||||||
@ -1946,6 +1977,8 @@ static bool setting_append_list_input_player_options(
|
|||||||
fill_pathname_join_delim(key_bind_defaults[user],
|
fill_pathname_join_delim(key_bind_defaults[user],
|
||||||
tmp_string, "bind_defaults", '_',
|
tmp_string, "bind_defaults", '_',
|
||||||
sizeof(key_bind_defaults[user]));
|
sizeof(key_bind_defaults[user]));
|
||||||
|
fill_pathname_join_delim(mouse_index[user], tmp_string, "mouse_index", '_',
|
||||||
|
sizeof(mouse_index[user]));
|
||||||
|
|
||||||
snprintf(label[user], sizeof(label[user]),
|
snprintf(label[user], sizeof(label[user]),
|
||||||
"%s %u %s", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_USER), user + 1,
|
"%s %u %s", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_USER), user + 1,
|
||||||
@ -1965,6 +1998,9 @@ static bool setting_append_list_input_player_options(
|
|||||||
snprintf(label_bind_all_save_autoconfig[user], sizeof(label_bind_all_save_autoconfig[user]),
|
snprintf(label_bind_all_save_autoconfig[user], sizeof(label_bind_all_save_autoconfig[user]),
|
||||||
"%s %u %s", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_USER), user + 1,
|
"%s %u %s", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_USER), user + 1,
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_SAVE_AUTOCONFIG));
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_SAVE_AUTOCONFIG));
|
||||||
|
snprintf(label_mouse_index[user], sizeof(label_mouse_index[user]),
|
||||||
|
"%s %u %s", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_USER), user + 1,
|
||||||
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_INDEX));
|
||||||
|
|
||||||
CONFIG_UINT_ALT(
|
CONFIG_UINT_ALT(
|
||||||
list, list_info,
|
list, list_info,
|
||||||
@ -2058,6 +2094,22 @@ static bool setting_append_list_input_player_options(
|
|||||||
(*list)[list_info->index - 1].index_offset = user;
|
(*list)[list_info->index - 1].index_offset = user;
|
||||||
(*list)[list_info->index - 1].action_ok = &setting_action_ok_bind_all_save_autoconfig;
|
(*list)[list_info->index - 1].action_ok = &setting_action_ok_bind_all_save_autoconfig;
|
||||||
(*list)[list_info->index - 1].action_cancel = NULL;
|
(*list)[list_info->index - 1].action_cancel = NULL;
|
||||||
|
|
||||||
|
CONFIG_UINT_ALT(
|
||||||
|
list, list_info,
|
||||||
|
&settings->uints.input_mouse_index[user],
|
||||||
|
mouse_index[user],
|
||||||
|
label_mouse_index[user],
|
||||||
|
0,
|
||||||
|
&group_info,
|
||||||
|
&subgroup_info,
|
||||||
|
parent_group,
|
||||||
|
general_write_handler,
|
||||||
|
general_read_handler);
|
||||||
|
(*list)[list_info->index - 1].index = user + 1;
|
||||||
|
(*list)[list_info->index - 1].index_offset = user;
|
||||||
|
(*list)[list_info->index - 1].action_left = &setting_action_left_mouse_index;
|
||||||
|
(*list)[list_info->index - 1].action_right = &setting_action_right_mouse_index;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < RARCH_BIND_LIST_END; i ++)
|
for (i = 0; i < RARCH_BIND_LIST_END; i ++)
|
||||||
|
@ -574,6 +574,7 @@ enum msg_hash_enums
|
|||||||
MENU_ENUM_LABEL_VALUE_INPUT_BIND_ALL,
|
MENU_ENUM_LABEL_VALUE_INPUT_BIND_ALL,
|
||||||
MENU_ENUM_LABEL_VALUE_INPUT_BIND_DEFAULT_ALL,
|
MENU_ENUM_LABEL_VALUE_INPUT_BIND_DEFAULT_ALL,
|
||||||
MENU_ENUM_LABEL_VALUE_INPUT_SAVE_AUTOCONFIG,
|
MENU_ENUM_LABEL_VALUE_INPUT_SAVE_AUTOCONFIG,
|
||||||
|
MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_INDEX,
|
||||||
|
|
||||||
MENU_LABEL(INPUT_MAX_USERS),
|
MENU_LABEL(INPUT_MAX_USERS),
|
||||||
MENU_LABEL(INPUT_USER_BINDS),
|
MENU_LABEL(INPUT_USER_BINDS),
|
||||||
|
Loading…
Reference in New Issue
Block a user