diff options
-rw-r--r-- | src/game.cpp | 19 | ||||
-rw-r--r-- | src/gui/setup_input.cpp | 2 | ||||
-rw-r--r-- | src/gui/viewport.cpp | 3 | ||||
-rw-r--r-- | src/inputmanager.cpp | 30 | ||||
-rw-r--r-- | src/keyboarddata.h | 632 | ||||
-rw-r--r-- | src/keydata.h | 7 |
6 files changed, 503 insertions, 190 deletions
diff --git a/src/game.cpp b/src/game.cpp index 7e514c3fd..b05cd6d28 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -805,7 +805,7 @@ void Game::handleMoveAndAttack() Being *target = nullptr; bool newTarget = !inputManager.isActionActive( - Input::KEY_TARGET); + Input::KEY_STOP_ATTACK); // A set target has highest priority if (!player_node->getTarget()) { @@ -829,7 +829,7 @@ void Game::handleMoveAndAttack() inputManager.isActionActive(Input::KEY_TARGET_CLOSEST) || inputManager.isActionActive(Input::KEY_TARGET_NPC) || (joystick && joystick->buttonPressed(3))) && - !inputManager.isActionActive(Input::KEY_TARGET) && + !inputManager.isActionActive(Input::KEY_STOP_ATTACK) && !inputManager.isActionActive(Input::KEY_UNTARGET)) { ActorSprite::Type currentTarget = ActorSprite::UNKNOWN; @@ -867,23 +867,10 @@ void Game::handleMoveAndAttack() if (!inputManager.isActionActive(Input::KEY_ATTACK) && !inputManager.isActionActive(Input::KEY_EMOTE)) { - if (inputManager.isActionActive(Input::KEY_TARGET) - || (joystick && joystick->buttonPressed(4))) - { + if (inputManager.isActionActive(Input::KEY_STOP_ATTACK)) player_node->stopAttack(); - } else if (inputManager.isActionActive(Input::KEY_UNTARGET)) - { player_node->untarget(); - } - } - - if (joystick) - { - if (joystick->buttonPressed(1)) - player_node->pickUpItems(); - else if (joystick->buttonPressed(2)) - player_node->toggleSit(); } } } diff --git a/src/gui/setup_input.cpp b/src/gui/setup_input.cpp index cdcae13c4..f4d2f51e1 100644 --- a/src/gui/setup_input.cpp +++ b/src/gui/setup_input.cpp @@ -104,7 +104,7 @@ static SetupActionData const setupActionData[] = }, { N_("Stop Attack"), - Input::KEY_TARGET + Input::KEY_STOP_ATTACK }, { N_("Untarget"), diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp index 59b7377f4..3b58e03a9 100644 --- a/src/gui/viewport.cpp +++ b/src/gui/viewport.cpp @@ -511,7 +511,8 @@ void Viewport::mousePressed(gcn::MouseEvent &event) if (player_node != mHoverBeing) { player_node->attack(mHoverBeing, - !inputManager.isActionActive(Input::KEY_TARGET)); + !inputManager.isActionActive( + Input::KEY_STOP_ATTACK)); return; } } diff --git a/src/inputmanager.cpp b/src/inputmanager.cpp index 181ba6490..12993c0cb 100644 --- a/src/inputmanager.cpp +++ b/src/inputmanager.cpp @@ -94,8 +94,10 @@ void InputManager::retrieve() if (*keyData[i].configField) { KeyFunction &kf = mKey[i]; - std::string keyStr = config.getValue(keyData[i].configField, - toString(keyData[i].defaultValue)); + std::string keyStr = config.getValue(keyData[i].configField, ""); + if (keyStr.empty()) + continue; + StringVect keys; splitToStringVector(keys, keyStr, ','); StringVectCIter it = keys.begin(); @@ -185,13 +187,16 @@ void InputManager::makeDefault() { for (int i = 0; i < Input::KEY_TOTAL; i++) { + KeyFunction &key = mKey[i]; for (size_t i2 = 1; i2 < KeyFunctionSize; i2 ++) { - mKey[i].values[i2].type = INPUT_UNKNOWN; - mKey[i].values[i2].value = -1; + key.values[i2].type = INPUT_UNKNOWN; + key.values[i2].value = -1; } - mKey[i].values[0].type = INPUT_KEYBOARD; - mKey[i].values[0].value = keyData[i].defaultValue; + key.values[0].type = keyData[i].defaultType1; + key.values[0].value = keyData[i].defaultValue1; + key.values[1].type = keyData[i].defaultType2; + key.values[1].value = keyData[i].defaultValue2; } } @@ -280,7 +285,7 @@ std::string InputManager::getKeyStringLong(int index) const else if (key.type == INPUT_JOYSTICK) { // TRANSLATORS: this is long joystick button name - str = strprintf(_("Button%d"), key.value + 1); + str = strprintf(_("JButton%d"), key.value + 1); } if (!str.empty()) { @@ -319,7 +324,7 @@ std::string InputManager::getKeyValueString(int index) const else if (key.type == INPUT_JOYSTICK) { // TRANSLATORS: this is short joystick button name - str = strprintf(_("But%d"), key.value + 1); + str = strprintf(_("JB%d"), key.value + 1); } if (!str.empty()) { @@ -526,7 +531,7 @@ int InputManager::getInputConditionMask() if (!player_node || !player_node->getDisableGameModifiers()) mask += COND_EMODS; - if (!isActionActive(Input::KEY_TARGET) + if (!isActionActive(Input::KEY_STOP_ATTACK) && !isActionActive(Input::KEY_UNTARGET)) { mask += COND_NOTARGET; @@ -566,8 +571,9 @@ void InputManager::updateKeyActionMap(KeyToActionMap &actionMap, int type) KeyFunction &key = mKey[i]; for (size_t i2 = 0; i2 < KeyFunctionSize; i2 ++) { - if (key.values[i2].type == type) - actionMap[key.values[i2].value].push_back(i); + const KeyItem &ki = key.values[i2]; + if (ki.type == type && ki.value != -1) + actionMap[ki.value].push_back(i); } } } @@ -578,7 +584,7 @@ void InputManager::updateKeyActionMap(KeyToActionMap &actionMap, int type) for (; it != it_end; ++ it) { KeysVector *keys = &it->second; - if (keys->size() > 1) + if (keys && keys->size() > 1) sort(keys->begin(), keys->end(), keySorter); } } diff --git a/src/keyboarddata.h b/src/keyboarddata.h index 0b7a0932e..5ea1daba3 100644 --- a/src/keyboarddata.h +++ b/src/keyboarddata.h @@ -35,792 +35,1108 @@ // keyData must be in same order as enum keyAction. static KeyData const keyData[Input::KEY_TOTAL] = { - {"keyMoveUp", SDLK_UP, + {"keyMoveUp", + INPUT_KEYBOARD, SDLK_UP, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::moveUp, Input::KEY_NO_VALUE, 50, COND_GAME2}, - {"keyMoveDown", SDLK_DOWN, + {"keyMoveDown", + INPUT_KEYBOARD, SDLK_DOWN, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::moveDown, Input::KEY_NO_VALUE, 50, COND_GAME2}, - {"keyMoveLeft", SDLK_LEFT, + {"keyMoveLeft", + INPUT_KEYBOARD, SDLK_LEFT, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::moveLeft, Input::KEY_NO_VALUE, 50, COND_GAME}, - {"keyMoveRight", SDLK_RIGHT, + {"keyMoveRight", + INPUT_KEYBOARD, SDLK_RIGHT, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::moveRight, Input::KEY_NO_VALUE, 50, COND_GAME}, - {"keyAttack", SDLK_LCTRL, + {"keyAttack", + INPUT_KEYBOARD, SDLK_LCTRL, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyTargetAttack", SDLK_x, + {"keyTargetAttack", + INPUT_KEYBOARD, SDLK_x, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyMoveToTarget", SDLK_v, + {"keyMoveToTarget", + INPUT_KEYBOARD, SDLK_v, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::moveToTarget, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keyChangeMoveToTarget", SDLK_PERIOD, + {"keyChangeMoveToTarget", + INPUT_KEYBOARD, SDLK_PERIOD, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changeMoveToTarget, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, - {"keyMoveToHome", SDLK_d, + {"keyMoveToHome", + INPUT_KEYBOARD, SDLK_d, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::moveToHome, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keySetHome", SDLK_KP5, + {"keySetHome", + INPUT_KEYBOARD, SDLK_KP5, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::setHome, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keyMoveToPoint", SDLK_RSHIFT, + {"keyMoveToPoint", + INPUT_KEYBOARD, SDLK_RSHIFT, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyTalk", SDLK_t, + {"keyTalk", + INPUT_KEYBOARD, SDLK_t, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::talk, Input::KEY_NO_VALUE, 50, COND_GAME}, - {"keyTarget", SDLK_LSHIFT, + {"keyTarget", + INPUT_KEYBOARD, SDLK_LSHIFT, + INPUT_JOYSTICK, 4, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_GAME}, - {"keyUnTarget", Input::KEY_NO_VALUE, + {"keyUnTarget", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyTargetClosest", SDLK_a, + {"keyTargetClosest", + INPUT_KEYBOARD, SDLK_a, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyTargetNPC", SDLK_n, + {"keyTargetNPC", + INPUT_KEYBOARD, SDLK_n, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyTargetPlayer", SDLK_q, + {"keyTargetPlayer", + INPUT_KEYBOARD, SDLK_q, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyPickup", SDLK_z, + {"keyPickup", + INPUT_KEYBOARD, SDLK_z, + INPUT_JOYSTICK, 1, Input::GRP_DEFAULT, &ActionManager::pickup, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyChangePickupType", SDLK_o, + {"keyChangePickupType", + INPUT_KEYBOARD, SDLK_o, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changePickupType, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, - {"keyHideWindows", SDLK_h, + {"keyHideWindows", + INPUT_KEYBOARD, SDLK_h, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::hideWindows, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyBeingSit", SDLK_s, + {"keyBeingSit", + INPUT_KEYBOARD, SDLK_s, + INPUT_JOYSTICK, 2, Input::GRP_DEFAULT, &ActionManager::sit, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyScreenshot", SDLK_p, + {"keyScreenshot", + INPUT_KEYBOARD, SDLK_p, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::screenshot, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyTrade", SDLK_r, + {"keyTrade", + INPUT_KEYBOARD, SDLK_r, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changeTrade, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyPathfind", SDLK_f, + {"keyPathfind", + INPUT_KEYBOARD, SDLK_f, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changeMapMode, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET | COND_EMODS}, - {"keyOK", SDLK_SPACE, + {"keyOK", + INPUT_KEYBOARD, SDLK_SPACE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::ok, Input::KEY_NO_VALUE, 50, COND_NOMODAL | COND_NOAWAY | COND_NONPCINPUT}, - {"keyQuit", SDLK_ESCAPE, + {"keyQuit", + INPUT_KEYBOARD, SDLK_ESCAPE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::quit, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyShortcutsKey", SDLK_MENU, + {"keyShortcutsKey", + INPUT_KEYBOARD, SDLK_MENU, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyShortcut1", SDLK_1, + {"keyShortcut1", + INPUT_KEYBOARD, SDLK_1, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut2", SDLK_2, + {"keyShortcut2", + INPUT_KEYBOARD, SDLK_2, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut3", SDLK_3, + {"keyShortcut3", + INPUT_KEYBOARD, SDLK_3, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut4", SDLK_4, + {"keyShortcut4", + INPUT_KEYBOARD, SDLK_4, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut5", SDLK_5, + {"keyShortcut5", + INPUT_KEYBOARD, SDLK_5, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut6", SDLK_6, + {"keyShortcut6", + INPUT_KEYBOARD, SDLK_6, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut7", SDLK_7, + {"keyShortcut7", + INPUT_KEYBOARD, SDLK_7, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut8", SDLK_8, + {"keyShortcut8", + INPUT_KEYBOARD, SDLK_8, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut9", SDLK_9, + {"keyShortcut9", + INPUT_KEYBOARD, SDLK_9, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut10", SDLK_0, + {"keyShortcut10", + INPUT_KEYBOARD, SDLK_0, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut11", SDLK_MINUS, + {"keyShortcut11", + INPUT_KEYBOARD, SDLK_MINUS, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut12", SDLK_EQUALS, + {"keyShortcut12", + INPUT_KEYBOARD, SDLK_EQUALS, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut13", SDLK_BACKSPACE, + {"keyShortcut13", + INPUT_KEYBOARD, SDLK_BACKSPACE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut14", SDLK_INSERT, + {"keyShortcut14", + INPUT_KEYBOARD, SDLK_INSERT, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut15", SDLK_HOME, + {"keyShortcut15", + INPUT_KEYBOARD, SDLK_HOME, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut16", Input::KEY_NO_VALUE, + {"keyShortcut16", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut17", Input::KEY_NO_VALUE, + {"keyShortcut17", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut18", Input::KEY_NO_VALUE, + {"keyShortcut18", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut19", Input::KEY_NO_VALUE, + {"keyShortcut19", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyShortcut20", Input::KEY_NO_VALUE, + {"keyShortcut20", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, - {"keyWindowHelp", SDLK_F1, + {"keyWindowHelp", + INPUT_KEYBOARD, SDLK_F1, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::helpWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowStatus", SDLK_F2, + {"keyWindowStatus", + INPUT_KEYBOARD, SDLK_F2, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::statusWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowInventory", SDLK_F3, + {"keyWindowInventory", + INPUT_KEYBOARD, SDLK_F3, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::inventoryWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowEquipment", SDLK_F4, + {"keyWindowEquipment", + INPUT_KEYBOARD, SDLK_F4, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::equipmentWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowSkill", SDLK_F5, + {"keyWindowSkill", + INPUT_KEYBOARD, SDLK_F5, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::skillDialogShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowMinimap", SDLK_F6, + {"keyWindowMinimap", + INPUT_KEYBOARD, SDLK_F6, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::minimapWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowChat", SDLK_F7, + {"keyWindowChat", + INPUT_KEYBOARD, SDLK_F7, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::chatWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowShortcut", SDLK_F8, + {"keyWindowShortcut", + INPUT_KEYBOARD, SDLK_F8, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::shortcutWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowSetup", SDLK_F9, + {"keyWindowSetup", + INPUT_KEYBOARD, SDLK_F9, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::setupWindowShow, Input::KEY_NO_VALUE, 50, COND_NOTARGET | COND_NOINPUT | COND_ENABLED}, - {"keyWindowDebug", SDLK_F10, + {"keyWindowDebug", + INPUT_KEYBOARD, SDLK_F10, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::debugWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowSocial", SDLK_F11, + {"keyWindowSocial", + INPUT_KEYBOARD, SDLK_F11, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::socialWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowEmoteBar", SDLK_F12, + {"keyWindowEmoteBar", + INPUT_KEYBOARD, SDLK_F12, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::emoteShortcutWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowOutfit", SDLK_BACKQUOTE, + {"keyWindowOutfit", + INPUT_KEYBOARD, SDLK_BACKQUOTE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::outfitWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowShop", -1, + {"keyWindowShop", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::shopWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowDrop", SDLK_w, + {"keyWindowDrop", + INPUT_KEYBOARD, SDLK_w, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::dropShortcutWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowKills", SDLK_e, + {"keyWindowKills", + INPUT_KEYBOARD, SDLK_e, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::killStatsWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowSpells", SDLK_j, + {"keyWindowSpells", + INPUT_KEYBOARD, SDLK_j, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::spellShortcutWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowBotChecker", SDLK_LEFTBRACKET, + {"keyWindowBotChecker", + INPUT_KEYBOARD, SDLK_LEFTBRACKET, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::botcheckerWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowOnline", Input::KEY_NO_VALUE, + {"keyWindowOnline", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::whoIsOnlineWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keyWindowDidYouKnow", Input::KEY_NO_VALUE, + {"keyWindowDidYouKnow", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::didYouKnowWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, - {"keySocialPrevTab", Input::KEY_NO_VALUE, + {"keySocialPrevTab", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::prevSocialTab, Input::KEY_NO_VALUE, 50, COND_NOINPUT}, - {"keySocialNextTab", Input::KEY_NO_VALUE, + {"keySocialNextTab", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::nextSocialTab, Input::KEY_NO_VALUE, 50, COND_NOINPUT}, - {"keySmilie", SDLK_LALT, + {"keySmilie", + INPUT_KEYBOARD, SDLK_LALT, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyEmoteShortcut1", SDLK_1, + {"keyEmoteShortcut1", + INPUT_KEYBOARD, SDLK_1, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut2", SDLK_2, + {"keyEmoteShortcut2", + INPUT_KEYBOARD, SDLK_2, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut3", SDLK_3, + {"keyEmoteShortcut3", + INPUT_KEYBOARD, SDLK_3, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut4", SDLK_4, + {"keyEmoteShortcut4", + INPUT_KEYBOARD, SDLK_4, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut5", SDLK_5, + {"keyEmoteShortcut5", + INPUT_KEYBOARD, SDLK_5, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut6", SDLK_6, + {"keyEmoteShortcut6", + INPUT_KEYBOARD, SDLK_6, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut7", SDLK_7, + {"keyEmoteShortcut7", + INPUT_KEYBOARD, SDLK_7, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut8", SDLK_8, + {"keyEmoteShortcut8", + INPUT_KEYBOARD, SDLK_8, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut9", SDLK_9, + {"keyEmoteShortcut9", + INPUT_KEYBOARD, SDLK_9, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut10", SDLK_0, + {"keyEmoteShortcut10", + INPUT_KEYBOARD, SDLK_0, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut11", SDLK_MINUS, + {"keyEmoteShortcut11", + INPUT_KEYBOARD, SDLK_MINUS, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut12", SDLK_EQUALS, + {"keyEmoteShortcut12", + INPUT_KEYBOARD, SDLK_EQUALS, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut13", SDLK_BACKSPACE, + {"keyEmoteShortcut13", + INPUT_KEYBOARD, SDLK_BACKSPACE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut14", SDLK_INSERT, + {"keyEmoteShortcut14", + INPUT_KEYBOARD, SDLK_INSERT, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut15", SDLK_HOME, + {"keyEmoteShortcut15", + INPUT_KEYBOARD, SDLK_HOME, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut16", SDLK_q, + {"keyEmoteShortcut16", + INPUT_KEYBOARD, SDLK_q, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut17", SDLK_w, + {"keyEmoteShortcut17", + INPUT_KEYBOARD, SDLK_w, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut18", SDLK_e, + {"keyEmoteShortcut18", + INPUT_KEYBOARD, SDLK_e, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut19", SDLK_r, + {"keyEmoteShortcut19", + INPUT_KEYBOARD, SDLK_r, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut20", SDLK_t, + {"keyEmoteShortcut20", + INPUT_KEYBOARD, SDLK_t, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut21", SDLK_y, + {"keyEmoteShortcut21", + INPUT_KEYBOARD, SDLK_y, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut22", SDLK_u, + {"keyEmoteShortcut22", + INPUT_KEYBOARD, SDLK_u, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut23", SDLK_i, + {"keyEmoteShortcut23", + INPUT_KEYBOARD, SDLK_i, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut24", SDLK_o, + {"keyEmoteShortcut24", + INPUT_KEYBOARD, SDLK_o, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut25", SDLK_p, + {"keyEmoteShortcut25", + INPUT_KEYBOARD, SDLK_p, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut26", SDLK_LEFTBRACKET, + {"keyEmoteShortcut26", + INPUT_KEYBOARD, SDLK_LEFTBRACKET, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut27", SDLK_RIGHTBRACKET, + {"keyEmoteShortcut27", + INPUT_KEYBOARD, SDLK_RIGHTBRACKET, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut28", SDLK_BACKSLASH, + {"keyEmoteShortcut28", + INPUT_KEYBOARD, SDLK_BACKSLASH, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut29", SDLK_a, + {"keyEmoteShortcut29", + INPUT_KEYBOARD, SDLK_a, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut30", SDLK_s, + {"keyEmoteShortcut30", + INPUT_KEYBOARD, SDLK_s, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut31", SDLK_d, + {"keyEmoteShortcut31", + INPUT_KEYBOARD, SDLK_d, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut32", SDLK_f, + {"keyEmoteShortcut32", + INPUT_KEYBOARD, SDLK_f, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut33", SDLK_g, + {"keyEmoteShortcut33", + INPUT_KEYBOARD, SDLK_g, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut34", SDLK_h, + {"keyEmoteShortcut34", + INPUT_KEYBOARD, SDLK_h, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut35", SDLK_j, + {"keyEmoteShortcut35", + INPUT_KEYBOARD, SDLK_j, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut36", SDLK_k, + {"keyEmoteShortcut36", + INPUT_KEYBOARD, SDLK_k, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut37", SDLK_l, + {"keyEmoteShortcut37", + INPUT_KEYBOARD, SDLK_l, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut38", SDLK_SEMICOLON, + {"keyEmoteShortcut38", + INPUT_KEYBOARD, SDLK_SEMICOLON, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut39", SDLK_QUOTE, + {"keyEmoteShortcut39", + INPUT_KEYBOARD, SDLK_QUOTE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut40", SDLK_z, + {"keyEmoteShortcut40", + INPUT_KEYBOARD, SDLK_z, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut41", SDLK_x, + {"keyEmoteShortcut41", + INPUT_KEYBOARD, SDLK_x, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut42", SDLK_c, + {"keyEmoteShortcut42", + INPUT_KEYBOARD, SDLK_c, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut43", SDLK_v, + {"keyEmoteShortcut43", + INPUT_KEYBOARD, SDLK_v, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut44", SDLK_b, + {"keyEmoteShortcut44", + INPUT_KEYBOARD, SDLK_b, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut45", SDLK_n, + {"keyEmoteShortcut45", + INPUT_KEYBOARD, SDLK_n, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut46", SDLK_m, + {"keyEmoteShortcut46", + INPUT_KEYBOARD, SDLK_m, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut47", SDLK_COMMA, + {"keyEmoteShortcut47", + INPUT_KEYBOARD, SDLK_COMMA, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyEmoteShortcut48", SDLK_PERIOD, + {"keyEmoteShortcut48", + INPUT_KEYBOARD, SDLK_PERIOD, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, - {"keyWearOutfit", SDLK_RCTRL, + {"keyWearOutfit", + INPUT_KEYBOARD, SDLK_RCTRL, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyCopyOutfit", SDLK_RALT, + {"keyCopyOutfit", + INPUT_KEYBOARD, SDLK_RALT, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyCopyEquipedOutfit", SDLK_RIGHTBRACKET, + {"keyCopyEquipedOutfit", + INPUT_KEYBOARD, SDLK_RIGHTBRACKET, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::copyEquippedToOutfit, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keyChat", SDLK_RETURN, + {"keyChat", + INPUT_KEYBOARD, SDLK_RETURN, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_CHAT, &ActionManager::toggleChat, Input::KEY_NO_VALUE, 50, COND_NOINPUT | COND_NOAWAY | COND_NOMODAL}, - {"keyChatScrollUp", SDLK_PAGEUP, + {"keyChatScrollUp", + INPUT_KEYBOARD, SDLK_PAGEUP, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::scrollChatUp, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyChatScrollDown", SDLK_PAGEDOWN, + {"keyChatScrollDown", + INPUT_KEYBOARD, SDLK_PAGEDOWN, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::scrollChatDown, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyChatPrevTab", SDLK_KP7, + {"keyChatPrevTab", + INPUT_KEYBOARD, SDLK_KP7, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::prevChatTab, Input::KEY_NO_VALUE, 50, COND_NOINPUT}, - {"keyChatNextTab", SDLK_KP9, + {"keyChatNextTab", + INPUT_KEYBOARD, SDLK_KP9, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::nextChatTab, Input::KEY_NO_VALUE, 50, COND_NOINPUT}, - {"keyChatCloseTab", Input::KEY_NO_VALUE, + {"keyChatCloseTab", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::closeChatTab, Input::KEY_NO_VALUE, 50, COND_NOINPUT}, - {"keyChatPrevHistory", SDLK_KP7, + {"keyChatPrevHistory", + INPUT_KEYBOARD, SDLK_KP7, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_CHAT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyChatNextHistory", SDLK_KP9, + {"keyChatNextHistory", + INPUT_KEYBOARD, SDLK_KP9, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_CHAT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyAutoCompleteChat", SDLK_TAB, + {"keyAutoCompleteChat", + INPUT_KEYBOARD, SDLK_TAB, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_CHAT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyDeActivateChat", SDLK_ESCAPE, + {"keyDeActivateChat", + INPUT_KEYBOARD, SDLK_ESCAPE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_CHAT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, - {"keyIgnoreInput1", SDLK_LSUPER, + {"keyIgnoreInput1", + INPUT_KEYBOARD, SDLK_LSUPER, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::ignoreInput, Input::KEY_NO_VALUE, 500, COND_DEFAULT}, - {"keyIgnoreInput2", SDLK_RSUPER, + {"keyIgnoreInput2", + INPUT_KEYBOARD, SDLK_RSUPER, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::ignoreInput, Input::KEY_NO_VALUE, 500, COND_DEFAULT}, - {"keyDirectUp", SDLK_l, + {"keyDirectUp", + INPUT_KEYBOARD, SDLK_l, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::directUp, Input::KEY_NO_VALUE, 50, COND_GAME}, - {"keyDirectDown", SDLK_SEMICOLON, + {"keyDirectDown", + INPUT_KEYBOARD, SDLK_SEMICOLON, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::directDown, Input::KEY_NO_VALUE, 50, COND_GAME}, - {"keyDirectLeft", SDLK_k, + {"keyDirectLeft", + INPUT_KEYBOARD, SDLK_k, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::directLeft, Input::KEY_NO_VALUE, 50, COND_GAME}, - {"keyDirectRight", SDLK_QUOTE, + {"keyDirectRight", + INPUT_KEYBOARD, SDLK_QUOTE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::directRight, Input::KEY_NO_VALUE, 50, COND_GAME}, - {"keyCrazyMoves", SDLK_SLASH, + {"keyCrazyMoves", + INPUT_KEYBOARD, SDLK_SLASH, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::crazyMoves, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keyChangeCrazyMoveType", SDLK_BACKSLASH, + {"keyChangeCrazyMoveType", + INPUT_KEYBOARD, SDLK_BACKSLASH, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changeCrazyMove, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, - {"keyQuickDrop", SDLK_y, + {"keyQuickDrop", + INPUT_KEYBOARD, SDLK_y, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::dropItem0, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keyQuickDropN", SDLK_u, + {"keyQuickDropN", + INPUT_KEYBOARD, SDLK_u, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::dropItem, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keySwitchQuickDrop", SDLK_i, + {"keySwitchQuickDrop", + INPUT_KEYBOARD, SDLK_i, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::switchQuickDrop, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keyMagicInma1", SDLK_c, + {"keyMagicInma1", + INPUT_KEYBOARD, SDLK_c, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::heal, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keyMagicItenplz", SDLK_m, + {"keyMagicItenplz", + INPUT_KEYBOARD, SDLK_m, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::itenplz, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keyMagicAttack", SDLK_b, + {"keyMagicAttack", + INPUT_KEYBOARD, SDLK_b, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::magicAttack, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keySwitchMagicAttack", SDLK_COMMA, + {"keySwitchMagicAttack", + INPUT_KEYBOARD, SDLK_COMMA, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changeMagicAttack, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, - {"keySwitchPvpAttack", Input::KEY_NO_VALUE, + {"keySwitchPvpAttack", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changePvpMode, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, - {"keyInvertDirection", SDLK_KP0, + {"keyInvertDirection", + INPUT_KEYBOARD, SDLK_KP0, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changeMoveType, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, - {"keyChangeAttackWeaponType", SDLK_g, + {"keyChangeAttackWeaponType", + INPUT_KEYBOARD, SDLK_g, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changeAttackWeaponType, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, - {"keyChangeAttackType", SDLK_END, + {"keyChangeAttackType", + INPUT_KEYBOARD, SDLK_END, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changeAttackType, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, - {"keyChangeFollowMode", SDLK_KP1, + {"keyChangeFollowMode", + INPUT_KEYBOARD, SDLK_KP1, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changeFollowMode, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, - {"keyChangeImitationMode", SDLK_KP4, + {"keyChangeImitationMode", + INPUT_KEYBOARD, SDLK_KP4, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changeImitationMode, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, - {"keyDisableGameModifiers", SDLK_KP8, + {"keyDisableGameModifiers", + INPUT_KEYBOARD, SDLK_KP8, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changeGameModifier, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keyChangeAudio", SDLK_KP3, + {"keyChangeAudio", + INPUT_KEYBOARD, SDLK_KP3, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changeAudio, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keyAway", SDLK_KP2, + {"keyAway", + INPUT_KEYBOARD, SDLK_KP2, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::away, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, - {"keyRightClick", SDLK_TAB, + {"keyRightClick", + INPUT_KEYBOARD, SDLK_TAB, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::mouseClick, Input::KEY_NO_VALUE, 50, COND_NOINPUT | COND_NOAWAY | COND_NOMODAL}, - {"keyCameraMode", SDLK_KP_PLUS, + {"keyCameraMode", + INPUT_KEYBOARD, SDLK_KP_PLUS, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::camera, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, - {"keyMod", SDLK_LSHIFT, + {"keyMod", + INPUT_KEYBOARD, SDLK_LSHIFT, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, Input::GRP_GUI, nullptr, Input::KEY_NO_VALUE, 50, diff --git a/src/keydata.h b/src/keydata.h index 993bae74e..5351b715f 100644 --- a/src/keydata.h +++ b/src/keydata.h @@ -32,7 +32,10 @@ typedef bool (*ActionFuncPtr) (InputEvent &event); struct KeyData { const char *configField; - int defaultValue; + int defaultType1; + int defaultValue1; + int defaultType2; + int defaultValue2; int grp; ActionFuncPtr action; int modKeyIndex; @@ -73,7 +76,7 @@ namespace Input KEY_SET_HOME, KEY_MOVE_TO_POINT, KEY_TALK, - KEY_TARGET, + KEY_STOP_ATTACK, KEY_UNTARGET, KEY_TARGET_CLOSEST, KEY_TARGET_NPC, |