/* * Custom keyboard shortcuts configuration * Copyright (C) 2007 Joshua Langley * Copyright (C) 2009-2010 The Mana Developers * Copyright (C) 2011-2012 The ManaPlus Developers * * This file is part of The ManaPlus Client. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef KEYBOARDDATA_H #define KEYBOARDDATA_H #include "actionmanager.h" #include "inputmanager.h" #include "keydata.h" #include "localconsts.h" #include "utils/gettext.h" #include "utils/stringutils.h" #include // keyData must be in same order as enum keyAction. static KeyData const keyData[Input::KEY_TOTAL] = { {"keyMoveUp", SDLK_UP, Input::GRP_DEFAULT, &ActionManager::moveUp, Input::KEY_NO_VALUE, 50, COND_GAME2}, {"keyMoveDown", SDLK_DOWN, Input::GRP_DEFAULT, &ActionManager::moveDown, Input::KEY_NO_VALUE, 50, COND_GAME2}, {"keyMoveLeft", SDLK_LEFT, Input::GRP_DEFAULT, &ActionManager::moveLeft, Input::KEY_NO_VALUE, 50, COND_GAME}, {"keyMoveRight", SDLK_RIGHT, Input::GRP_DEFAULT, &ActionManager::moveRight, Input::KEY_NO_VALUE, 50, COND_GAME}, {"keyAttack", SDLK_LCTRL, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyTargetAttack", SDLK_x, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyMoveToTarget", SDLK_v, Input::GRP_DEFAULT, &ActionManager::moveToTarget, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyChangeMoveToTarget", SDLK_PERIOD, Input::GRP_DEFAULT, &ActionManager::changeMoveToTarget, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyMoveToHome", SDLK_d, Input::GRP_DEFAULT, &ActionManager::moveToHome, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keySetHome", SDLK_KP5, Input::GRP_DEFAULT, &ActionManager::setHome, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyMoveToPoint", SDLK_RSHIFT, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyTalk", SDLK_t, Input::GRP_DEFAULT, &ActionManager::talk, Input::KEY_NO_VALUE, 50, COND_GAME}, {"keyTarget", SDLK_LSHIFT, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_GAME}, {"keyUnTarget", Input::KEY_NO_VALUE, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyTargetClosest", SDLK_a, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyTargetNPC", SDLK_n, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyTargetPlayer", SDLK_q, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyPickup", SDLK_z, Input::GRP_DEFAULT, &ActionManager::pickup, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyChangePickupType", SDLK_o, Input::GRP_DEFAULT, &ActionManager::changePickupType, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyHideWindows", SDLK_h, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::hideWindows, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyBeingSit", SDLK_s, Input::GRP_DEFAULT, &ActionManager::sit, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyScreenshot", SDLK_p, Input::GRP_DEFAULT, &ActionManager::screenshot, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyTrade", SDLK_r, Input::GRP_DEFAULT, &ActionManager::changeTrade, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyPathfind", SDLK_f, Input::GRP_DEFAULT, &ActionManager::changeMapMode, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET | COND_EMODS}, {"keyOK", SDLK_SPACE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::ok, Input::KEY_NO_VALUE, 50, COND_NOMODAL | COND_NOAWAY | COND_NONPCINPUT}, {"keyQuit", SDLK_ESCAPE, Input::GRP_DEFAULT, &ActionManager::quit, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyShortcutsKey", SDLK_MENU, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyShortcut1", SDLK_1, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut2", SDLK_2, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut3", SDLK_3, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut4", SDLK_4, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut5", SDLK_5, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut6", SDLK_6, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut7", SDLK_7, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut8", SDLK_8, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut9", SDLK_9, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut10", SDLK_0, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut11", SDLK_MINUS, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut12", SDLK_EQUALS, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut13", SDLK_BACKSPACE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut14", SDLK_INSERT, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut15", SDLK_HOME, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut16", Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut17", Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut18", Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut19", Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut20", Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::shortcut, Input::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyWindowHelp", SDLK_F1, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::helpWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowStatus", SDLK_F2, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::statusWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowInventory", SDLK_F3, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::inventoryWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowEquipment", SDLK_F4, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::equipmentWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowSkill", SDLK_F5, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::skillDialogShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowMinimap", SDLK_F6, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::minimapWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowChat", SDLK_F7, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::chatWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowShortcut", SDLK_F8, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::shortcutWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowSetup", SDLK_F9, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::setupWindowShow, Input::KEY_NO_VALUE, 50, COND_NOTARGET | COND_NOINPUT | COND_ENABLED}, {"keyWindowDebug", SDLK_F10, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::debugWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowSocial", SDLK_F11, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::socialWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowEmoteBar", SDLK_F12, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::emoteShortcutWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowOutfit", SDLK_BACKQUOTE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::outfitWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowShop", -1, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::shopWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowDrop", SDLK_w, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::dropShortcutWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowKills", SDLK_e, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::killStatsWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowSpells", SDLK_j, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::spellShortcutWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowBotChecker", SDLK_LEFTBRACKET, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::botcheckerWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowOnline", 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, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::didYouKnowWindowShow, Input::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keySocialPrevTab", Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::prevSocialTab, Input::KEY_NO_VALUE, 50, COND_NOINPUT}, {"keySocialNextTab", Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::nextSocialTab, Input::KEY_NO_VALUE, 50, COND_NOINPUT}, {"keySmilie", SDLK_LALT, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyEmoteShortcut1", SDLK_1, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut2", SDLK_2, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut3", SDLK_3, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut4", SDLK_4, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut5", SDLK_5, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut6", SDLK_6, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut7", SDLK_7, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut8", SDLK_8, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut9", SDLK_9, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut10", SDLK_0, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut11", SDLK_MINUS, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut12", SDLK_EQUALS, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut13", SDLK_BACKSPACE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut14", SDLK_INSERT, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut15", SDLK_HOME, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut16", SDLK_q, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut17", SDLK_w, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut18", SDLK_e, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut19", SDLK_r, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut20", SDLK_t, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut21", SDLK_y, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut22", SDLK_u, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut23", SDLK_i, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut24", SDLK_o, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut25", SDLK_p, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut26", SDLK_LEFTBRACKET, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut27", SDLK_RIGHTBRACKET, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut28", SDLK_BACKSLASH, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut29", SDLK_a, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut30", SDLK_s, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut31", SDLK_d, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut32", SDLK_f, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut33", SDLK_g, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut34", SDLK_h, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut35", SDLK_j, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut36", SDLK_k, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut37", SDLK_l, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut38", SDLK_SEMICOLON, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut39", SDLK_QUOTE, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut40", SDLK_z, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut41", SDLK_x, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut42", SDLK_c, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut43", SDLK_v, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut44", SDLK_b, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut45", SDLK_n, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut46", SDLK_m, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut47", SDLK_COMMA, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut48", SDLK_PERIOD, Input::GRP_EMOTION, &ActionManager::emote, Input::KEY_NO_VALUE, 100, COND_GAME}, {"keyWearOutfit", SDLK_RCTRL, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyCopyOutfit", SDLK_RALT, Input::GRP_DEFAULT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyCopyEquipedOutfit", SDLK_RIGHTBRACKET, Input::GRP_DEFAULT, &ActionManager::copyEquippedToOutfit, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyChat", SDLK_RETURN, Input::GRP_DEFAULT | Input::GRP_CHAT, &ActionManager::toggleChat, Input::KEY_NO_VALUE, 50, COND_ENABLED | COND_NOINPUT | COND_NOAWAY | COND_NOMODAL}, {"keyChatScrollUp", SDLK_PAGEUP, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::scrollChatUp, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyChatScrollDown", SDLK_PAGEDOWN, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::scrollChatDown, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyChatPrevTab", SDLK_KP7, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::prevChatTab, Input::KEY_NO_VALUE, 50, COND_NOINPUT}, {"keyChatNextTab", SDLK_KP9, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::nextChatTab, Input::KEY_NO_VALUE, 50, COND_NOINPUT}, {"keyChatCloseTab", Input::KEY_NO_VALUE, Input::GRP_DEFAULT | Input::GRP_GUI, &ActionManager::closeChatTab, Input::KEY_NO_VALUE, 50, COND_NOINPUT}, {"keyChatPrevHistory", SDLK_KP7, Input::GRP_CHAT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyChatNextHistory", SDLK_KP9, Input::GRP_CHAT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyAutoCompleteChat", SDLK_TAB, Input::GRP_CHAT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyDeActivateChat", SDLK_ESCAPE, Input::GRP_CHAT, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyIgnoreInput1", SDLK_LSUPER, Input::GRP_DEFAULT, &ActionManager::ignoreInput, Input::KEY_NO_VALUE, 500, COND_DEFAULT}, {"keyIgnoreInput2", SDLK_RSUPER, Input::GRP_DEFAULT, &ActionManager::ignoreInput, Input::KEY_NO_VALUE, 500, COND_DEFAULT}, {"keyDirectUp", SDLK_l, Input::GRP_DEFAULT, &ActionManager::directUp, Input::KEY_NO_VALUE, 50, COND_GAME}, {"keyDirectDown", SDLK_SEMICOLON, Input::GRP_DEFAULT, &ActionManager::directDown, Input::KEY_NO_VALUE, 50, COND_GAME}, {"keyDirectLeft", SDLK_k, Input::GRP_DEFAULT, &ActionManager::directLeft, Input::KEY_NO_VALUE, 50, COND_GAME}, {"keyDirectRight", SDLK_QUOTE, Input::GRP_DEFAULT, &ActionManager::directRight, Input::KEY_NO_VALUE, 50, COND_GAME}, {"keyCrazyMoves", SDLK_SLASH, Input::GRP_DEFAULT, &ActionManager::crazyMoves, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyChangeCrazyMoveType", SDLK_BACKSLASH, Input::GRP_DEFAULT, &ActionManager::changeCrazyMove, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyQuickDrop", SDLK_y, Input::GRP_DEFAULT, &ActionManager::dropItem0, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyQuickDropN", SDLK_u, Input::GRP_DEFAULT, &ActionManager::dropItem, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keySwitchQuickDrop", SDLK_i, Input::GRP_DEFAULT, &ActionManager::switchQuickDrop, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyMagicInma1", SDLK_c, Input::GRP_DEFAULT, &ActionManager::heal, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyMagicItenplz", SDLK_m, Input::GRP_DEFAULT, &ActionManager::itenplz, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyMagicAttack", SDLK_b, Input::GRP_DEFAULT, &ActionManager::magicAttack, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keySwitchMagicAttack", SDLK_COMMA, Input::GRP_DEFAULT, &ActionManager::changeMagicAttack, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keySwitchPvpAttack", Input::KEY_NO_VALUE, Input::GRP_DEFAULT, &ActionManager::changePvpMode, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyInvertDirection", SDLK_KP0, Input::GRP_DEFAULT, &ActionManager::changeMoveType, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyChangeAttackWeaponType", SDLK_g, Input::GRP_DEFAULT, &ActionManager::changeAttackWeaponType, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyChangeAttackType", SDLK_END, Input::GRP_DEFAULT, &ActionManager::changeAttackType, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyChangeFollowMode", SDLK_KP1, Input::GRP_DEFAULT, &ActionManager::changeFollowMode, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyChangeImitationMode", SDLK_KP4, Input::GRP_DEFAULT, &ActionManager::changeImitationMode, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyDisableGameModifiers", SDLK_KP8, Input::GRP_DEFAULT, &ActionManager::changeGameModifier, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyChangeAudio", SDLK_KP3, Input::GRP_DEFAULT, &ActionManager::changeAudio, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyAway", SDLK_KP2, Input::GRP_DEFAULT, &ActionManager::away, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyRightClick", SDLK_TAB, Input::GRP_DEFAULT, &ActionManager::mouseClick, Input::KEY_NO_VALUE, 50, COND_NOINPUT | COND_NOAWAY | COND_NOMODAL}, {"keyCameraMode", SDLK_KP_PLUS, Input::GRP_DEFAULT, &ActionManager::camera, Input::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyMod", SDLK_LSHIFT, Input::GRP_GUI, nullptr, Input::KEY_NO_VALUE, 50, COND_DEFAULT} }; #endif