]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/gui/guiKeyChangeMenu.cpp
Client-side autojump. Remove Android-only stepheight autojump (#7228)
[dragonfireclient.git] / src / gui / guiKeyChangeMenu.cpp
index ca97e0b9eb590f66456d9b30450a20129e19e426..f3d8e8eef4ac1847511e3df0b1af96f57cc86987 100644 (file)
@@ -77,6 +77,7 @@ enum
        // other
        GUI_ID_CB_AUX1_DESCENDS,
        GUI_ID_CB_DOUBLETAP_JUMP,
+       GUI_ID_CB_AUTOJUMP,
 };
 
 GUIKeyChangeMenu::GUIKeyChangeMenu(gui::IGUIEnvironment* env,
@@ -195,6 +196,21 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize)
                offset += v2s32(0, 25);
        }
 
+       {
+               s32 option_x = offset.X;
+               s32 option_y = offset.Y + 5;
+               u32 option_w = 280;
+               {
+                       core::rect<s32> rect(0, 0, option_w, 30);
+                       rect += topleft + v2s32(option_x, option_y);
+                       const wchar_t *text = wgettext("Automatic jumping");
+                       Environment->addCheckBox(g_settings->getBool("autojump"), rect, this,
+                                       GUI_ID_CB_AUTOJUMP, text);
+                       delete[] text;
+               }
+               offset += v2s32(0, 25);
+       }
+
        {
                core::rect < s32 > rect(0, 0, 100, 30);
                rect += topleft + v2s32(size.X / 2 - 105, size.Y - 40);
@@ -239,14 +255,19 @@ bool GUIKeyChangeMenu::acceptInput()
 
        {
                gui::IGUIElement *e = getElementFromId(GUI_ID_CB_AUX1_DESCENDS);
-               if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX)
+               if(e && e->getType() == gui::EGUIET_CHECK_BOX)
                        g_settings->setBool("aux1_descends", ((gui::IGUICheckBox*)e)->isChecked());
        }
        {
                gui::IGUIElement *e = getElementFromId(GUI_ID_CB_DOUBLETAP_JUMP);
-               if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX)
+               if(e && e->getType() == gui::EGUIET_CHECK_BOX)
                        g_settings->setBool("doubletap_jump", ((gui::IGUICheckBox*)e)->isChecked());
        }
+       {
+               gui::IGUIElement *e = getElementFromId(GUI_ID_CB_AUTOJUMP);
+               if(e && e->getType() == gui::EGUIET_CHECK_BOX)
+                       g_settings->setBool("autojump", ((gui::IGUICheckBox*)e)->isChecked());
+       }
 
        clearKeyCache();