summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVanessa Dannenberg <vanessa.e.dannenberg@gmail.com>2018-12-02 17:34:29 -0500
committersfan5 <sfan5@live.de>2018-12-02 23:34:29 +0100
commit1b0fd195c614ffa1b04d687e7793fb5bb266c535 (patch)
tree0cfa304027f325b7bd4609adf6325e4b0b592c77
parent42166fff7454aad64dfcd60a38bb5fcb75499243 (diff)
downloadminetest-1b0fd195c614ffa1b04d687e7793fb5bb266c535.tar.gz
minetest-1b0fd195c614ffa1b04d687e7793fb5bb266c535.tar.bz2
minetest-1b0fd195c614ffa1b04d687e7793fb5bb266c535.zip
Raise hotbar limit to 32 slots, add associated keybinding options (#7916)
add associated keybinding options update docs and settingtypes
-rw-r--r--builtin/settingtypes.txt42
-rw-r--r--doc/lua_api.txt2
-rw-r--r--src/client/game.cpp9
-rw-r--r--src/client/inputhandler.cpp3
-rw-r--r--src/client/keys.h9
-rw-r--r--src/defaultsettings.cpp9
-rw-r--r--src/hud.h2
7 files changed, 65 insertions, 11 deletions
diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt
index 8e7e1308d..55107a8c7 100644
--- a/builtin/settingtypes.txt
+++ b/builtin/settingtypes.txt
@@ -347,18 +347,54 @@ keymap_slot19 (Hotbar slot 19 key) key
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
keymap_slot20 (Hotbar slot 20 key) key
-# Key for selecting the 21th hotbar slot.
+# Key for selecting the 21st hotbar slot.
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
keymap_slot21 (Hotbar slot 21 key) key
-# Key for selecting the 22th hotbar slot.
+# Key for selecting the 22nd hotbar slot.
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
keymap_slot22 (Hotbar slot 22 key) key
-# Key for selecting the 23th hotbar slot.
+# Key for selecting the 23rd hotbar slot.
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
keymap_slot23 (Hotbar slot 23 key) key
+# Key for selecting the 24th hotbar slot.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+keymap_slot24 (Hotbar slot 24 key) key
+
+# Key for selecting the 25th hotbar slot.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+keymap_slot25 (Hotbar slot 25 key) key
+
+# Key for selecting the 26th hotbar slot.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+keymap_slot26 (Hotbar slot 26 key) key
+
+# Key for selecting the 27th hotbar slot.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+keymap_slot27 (Hotbar slot 27 key) key
+
+# Key for selecting the 28th hotbar slot.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+keymap_slot28 (Hotbar slot 28 key) key
+
+# Key for selecting the 29th hotbar slot.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+keymap_slot29 (Hotbar slot 29 key) key
+
+# Key for selecting the 30th hotbar slot.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+keymap_slot30 (Hotbar slot 30 key) key
+
+# Key for selecting the 31st hotbar slot.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+keymap_slot31 (Hotbar slot 31 key) key
+
+# Key for selecting the 32nd hotbar slot.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+keymap_slot32 (Hotbar slot 32 key) key
+
# Key for toggling the display of the HUD.
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
keymap_toggle_hud (HUD toggle key) key KEY_F1
diff --git a/doc/lua_api.txt b/doc/lua_api.txt
index ca9133b1a..d48e50fde 100644
--- a/doc/lua_api.txt
+++ b/doc/lua_api.txt
@@ -5190,7 +5190,7 @@ This is basically a reference to a C++ `ServerActiveObject`
* `hud_get_flags()`: returns a table of player HUD flags with boolean values.
* See `hud_set_flags` for a list of flags that can be toggled.
* `hud_set_hotbar_itemcount(count)`: sets number of items in builtin hotbar
- * `count`: number of items, must be between `1` and `23`
+ * `count`: number of items, must be between `1` and `32`
* `hud_get_hotbar_itemcount`: returns number of visible items
* `hud_set_hotbar_image(texturename)`
* sets background image for hotbar
diff --git a/src/client/game.cpp b/src/client/game.cpp
index 418b412fa..bad29aa76 100644
--- a/src/client/game.cpp
+++ b/src/client/game.cpp
@@ -68,6 +68,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "irrlicht_changes/static_text.h"
#include "version.h"
#include "script/scripting_client.h"
+#include "hud.h"
#if USE_SOUND
#include "client/sound_openal.h"
@@ -2004,12 +2005,10 @@ void Game::processItemSelection(u16 *new_playeritem)
/* Item selection using hotbar slot keys
*/
- for (u16 i = 0; i < 23; i++) {
+ for (u16 i = 0; i <= max_item; i++) {
if (wasKeyDown((GameKeyType) (KeyType::SLOT_1 + i))) {
- if (i < PLAYER_INVENTORY_SIZE && i < player->hud_hotbar_itemcount) {
- *new_playeritem = i;
- infostream << "Selected item: " << new_playeritem << std::endl;
- }
+ *new_playeritem = i;
+ infostream << "Selected item: " << new_playeritem << std::endl;
break;
}
}
diff --git a/src/client/inputhandler.cpp b/src/client/inputhandler.cpp
index 29c68cf01..2692e9f1e 100644
--- a/src/client/inputhandler.cpp
+++ b/src/client/inputhandler.cpp
@@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "util/numeric.h"
#include "inputhandler.h"
#include "gui/mainmenumanager.h"
+#include "hud.h"
void KeyCache::populate_nonchanging()
{
@@ -76,7 +77,7 @@ void KeyCache::populate()
key[KeyType::QUICKTUNE_INC] = getKeySetting("keymap_quicktune_inc");
key[KeyType::QUICKTUNE_DEC] = getKeySetting("keymap_quicktune_dec");
- for (int i = 0; i < 23; i++) {
+ for (int i = 0; i < HUD_HOTBAR_ITEMCOUNT_MAX; i++) {
std::string slot_key_name = "keymap_slot" + std::to_string(i + 1);
key[KeyType::SLOT_1 + i] = getKeySetting(slot_key_name.c_str());
}
diff --git a/src/client/keys.h b/src/client/keys.h
index 15e46293c..28c6574ba 100644
--- a/src/client/keys.h
+++ b/src/client/keys.h
@@ -98,6 +98,15 @@ public:
SLOT_21,
SLOT_22,
SLOT_23,
+ SLOT_24,
+ SLOT_25,
+ SLOT_26,
+ SLOT_27,
+ SLOT_28,
+ SLOT_29,
+ SLOT_30,
+ SLOT_31,
+ SLOT_32,
// joystick specific keys
MOUSE_L,
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index 52b30ae2f..6a924b840 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -127,6 +127,15 @@ void set_default_settings(Settings *settings)
settings->setDefault("keymap_slot21", "");
settings->setDefault("keymap_slot22", "");
settings->setDefault("keymap_slot23", "");
+ settings->setDefault("keymap_slot24", "");
+ settings->setDefault("keymap_slot25", "");
+ settings->setDefault("keymap_slot26", "");
+ settings->setDefault("keymap_slot27", "");
+ settings->setDefault("keymap_slot28", "");
+ settings->setDefault("keymap_slot29", "");
+ settings->setDefault("keymap_slot30", "");
+ settings->setDefault("keymap_slot31", "");
+ settings->setDefault("keymap_slot32", "");
// Some (temporary) keys for debugging
settings->setDefault("keymap_quicktune_prev", "KEY_HOME");
diff --git a/src/hud.h b/src/hud.h
index 699313980..bfb644303 100644
--- a/src/hud.h
+++ b/src/hud.h
@@ -50,7 +50,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define HUD_PARAM_HOTBAR_SELECTED_IMAGE 3
#define HUD_HOTBAR_ITEMCOUNT_DEFAULT 8
-#define HUD_HOTBAR_ITEMCOUNT_MAX 23
+#define HUD_HOTBAR_ITEMCOUNT_MAX 32
#define HOTBAR_IMAGE_SIZE 48