diff options
author | Duane Robertson <duane@duanerobertson.com> | 2015-09-28 13:59:03 -0500 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2015-10-29 21:48:57 +0100 |
commit | b6dfae02215d7bd61e06ff1999ee3ecb0ec80b9e (patch) | |
tree | 800511483f8b27cb35141dece5a937dd6dfa4a78 | |
parent | c0a7c670a465b4c05d90a8a4e8001797ec4e628a (diff) | |
download | minetest-b6dfae02215d7bd61e06ff1999ee3ecb0ec80b9e.tar.gz minetest-b6dfae02215d7bd61e06ff1999ee3ecb0ec80b9e.tar.bz2 minetest-b6dfae02215d7bd61e06ff1999ee3ecb0ec80b9e.zip |
WoW-style Autorun
This allows the player to toggle continuous forward with a key (F by default),
so we don't have to hold down the forward key endlessly.
-rw-r--r-- | src/defaultsettings.cpp | 1 | ||||
-rw-r--r-- | src/game.cpp | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 4a420445c..3315f4aaa 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -33,6 +33,7 @@ void set_default_settings(Settings *settings) // Client stuff settings->setDefault("remote_port", "30000"); settings->setDefault("keymap_forward", "KEY_KEY_W"); + settings->setDefault("keymap_autorun", ""); settings->setDefault("keymap_backward", "KEY_KEY_S"); settings->setDefault("keymap_left", "KEY_KEY_A"); settings->setDefault("keymap_right", "KEY_KEY_D"); diff --git a/src/game.cpp b/src/game.cpp index 36945f343..df5ab701a 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1234,6 +1234,7 @@ struct KeyCache { KEYMAP_ID_JUMP, KEYMAP_ID_SPECIAL1, KEYMAP_ID_SNEAK, + KEYMAP_ID_AUTORUN, // Other KEYMAP_ID_DROP, @@ -1286,6 +1287,8 @@ void KeyCache::populate() key[KEYMAP_ID_SPECIAL1] = getKeySetting("keymap_special1"); key[KEYMAP_ID_SNEAK] = getKeySetting("keymap_sneak"); + key[KEYMAP_ID_AUTORUN] = getKeySetting("keymap_autorun"); + key[KEYMAP_ID_DROP] = getKeySetting("keymap_drop"); key[KEYMAP_ID_INVENTORY] = getKeySetting("keymap_inventory"); key[KEYMAP_ID_CHAT] = getKeySetting("keymap_chat"); @@ -2615,6 +2618,10 @@ void Game::processKeyboardInput(VolatileRunFlags *flags, if (input->wasKeyDown(keycache.key[KeyCache::KEYMAP_ID_DROP])) { dropSelectedItem(); + // Add WoW-style autorun by toggling continuous forward. + } else if (input->wasKeyDown(keycache.key[KeyCache::KEYMAP_ID_AUTORUN])) { + bool autorun_setting = g_settings->getBool("continuous_forward"); + g_settings->setBool("continuous_forward", !autorun_setting); } else if (input->wasKeyDown(keycache.key[KeyCache::KEYMAP_ID_INVENTORY])) { openInventory(); } else if (input->wasKeyDown(EscapeKey) || input->wasKeyDown(CancelKey)) { |