]> git.lizzy.rs Git - minetest.git/blobdiff - src/client/inputhandler.cpp
Add helpful error messages if Irrlicht library / include dir are set incorrectly...
[minetest.git] / src / client / inputhandler.cpp
index ee3e37ae911da0666ebed00bb6ec03af780603ea..980765efa55ec3a7a0c817e6c644a2e356b67775 100644 (file)
@@ -35,7 +35,7 @@ void KeyCache::populate()
        key[KeyType::LEFT] = getKeySetting("keymap_left");
        key[KeyType::RIGHT] = getKeySetting("keymap_right");
        key[KeyType::JUMP] = getKeySetting("keymap_jump");
-       key[KeyType::SPECIAL1] = getKeySetting("keymap_special1");
+       key[KeyType::AUX1] = getKeySetting("keymap_aux1");
        key[KeyType::SNEAK] = getKeySetting("keymap_sneak");
        key[KeyType::DIG] = getKeySetting("keymap_dig");
        key[KeyType::PLACE] = getKeySetting("keymap_place");
@@ -60,6 +60,7 @@ void KeyCache::populate()
        key[KeyType::DEC_VOLUME] = getKeySetting("keymap_decrease_volume");
        key[KeyType::CINEMATIC] = getKeySetting("keymap_cinematic");
        key[KeyType::SCREENSHOT] = getKeySetting("keymap_screenshot");
+       key[KeyType::TOGGLE_BLOCK_BOUNDS] = getKeySetting("keymap_toggle_block_bounds");
        key[KeyType::TOGGLE_HUD] = getKeySetting("keymap_toggle_hud");
        key[KeyType::TOGGLE_CHAT] = getKeySetting("keymap_toggle_chat");
        key[KeyType::TOGGLE_FOG] = getKeySetting("keymap_toggle_fog");
@@ -112,23 +113,18 @@ bool MyEventReceiver::OnEvent(const SEvent &event)
        // Remember whether each key is down or up
        if (event.EventType == irr::EET_KEY_INPUT_EVENT) {
                const KeyPress &keyCode = event.KeyInput;
-               if (keysListenedFor.count(keyCode)) {
-                               // If the key is being held down then the OS may
-                               // send a continuous stream of keydown events.
-                               // In this case, we don't want to let this
-                               // stream reach the application as it will cause
-                               // certain actions to repeat constantly.
+               if (keysListenedFor[keyCode]) {
                        if (event.KeyInput.PressedDown) {
-                               if (!IsKeyDown(keyCode)) {
-                                       keyWasDown.insert(keyCode);
-                                       keyWasPressed.insert(keyCode);
-                               }
-                               keyIsDown.insert(keyCode);
+                               if (!IsKeyDown(keyCode))
+                                       keyWasPressed.set(keyCode);
+
+                               keyIsDown.set(keyCode);
+                               keyWasDown.set(keyCode);
                        } else {
                                if (IsKeyDown(keyCode))
-                                       keyWasReleased.insert(keyCode);
+                                       keyWasReleased.set(keyCode);
 
-                               keyIsDown.erase(keyCode);
+                               keyIsDown.unset(keyCode);
                        }
 
                        return true;
@@ -153,36 +149,36 @@ bool MyEventReceiver::OnEvent(const SEvent &event)
                switch (event.MouseInput.Event) {
                case EMIE_LMOUSE_PRESSED_DOWN:
                        key = "KEY_LBUTTON";
-                       keyIsDown.insert(key);
-                       keyWasDown.insert(key);
-                       keyWasPressed.insert(key);
+                       keyIsDown.set(key);
+                       keyWasDown.set(key);
+                       keyWasPressed.set(key);
                        break;
                case EMIE_MMOUSE_PRESSED_DOWN:
                        key = "KEY_MBUTTON";
-                       keyIsDown.insert(key);
-                       keyWasDown.insert(key);
-                       keyWasPressed.insert(key);
+                       keyIsDown.set(key);
+                       keyWasDown.set(key);
+                       keyWasPressed.set(key);
                        break;
                case EMIE_RMOUSE_PRESSED_DOWN:
                        key = "KEY_RBUTTON";
-                       keyIsDown.insert(key);
-                       keyWasDown.insert(key);
-                       keyWasPressed.insert(key);
+                       keyIsDown.set(key);
+                       keyWasDown.set(key);
+                       keyWasPressed.set(key);
                        break;
                case EMIE_LMOUSE_LEFT_UP:
                        key = "KEY_LBUTTON";
-                       keyIsDown.erase(key);
-                       keyWasReleased.insert(key);
+                       keyIsDown.unset(key);
+                       keyWasReleased.set(key);
                        break;
                case EMIE_MMOUSE_LEFT_UP:
                        key = "KEY_MBUTTON";
-                       keyIsDown.erase(key);
-                       keyWasReleased.insert(key);
+                       keyIsDown.unset(key);
+                       keyWasReleased.set(key);
                        break;
                case EMIE_RMOUSE_LEFT_UP:
                        key = "KEY_RBUTTON";
-                       keyIsDown.erase(key);
-                       keyWasReleased.insert(key);
+                       keyIsDown.unset(key);
+                       keyWasReleased.set(key);
                        break;
                case EMIE_MOUSE_WHEEL:
                        mouse_wheel += event.MouseInput.Wheel;
@@ -224,7 +220,7 @@ void RandomInputHandler::step(float dtime)
 {
        static RandomInputHandlerSimData rnd_data[] = {
                { "keymap_jump", 0.0f, 40 },
-               { "keymap_special1", 0.0f, 40 },
+               { "keymap_aux1", 0.0f, 40 },
                { "keymap_forward", 0.0f, 40 },
                { "keymap_left", 0.0f, 40 },
                { "keymap_dig", 0.0f, 30 },
@@ -235,11 +231,7 @@ void RandomInputHandler::step(float dtime)
                i.counter -= dtime;
                if (i.counter < 0.0) {
                        i.counter = 0.1 * Rand(1, i.time_max);
-                       KeyPress k = getKeySetting(i.key.c_str());
-                       if (keydown.count(k))
-                               keydown.erase(k);
-                       else
-                               keydown.insert(k);
+                       keydown.toggle(getKeySetting(i.key.c_str()));
                }
        }
        {