1
0

TouchScreenGUI: use mouse_sensitivity setting instead of mouse_sensity

This commit is contained in:
Maksym H 2022-11-11 22:23:55 +01:00
parent df9e57bf05
commit a254814f11
6 changed files with 28 additions and 17 deletions

View File

@ -81,7 +81,7 @@ local languages, language_dropdown, lang_idx = get_language_list()
local function formspec(tabview, name, tabdata) local function formspec(tabview, name, tabdata)
local fps = tonumber(core.settings:get("fps_max")) local fps = tonumber(core.settings:get("fps_max"))
local range = tonumber(core.settings:get("viewing_range")) local range = tonumber(core.settings:get("viewing_range"))
local sensitivity = tonumber(core.settings:get("mouse_sensitivity")) * 2000 local sensitivity = tonumber(core.settings:get("touch_sensitivity")) * 2000
local touchtarget = core.settings:get_bool("touchtarget") or false local touchtarget = core.settings:get_bool("touchtarget") or false
local fancy_leaves = core.settings:get("leaves_style") == "fancy" local fancy_leaves = core.settings:get("leaves_style") == "fancy"
local fast_move = core.settings:get_bool("fast_move") or false local fast_move = core.settings:get_bool("fast_move") or false
@ -296,7 +296,7 @@ local function handle_settings_buttons(this, fields, tabname, tabdata)
local event = core.explode_scrollbar_event(fields["sb_sensitivity"]) local event = core.explode_scrollbar_event(fields["sb_sensitivity"])
if event.type == "CHG" then if event.type == "CHG" then
core.settings:set("mouse_sensitivity", event.value / 2000) core.settings:set("touch_sensitivity", event.value / 2000)
-- The formspec cannot be updated or the scrollbar movement will -- The formspec cannot be updated or the scrollbar movement will
-- break. -- break.

View File

@ -99,6 +99,9 @@ invert_mouse (Invert mouse) bool false
# Mouse sensitivity multiplier. # Mouse sensitivity multiplier.
mouse_sensitivity (Mouse sensitivity) float 0.2 mouse_sensitivity (Mouse sensitivity) float 0.2
# Touch sensitivity multiplier.
touch_sensitivity (Touch sensitivity) float 0.2
# If enabled, "special" key instead of "sneak" key is used for climbing down and # If enabled, "special" key instead of "sneak" key is used for climbing down and
# descending. # descending.
aux1_descends (Special key for climbing/descending) bool false aux1_descends (Special key for climbing/descending) bool false

View File

@ -61,6 +61,10 @@
# type: float # type: float
# mouse_sensitivity = 0.2 # mouse_sensitivity = 0.2
# Touch sensitivity multiplier.
# type: float
# touch_sensitivity = 0.2
# If enabled, "special" key instead of "sneak" key is used for climbing down and # If enabled, "special" key instead of "sneak" key is used for climbing down and
# descending. # descending.
# type: bool # type: bool

View File

@ -528,6 +528,7 @@ void set_default_settings()
#ifdef HAVE_TOUCHSCREENGUI #ifdef HAVE_TOUCHSCREENGUI
settings->setDefault("touchtarget", "true"); settings->setDefault("touchtarget", "true");
settings->setDefault("touchscreen_threshold", "20"); settings->setDefault("touchscreen_threshold", "20");
settings->setDefault("touch_sensitivity", "0.2");
settings->setDefault("fixed_virtual_joystick", "true"); settings->setDefault("fixed_virtual_joystick", "true");
settings->setDefault("virtual_joystick_triggers_aux", "false"); settings->setDefault("virtual_joystick_triggers_aux", "false");
settings->setDefault("fast_move", "true"); settings->setDefault("fast_move", "true");
@ -640,7 +641,7 @@ void set_default_settings()
if (x_inches <= 3.7) { if (x_inches <= 3.7) {
// small 4" phones // small 4" phones
g_settings->setDefault("hud_scaling", "0.55"); g_settings->setDefault("hud_scaling", "0.55");
g_settings->setDefault("mouse_sensitivity", "0.3"); g_settings->setDefault("touch_sensitivity", "0.3");
} else if (x_inches > 3.7 && x_inches <= 4.5) { } else if (x_inches > 3.7 && x_inches <= 4.5) {
// medium phones // medium phones
g_settings->setDefault("hud_scaling", "0.6"); g_settings->setDefault("hud_scaling", "0.6");
@ -686,33 +687,36 @@ void set_default_settings()
if SDVersion4Inch { if SDVersion4Inch {
// 4" iPhone and iPod Touch // 4" iPhone and iPod Touch
settings->setDefault("hud_scaling", "0.55"); settings->setDefault("hud_scaling", "0.55");
settings->setDefault("mouse_sensitivity", "0.33"); settings->setDefault("touch_sensitivity", "0.33");
} else if SDVersion4and7Inch { } else if SDVersion4and7Inch {
// 4.7" iPhone // 4.7" iPhone
settings->setDefault("hud_scaling", "0.6"); settings->setDefault("hud_scaling", "0.6");
settings->setDefault("mouse_sensitivity", "0.27"); settings->setDefault("touch_sensitivity", "0.27");
} else if SDVersion5and5Inch { } else if SDVersion5and5Inch {
// 5.5" iPhone Plus // 5.5" iPhone Plus
settings->setDefault("hud_scaling", "0.65"); settings->setDefault("hud_scaling", "0.65");
settings->setDefault("mouse_sensitivity", "0.3"); settings->setDefault("touch_sensitivity", "0.3");
} else if (SDVersion5and8Inch || SDVersion6and1Inch) { } else if (SDVersion5and8Inch || SDVersion6and1Inch) {
// 5.8" and 6.1" iPhones // 5.8" and 6.1" iPhones
settings->setDefault("hud_scaling", "0.8"); settings->setDefault("hud_scaling", "0.8");
settings->setDefault("mouse_sensitivity", "0.35"); settings->setDefault("touch_sensitivity", "0.35");
settings->setDefault("selectionbox_width", "6"); settings->setDefault("selectionbox_width", "6");
} else if SDVersion6and5Inch { } else if SDVersion6and5Inch {
// 6.5" iPhone // 6.5" iPhone
settings->setDefault("hud_scaling", "0.85"); settings->setDefault("hud_scaling", "0.85");
settings->setDefault("mouse_sensitivity", "0.35"); settings->setDefault("touch_sensitivity", "0.35");
settings->setDefault("selectionbox_width", "6"); settings->setDefault("selectionbox_width", "6");
} else if SDVersion7and9Inch { } else if SDVersion7and9Inch {
// iPad mini // iPad mini
settings->setDefault("hud_scaling", "0.9"); settings->setDefault("hud_scaling", "0.9");
settings->setDefault("mouse_sensitivity", "0.25"); settings->setDefault("touch_sensitivity", "0.25");
settings->setDefault("selectionbox_width", "6");
} else if SDVersion8and3Inch {
settings->setDefault("touch_sensitivity", "0.25");
settings->setDefault("selectionbox_width", "6"); settings->setDefault("selectionbox_width", "6");
} else { } else {
// iPad // iPad
settings->setDefault("mouse_sensitivity", "0.3"); settings->setDefault("touch_sensitivity", "0.3");
settings->setDefault("selectionbox_width", "6"); settings->setDefault("selectionbox_width", "6");
} }

View File

@ -437,7 +437,7 @@ TouchScreenGUI::TouchScreenGUI(IrrlichtDevice *device, IEventReceiver *receiver)
} }
m_touchscreen_threshold = g_settings->getU16("touchscreen_threshold"); m_touchscreen_threshold = g_settings->getU16("touchscreen_threshold");
m_mouse_sensitivity = rangelim(g_settings->getFloat("mouse_sensitivity"), 0.1, 1.0); m_touch_sensitivity = rangelim(g_settings->getFloat("touch_sensitivity"), 0.1, 1.0);
m_fixed_joystick = g_settings->getBool("fixed_virtual_joystick"); m_fixed_joystick = g_settings->getBool("fixed_virtual_joystick");
m_joystick_triggers_special1 = g_settings->getBool("virtual_joystick_triggers_aux"); m_joystick_triggers_special1 = g_settings->getBool("virtual_joystick_triggers_aux");
m_screensize = m_device->getVideoDriver()->getScreenSize(); m_screensize = m_device->getVideoDriver()->getScreenSize();
@ -865,6 +865,9 @@ void TouchScreenGUI::moveJoystick(const SEvent &event, float dx, float dy) {
void TouchScreenGUI::translateEvent(const SEvent &event) void TouchScreenGUI::translateEvent(const SEvent &event)
{ {
if (!m_buttons_initialized)
return;
if (!m_visible) { if (!m_visible) {
infostream infostream
<< "TouchScreenGUI::translateEvent got event but not visible!" << "TouchScreenGUI::translateEvent got event but not visible!"
@ -991,11 +994,8 @@ void TouchScreenGUI::translateEvent(const SEvent &event)
s32 dx = X - m_pointerpos[event.TouchInput.ID].X; s32 dx = X - m_pointerpos[event.TouchInput.ID].X;
s32 dy = Y - m_pointerpos[event.TouchInput.ID].Y; s32 dy = Y - m_pointerpos[event.TouchInput.ID].Y;
// adapt to similar behaviour as pc screen m_camera_yaw_change -= dx * m_touch_sensitivity;
double d = m_mouse_sensitivity; m_camera_pitch = MYMIN(MYMAX(m_camera_pitch + (dy * m_touch_sensitivity), -180), 180);
m_camera_yaw_change -= dx * d;
m_camera_pitch = MYMIN(MYMAX(m_camera_pitch + (dy * d), -180), 180);
// update shootline // update shootline
m_shootline = m_device m_shootline = m_device

View File

@ -224,7 +224,7 @@ private:
v2u32 m_screensize; v2u32 m_screensize;
s32 button_size; s32 button_size;
double m_touchscreen_threshold; double m_touchscreen_threshold;
double m_mouse_sensitivity; double m_touch_sensitivity;
std::map<int, rect<s32>> m_hud_rects; std::map<int, rect<s32>> m_hud_rects;
std::map<size_t, irr::EKEY_CODE> m_hud_ids; std::map<size_t, irr::EKEY_CODE> m_hud_ids;
bool m_visible; // is the gui visible bool m_visible; // is the gui visible