Make shift the default descent control on ladders and when flying
authorsfan5 <sfan5@live.de>
Sun, 19 Aug 2012 11:15:42 +0000 (13:15 +0200)
committerPerttu Ahola <celeron55@gmail.com>
Sat, 1 Sep 2012 06:48:07 +0000 (09:48 +0300)
"aux1_descends" setting switches to the old descend control.

minetest.conf.example
src/defaultsettings.cpp
src/localplayer.cpp

index adeb3c8f68274fe8c9360aa161c0b31d6a5d803d..3f292c01e58ec9dfe525c8b9a37b50b799d4f901 100644 (file)
@@ -15,7 +15,7 @@
 # https://bitbucket.org/celeron55/minetest/src/tip/src/defaultsettings.cpp
 #
 # A vim command to convert most of defaultsettings.cpp to conf file format:
-# :'<,'>s/\tg_settings\.setDefault("\([^"]*\)", "\([^"]*\)");.*/#\1 = \2/g
+# :'<,'>s/\tsettings->setDefault("\([^"]*\)", "\([^"]*\)");.*/#\1 = \2/g
 # Note: Some of the settings are implemented in Lua
 
 #
 #keymap_freemove = KEY_KEY_K
 #keymap_fastmove = KEY_KEY_J
 #keymap_screenshot = KEY_F12
+# If true, keymap_special1 instead of keymap_sneak is used for climbing down and descending
+#aux1_descends = false
 # Some (temporary) keys for debugging
 #keymap_print_debug_stacks = KEY_KEY_P
+#keymap_quicktune_prev = KEY_HOME
+#keymap_quicktune_next = KEY_END
+#keymap_quicktune_dec = KEY_NEXT
+#keymap_quicktune_inc = KEY_PRIOR
 
 # Minimum FPS
 # The amount of rendered stuff is dynamically set according to this
index 6b85feb600fc6ac3096b18ecc08ec76a596b99e9..3b37c18dce6e200b6498f4648944e6840ddf341a 100644 (file)
@@ -52,6 +52,7 @@ void set_default_settings(Settings *settings)
        settings->setDefault("keymap_toggle_profiler", "KEY_F6");
        settings->setDefault("keymap_increase_viewing_range_min", "+");
        settings->setDefault("keymap_decrease_viewing_range_min", "-");
+       settings->setDefault("aux1_descends", "false");
        // Some (temporary) keys for debugging
        settings->setDefault("keymap_print_debug_stacks", "KEY_KEY_P");
        settings->setDefault("keymap_quicktune_prev", "KEY_HOME");
index c1bfa34221b829b660c0a9dab1e422dc2238d0c6..ee4fcd4e50a6016a0082e47af9d360ffe394def8 100644 (file)
@@ -359,31 +359,70 @@ void LocalPlayer::applyControl(float dtime)
        if(free_move && fast_move)
                superspeed = true;
        
-       // Auxiliary button 1 (E)
-       if(control.aux1)
+       // Old descend control
+       if(g_settings->getBool("aux1_descends"))
        {
-               if(free_move)
+               // Auxiliary button 1 (E)
+               if(control.aux1)
                {
-                       // In free movement mode, aux1 descends
-                       v3f speed = getSpeed();
-                       if(fast_move)
-                               speed.Y = -20*BS;
+                       if(free_move)
+                       {
+                               // In free movement mode, aux1 descends
+                               v3f speed = getSpeed();
+                               if(fast_move)
+                                       speed.Y = -20*BS;
+                               else
+                                       speed.Y = -walkspeed_max;
+                               setSpeed(speed);
+                       }
+                       else if(is_climbing)
+                       {
+                                       v3f speed = getSpeed();
+                               speed.Y = -3*BS;
+                               setSpeed(speed);
+                       }
                        else
-                               speed.Y = -walkspeed_max;
-                       setSpeed(speed);
+                       {
+                               // If not free movement but fast is allowed, aux1 is
+                               // "Turbo button"
+                               if(fast_move)
+                                       superspeed = true;
+                       }
                }
-               else if(is_climbing)
+       }
+       // New minecraft-like descend control
+       else
+       {
+               // Auxiliary button 1 (E)
+               if(control.aux1)
                {
-                       v3f speed = getSpeed();
-                       speed.Y = -3*BS;
-                       setSpeed(speed);
+                       if(!free_move && !is_climbing)
+                       {
+                               // If not free movement but fast is allowed, aux1 is
+                               // "Turbo button"
+                               if(fast_move)
+                                       superspeed = true;
+                       }
                }
-               else
+
+               if(control.sneak)
                {
-                       // If not free movement but fast is allowed, aux1 is
-                       // "Turbo button"
-                       if(fast_move)
-                               superspeed = true;
+                       if(free_move)
+                       {
+                               // In free movement mode, sneak descends
+                               v3f speed = getSpeed();
+                               if(fast_move)
+                                       speed.Y = -20*BS;
+                               else
+                                       speed.Y = -walkspeed_max;
+                                       setSpeed(speed);
+                       }
+                       else if(is_climbing)
+                       {
+                               v3f speed = getSpeed();
+                               speed.Y = -3*BS;
+                               setSpeed(speed);
+                       }
                }
        }