@@ -553,6 +553,8 @@ namespace MainMenu {
553
553
float turn_sensitivity_y = 50.f;
554
554
bool gamepad_camera_invert_x = false;
555
555
bool gamepad_camera_invert_y = false;
556
+ float quick_turn_speed_control = 1.f;
557
+ float quick_turn_speed_mkb_control = 1.f;
556
558
inline void save(int index);
557
559
static inline Controls load(int index);
558
560
static inline Controls reset();
@@ -2750,6 +2752,8 @@ namespace MainMenu {
2750
2752
settings.gamepad_righty_sensitivity = std::min(std::max(25.f / 32768.f, turn_sensitivity_y / 32768.f), 200.f / 32768.f);
2751
2753
settings.gamepad_rightx_invert = gamepad_camera_invert_x;
2752
2754
settings.gamepad_righty_invert = gamepad_camera_invert_y;
2755
+ settings.quick_turn_speed = std::max(1.f, std::min(5.f, quick_turn_speed_control));
2756
+ settings.quick_turn_speed_mkb = std::max(1.f, std::min(5.f, quick_turn_speed_mkb_control));
2753
2757
}
2754
2758
2755
2759
inline Controls Controls::load(int index) {
@@ -2766,6 +2770,8 @@ namespace MainMenu {
2766
2770
controls.turn_sensitivity_y = settings.gamepad_righty_sensitivity * 32768.0;
2767
2771
controls.gamepad_camera_invert_x = settings.gamepad_rightx_invert;
2768
2772
controls.gamepad_camera_invert_y = settings.gamepad_righty_invert;
2773
+ controls.quick_turn_speed_control = settings.quick_turn_speed;
2774
+ controls.quick_turn_speed_mkb_control = settings.quick_turn_speed_mkb;
2769
2775
return controls;
2770
2776
}
2771
2777
@@ -2786,6 +2792,8 @@ namespace MainMenu {
2786
2792
file->property("turn_sensitivity_y", turn_sensitivity_y);
2787
2793
file->property("gamepad_camera_invert_x", gamepad_camera_invert_x);
2788
2794
file->property("gamepad_camera_invert_y", gamepad_camera_invert_y);
2795
+ file->property("quick_turn_speed_control", quick_turn_speed_control);
2796
+ file->property("quick_turn_speed_mkb_control", quick_turn_speed_mkb_control);
2789
2797
return true;
2790
2798
}
2791
2799
@@ -3009,7 +3017,7 @@ namespace MainMenu {
3009
3017
}
3010
3018
3011
3019
bool AllSettings::serialize(FileInterface* file) {
3012
- int version = 20 ;
3020
+ int version = 21 ;
3013
3021
file->property("version", version);
3014
3022
file->property("mods", mods);
3015
3023
file->property("crossplay_enabled", crossplay_enabled);
@@ -3116,6 +3124,8 @@ namespace MainMenu {
3116
3124
file->property("gamepad_camera_invert_x", controls.gamepad_camera_invert_x);
3117
3125
file->property("gamepad_camera_invert_y", controls.gamepad_camera_invert_y);
3118
3126
}
3127
+ file->propertyVersion("quick_turn_speed_control", version >= 21, controls.quick_turn_speed_control);
3128
+ file->propertyVersion("quick_turn_speed_mkb_control", version >= 21, controls.quick_turn_speed_mkb_control);
3119
3129
for (int c = 0; c < MAX_SPLITSCREEN; ++c) {
3120
3130
this->controls[c] = controls;
3121
3131
}
@@ -4989,6 +4999,12 @@ namespace MainMenu {
4989
4999
return buf;
4990
5000
}
4991
5001
5002
+ static const char* sliderFloorInt(float v) {
5003
+ static char buf[8];
5004
+ snprintf(buf, sizeof(buf), "%d", (int)floor(v));
5005
+ return buf;
5006
+ };
5007
+
4992
5008
static int settingsAddSlider(
4993
5009
Frame& frame,
4994
5010
int y,
@@ -6904,6 +6920,9 @@ namespace MainMenu {
6904
6920
y += settingsAddBooleanOption(*settings_subwindow, y, "mkb_world_tooltips", Language::get(5226), Language::get(5227),
6905
6921
allSettings.controls[bound_player].mkb_world_tooltips_enabled, [](Button& button)
6906
6922
{soundToggleSetting(button); allSettings.controls[bound_player].mkb_world_tooltips_enabled = button.isPressed();});
6923
+ y += settingsAddSlider(*settings_subwindow, y, "quick_turn_speed_mkb_control", Language::get(6310), Language::get(6311),
6924
+ allSettings.controls[bound_player].quick_turn_speed_mkb_control, 1.f, 5.f, sliderFloorInt, [](Slider& slider)
6925
+ {soundSliderSetting(slider, true); allSettings.controls[bound_player].quick_turn_speed_mkb_control = slider.getValue(); });
6907
6926
6908
6927
hookSettings(*settings_subwindow,
6909
6928
{{Setting::Type::Customize, "bindings"},
@@ -6912,6 +6931,7 @@ namespace MainMenu {
6912
6931
{Setting::Type::Boolean, "reverse_mouse"},
6913
6932
{Setting::Type::Boolean, "smooth_mouse"},
6914
6933
{Setting::Type::Boolean, "mkb_world_tooltips"},
6934
+ {Setting::Type::Slider, "quick_turn_speed_mkb_control"},
6915
6935
});
6916
6936
}
6917
6937
@@ -6934,6 +6954,10 @@ namespace MainMenu {
6934
6954
y += settingsAddBooleanOption(*settings_subwindow, y, "gamepad_camera_invert_y", Language::get(5239), Language::get(5240),
6935
6955
allSettings.controls[bound_player].gamepad_camera_invert_y, [](Button& button)
6936
6956
{soundToggleSetting(button); allSettings.controls[bound_player].gamepad_camera_invert_y = button.isPressed();});
6957
+
6958
+ y += settingsAddSlider(*settings_subwindow, y, "quick_turn_speed_control", Language::get(6310), Language::get(6311),
6959
+ allSettings.controls[bound_player].quick_turn_speed_control, 1.f, 5.f, sliderFloorInt, [](Slider& slider)
6960
+ {soundSliderSetting(slider, true); allSettings.controls[bound_player].quick_turn_speed_control = slider.getValue(); });
6937
6961
6938
6962
hookSettings(*settings_subwindow,
6939
6963
{{Setting::Type::Customize, "bindings"},
@@ -6942,6 +6966,7 @@ namespace MainMenu {
6942
6966
{Setting::Type::Slider, "turn_sensitivity_y"},
6943
6967
{Setting::Type::Boolean, "gamepad_camera_invert_x"},
6944
6968
{Setting::Type::Boolean, "gamepad_camera_invert_y"},
6969
+ {Setting::Type::Slider, "quick_turn_speed_control"},
6945
6970
});
6946
6971
}
6947
6972
0 commit comments