Add 'L2 + R2' menu toggle gamepad combo (#11935)

This commit is contained in:
jdgleaver 2021-01-24 15:33:13 +00:00 committed by GitHub
parent dbbf557954
commit b9691597d1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 86 additions and 52 deletions

View file

@ -681,17 +681,17 @@ static const bool default_systemfiles_in_content_dir = false;
static const bool default_screenshots_in_content_dir = false;
#if defined(_XBOX1) || defined(__PS3__) || defined(_XBOX360) || defined(DINGUX)
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_L3_R3;
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_L3_R3
#elif defined(PS2) || defined(PSP)
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_HOLD_START;
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_HOLD_START
#elif defined(VITA)
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_L1_R1_START_SELECT;
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_L1_R1_START_SELECT
#elif defined(SWITCH) || defined(ORBIS)
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_START_SELECT;
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_START_SELECT
#elif TARGET_OS_TV
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_DOWN_Y_L_R;
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_DOWN_Y_L_R
#else
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_NONE;
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_NONE
#endif
#if defined(VITA)

View file

@ -1868,7 +1868,7 @@ static struct config_uint_setting *populate_settings_uint(
SETTING_UINT("input_max_users", input_driver_get_uint(INPUT_ACTION_MAX_USERS), true, input_max_users, false);
SETTING_UINT("fps_update_interval", &settings->uints.fps_update_interval, true, DEFAULT_FPS_UPDATE_INTERVAL, false);
SETTING_UINT("memory_update_interval", &settings->uints.memory_update_interval, true, DEFAULT_MEMORY_UPDATE_INTERVAL, false);
SETTING_UINT("input_menu_toggle_gamepad_combo", &settings->uints.input_menu_toggle_gamepad_combo, true, menu_toggle_gamepad_combo, false);
SETTING_UINT("input_menu_toggle_gamepad_combo", &settings->uints.input_menu_toggle_gamepad_combo, true, DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO, false);
SETTING_UINT("input_hotkey_block_delay", &settings->uints.input_hotkey_block_delay, true, DEFAULT_INPUT_HOTKEY_BLOCK_DELAY, false);
#ifdef GEKKO
SETTING_UINT("input_mouse_scale", &settings->uints.input_mouse_scale, true, DEFAULT_MOUSE_SCALE, false);

View file

@ -62,6 +62,7 @@ enum input_toggle_type
INPUT_TOGGLE_HOLD_START,
INPUT_TOGGLE_HOLD_SELECT,
INPUT_TOGGLE_DOWN_SELECT,
INPUT_TOGGLE_L2_R2,
INPUT_TOGGLE_LAST
};

View file

@ -7440,6 +7440,30 @@ MSG_HASH(
MENU_ENUM_LABEL_VALUE_UNKNOWN,
"Unknown"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_DOWN_Y_L_R,
"Down + Y + L1 + R1"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_L3_R3,
"L3 + R3"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_L1_R1_START_SELECT,
"L1 + R1 + Start + Select"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_START_SELECT,
"Start + Select"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_L3_R,
"L3 + R1"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_L_R,
"L1 + R1"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_HOLD_START,
"Hold Start (2 seconds)"
@ -7452,6 +7476,10 @@ MSG_HASH(
MENU_ENUM_LABEL_VALUE_DOWN_SELECT,
"Down + Select"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_L2_R2,
"L2 + R2"
)
MSG_HASH(
MENU_ENUM_LABEL_RUMBLE_TYPE_DISABLED,
"<Disabled>"

View file

@ -6150,22 +6150,22 @@ static void setting_get_string_representation_toggle_gamepad_combo(
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NONE), len);
break;
case INPUT_TOGGLE_DOWN_Y_L_R:
strlcpy(s, "Down + L1 + R1 + Y", len);
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DOWN_Y_L_R), len);
break;
case INPUT_TOGGLE_L3_R3:
strlcpy(s, "L3 + R3", len);
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_L3_R3), len);
break;
case INPUT_TOGGLE_L1_R1_START_SELECT:
strlcpy(s, "L1 + R1 + Start + Select", len);
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_L1_R1_START_SELECT), len);
break;
case INPUT_TOGGLE_START_SELECT:
strlcpy(s, "Start + Select", len);
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_START_SELECT), len);
break;
case INPUT_TOGGLE_L3_R:
strlcpy(s, "L3 + R", len);
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_L3_R), len);
break;
case INPUT_TOGGLE_L_R:
strlcpy(s, "L + R", len);
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_L_R), len);
break;
case INPUT_TOGGLE_HOLD_START:
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_HOLD_START), len);
@ -6176,6 +6176,9 @@ static void setting_get_string_representation_toggle_gamepad_combo(
case INPUT_TOGGLE_DOWN_SELECT:
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DOWN_SELECT), len);
break;
case INPUT_TOGGLE_L2_R2:
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_L2_R2), len);
break;
}
}
@ -12018,7 +12021,7 @@ static bool setting_append_list(
&settings->uints.input_menu_toggle_gamepad_combo,
MENU_ENUM_LABEL_INPUT_MENU_ENUM_TOGGLE_GAMEPAD_COMBO,
MENU_ENUM_LABEL_VALUE_INPUT_MENU_ENUM_TOGGLE_GAMEPAD_COMBO,
menu_toggle_gamepad_combo,
DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO,
&group_info,
&subgroup_info,
parent_group,

View file

@ -2982,9 +2982,17 @@ enum msg_hash_enums
MENU_LABEL(SWITCH_GPU_PROFILE),
MENU_LABEL(SWITCH_CPU_PROFILE),
MENU_ENUM_LABEL_VALUE_DOWN_Y_L_R,
MENU_ENUM_LABEL_VALUE_L3_R3,
MENU_ENUM_LABEL_VALUE_L1_R1_START_SELECT,
MENU_ENUM_LABEL_VALUE_START_SELECT,
MENU_ENUM_LABEL_VALUE_L3_R,
MENU_ENUM_LABEL_VALUE_L_R,
MENU_ENUM_LABEL_VALUE_HOLD_START,
MENU_ENUM_LABEL_VALUE_HOLD_SELECT,
MENU_ENUM_LABEL_VALUE_DOWN_SELECT,
MENU_ENUM_LABEL_VALUE_L2_R2,
MENU_LABEL(PLAYLIST_USE_OLD_FORMAT),
MENU_LABEL(PLAYLIST_COMPRESSION),
MENU_LABEL(MENU_SOUNDS),

View file

@ -36187,54 +36187,48 @@ static bool input_driver_toggle_button_combo(
switch (mode)
{
case INPUT_TOGGLE_DOWN_Y_L_R:
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_DOWN))
return false;
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_Y))
return false;
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_L))
return false;
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_R))
return false;
if (BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_DOWN) &&
BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_Y) &&
BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_L) &&
BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_R))
return true;
break;
case INPUT_TOGGLE_L3_R3:
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_L3))
return false;
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_R3))
return false;
if (BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_L3) &&
BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_R3))
return true;
break;
case INPUT_TOGGLE_L1_R1_START_SELECT:
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_START))
return false;
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_SELECT))
return false;
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_L))
return false;
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_R))
return false;
if (BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_L) &&
BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_R) &&
BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_START) &&
BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_SELECT))
return true;
break;
case INPUT_TOGGLE_START_SELECT:
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_START))
return false;
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_SELECT))
return false;
if (BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_START) &&
BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_SELECT))
return true;
break;
case INPUT_TOGGLE_L3_R:
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_L3))
return false;
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_R))
return false;
if (BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_L3) &&
BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_R))
return true;
break;
case INPUT_TOGGLE_L_R:
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_L))
return false;
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_R))
return false;
if (BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_L) &&
BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_R))
return true;
break;
case INPUT_TOGGLE_DOWN_SELECT:
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_DOWN))
return false;
if (!BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_SELECT))
return false;
if (BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_DOWN) &&
BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_SELECT))
return true;
break;
case INPUT_TOGGLE_L2_R2:
if (BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_L2) &&
BIT256_GET_PTR(p_input, RETRO_DEVICE_ID_JOYPAD_R2))
return true;
break;
case INPUT_TOGGLE_HOLD_START:
{
@ -36306,10 +36300,10 @@ static bool input_driver_toggle_button_combo(
}
default:
case INPUT_TOGGLE_NONE:
return false;
break;
}
return true;
return false;
}
/* Display the libretro core's framebuffer onscreen. */