Invert joystick's pitch in options menu

This commit is contained in:
Jaime Moreira 2022-11-10 16:46:17 -03:00
parent 85b9841785
commit 20a1db6cac
1 changed files with 25 additions and 2 deletions

View File

@ -1660,7 +1660,6 @@ Stick_MenuInit(void)
s_stk_layout_box.itemnames = stick_layouts; s_stk_layout_box.itemnames = stick_layouts;
s_stk_layout_box.curvalue = ClampCvar(0, 3, joy_layout->value); s_stk_layout_box.curvalue = ClampCvar(0, 3, joy_layout->value);
} }
Menu_AddItem(&s_sticks_config_menu, (void *)&s_stk_layout_box);
s_stk_title_text[0].generic.name = "left stick"; s_stk_title_text[0].generic.name = "left stick";
s_stk_title_text[0].generic.y = (y += 22); s_stk_title_text[0].generic.y = (y += 22);
@ -1713,6 +1712,7 @@ Stick_MenuInit(void)
s_stk_deadzone_slider[i].printformat = "%.2f"; s_stk_deadzone_slider[i].printformat = "%.2f";
} }
Menu_AddItem(&s_sticks_config_menu, (void *)&s_stk_layout_box);
Menu_AddItem(&s_sticks_config_menu, (void *)&s_stk_title_text[0]); Menu_AddItem(&s_sticks_config_menu, (void *)&s_stk_title_text[0]);
Menu_AddItem(&s_sticks_config_menu, (void *)&s_stk_expo_slider[0]); Menu_AddItem(&s_sticks_config_menu, (void *)&s_stk_expo_slider[0]);
Menu_AddItem(&s_sticks_config_menu, (void *)&s_stk_deadzone_slider[0]); Menu_AddItem(&s_sticks_config_menu, (void *)&s_stk_deadzone_slider[0]);
@ -1730,7 +1730,6 @@ Stick_MenuDraw(void)
{ {
Menu_AdjustCursor(&s_sticks_config_menu, 1); Menu_AdjustCursor(&s_sticks_config_menu, 1);
Menu_Draw(&s_sticks_config_menu); Menu_Draw(&s_sticks_config_menu);
M_Popup();
} }
static const char * static const char *
@ -1953,6 +1952,7 @@ M_Menu_Gyro_f(void)
/* /*
* JOY MENU * JOY MENU
*/ */
static menulist_s s_joy_invertpitch_box;
static menuslider_s s_joy_yawsensitivity_slider; static menuslider_s s_joy_yawsensitivity_slider;
static menuslider_s s_joy_pitchsensitivity_slider; static menuslider_s s_joy_pitchsensitivity_slider;
static menuslider_s s_joy_forwardsensitivity_slider; static menuslider_s s_joy_forwardsensitivity_slider;
@ -1987,9 +1987,22 @@ ConfigGyroFunc(void *unused)
M_Menu_Gyro_f(); M_Menu_Gyro_f();
} }
static void
InvertJoyPitchFunc(void *unused)
{
Cvar_SetValue("joy_pitchsensitivity", -Cvar_VariableValue("joy_pitchsensitivity"));
}
static void static void
Joy_MenuInit(void) Joy_MenuInit(void)
{ {
static const char *yesno_names[] =
{
"no",
"yes",
0
};
extern qboolean show_haptic; extern qboolean show_haptic;
unsigned short int y = 0; unsigned short int y = 0;
@ -2012,8 +2025,18 @@ Joy_MenuInit(void)
s_joy_pitchsensitivity_slider.cvar = "joy_pitchsensitivity"; s_joy_pitchsensitivity_slider.cvar = "joy_pitchsensitivity";
s_joy_pitchsensitivity_slider.minvalue = 0.0f; s_joy_pitchsensitivity_slider.minvalue = 0.0f;
s_joy_pitchsensitivity_slider.maxvalue = 7.0f; s_joy_pitchsensitivity_slider.maxvalue = 7.0f;
s_joy_pitchsensitivity_slider.abs = true;
Menu_AddItem(&s_joy_menu, (void *)&s_joy_pitchsensitivity_slider); Menu_AddItem(&s_joy_menu, (void *)&s_joy_pitchsensitivity_slider);
s_joy_invertpitch_box.generic.type = MTYPE_SPINCONTROL;
s_joy_invertpitch_box.generic.x = 0;
s_joy_invertpitch_box.generic.y = (y += 10);
s_joy_invertpitch_box.generic.name = "invert pitch";
s_joy_invertpitch_box.generic.callback = InvertJoyPitchFunc;
s_joy_invertpitch_box.itemnames = yesno_names;
s_joy_invertpitch_box.curvalue = (Cvar_VariableValue("joy_pitchsensitivity") < 0);
Menu_AddItem(&s_joy_menu, (void *)&s_joy_invertpitch_box);
s_joy_forwardsensitivity_slider.generic.type = MTYPE_SLIDER; s_joy_forwardsensitivity_slider.generic.type = MTYPE_SLIDER;
s_joy_forwardsensitivity_slider.generic.x = 0; s_joy_forwardsensitivity_slider.generic.x = 0;
s_joy_forwardsensitivity_slider.generic.y = (y += 20); s_joy_forwardsensitivity_slider.generic.y = (y += 20);