/* * 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 "keyboardconfig.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[KeyboardConfig::KEY_TOTAL] = { {"keyMoveUp", SDLK_UP, KeyboardConfig::GRP_DEFAULT, &ActionManager::moveUp, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME2}, {"keyMoveDown", SDLK_DOWN, KeyboardConfig::GRP_DEFAULT, &ActionManager::moveDown, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME2}, {"keyMoveLeft", SDLK_LEFT, KeyboardConfig::GRP_DEFAULT, &ActionManager::moveLeft, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME}, {"keyMoveRight", SDLK_RIGHT, KeyboardConfig::GRP_DEFAULT, &ActionManager::moveRight, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME}, {"keyAttack", SDLK_LCTRL, KeyboardConfig::GRP_DEFAULT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyTargetAttack", SDLK_x, KeyboardConfig::GRP_DEFAULT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyMoveToTarget", SDLK_v, KeyboardConfig::GRP_DEFAULT, &ActionManager::moveToTarget, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyChangeMoveToTarget", SDLK_PERIOD, KeyboardConfig::GRP_DEFAULT, &ActionManager::changeMoveToTarget, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyMoveToHome", SDLK_d, KeyboardConfig::GRP_DEFAULT, &ActionManager::moveToHome, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keySetHome", SDLK_KP5, KeyboardConfig::GRP_DEFAULT, &ActionManager::setHome, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyMoveToPoint", SDLK_RSHIFT, KeyboardConfig::GRP_DEFAULT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyTalk", SDLK_t, KeyboardConfig::GRP_DEFAULT, &ActionManager::talk, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME}, {"keyTarget", SDLK_LSHIFT, KeyboardConfig::GRP_DEFAULT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME}, {"keyUnTarget", KeyboardConfig::KEY_NO_VALUE, KeyboardConfig::GRP_DEFAULT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyTargetClosest", SDLK_a, KeyboardConfig::GRP_DEFAULT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyTargetNPC", SDLK_n, KeyboardConfig::GRP_DEFAULT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyTargetPlayer", SDLK_q, KeyboardConfig::GRP_DEFAULT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyPickup", SDLK_z, KeyboardConfig::GRP_DEFAULT, &ActionManager::pickup, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyChangePickupType", SDLK_o, KeyboardConfig::GRP_DEFAULT, &ActionManager::changePickupType, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyHideWindows", SDLK_h, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::hideWindows, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyBeingSit", SDLK_s, KeyboardConfig::GRP_DEFAULT, &ActionManager::sit, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyScreenshot", SDLK_p, KeyboardConfig::GRP_DEFAULT, &ActionManager::screenshot, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyTrade", SDLK_r, KeyboardConfig::GRP_DEFAULT, &ActionManager::changeTrade, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyPathfind", SDLK_f, KeyboardConfig::GRP_DEFAULT, &ActionManager::changeMapMode, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET | COND_EMODS}, {"keyOK", SDLK_SPACE, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::ok, KeyboardConfig::KEY_NO_VALUE, 50, COND_NOMODAL | COND_NOAWAY | COND_NONPCINPUT}, {"keyQuit", SDLK_ESCAPE, KeyboardConfig::GRP_DEFAULT, &ActionManager::quit, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyShortcutsKey", SDLK_MENU, KeyboardConfig::GRP_DEFAULT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyShortcut1", SDLK_1, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut2", SDLK_2, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut3", SDLK_3, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut4", SDLK_4, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut5", SDLK_5, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut6", SDLK_6, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut7", SDLK_7, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut8", SDLK_8, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut9", SDLK_9, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut10", SDLK_0, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut11", SDLK_MINUS, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut12", SDLK_EQUALS, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut13", SDLK_BACKSPACE, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut14", SDLK_INSERT, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut15", SDLK_HOME, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut16", KeyboardConfig::KEY_NO_VALUE, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut17", KeyboardConfig::KEY_NO_VALUE, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut18", KeyboardConfig::KEY_NO_VALUE, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut19", KeyboardConfig::KEY_NO_VALUE, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyShortcut20", KeyboardConfig::KEY_NO_VALUE, KeyboardConfig::GRP_DEFAULT, &ActionManager::shortcut, KeyboardConfig::KEY_NO_VALUE, 50, COND_SHORTCUT}, {"keyWindowHelp", SDLK_F1, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::helpWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowStatus", SDLK_F2, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::statusWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowInventory", SDLK_F3, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::inventoryWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowEquipment", SDLK_F4, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::equipmentWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowSkill", SDLK_F5, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::skillDialogShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowMinimap", SDLK_F6, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::minimapWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowChat", SDLK_F7, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::chatWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowShortcut", SDLK_F8, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::shortcutWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowSetup", SDLK_F9, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::setupWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_NOTARGET | COND_NOINPUT | COND_ENABLED}, {"keyWindowDebug", SDLK_F10, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::debugWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowSocial", SDLK_F11, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::socialWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowEmoteBar", SDLK_F12, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::emoteShortcutWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowOutfit", SDLK_BACKQUOTE, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::outfitWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowShop", -1, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::shopWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowDrop", SDLK_w, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::dropShortcutWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowKills", SDLK_e, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::killStatsWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowSpells", SDLK_j, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::spellShortcutWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowBotChecker", SDLK_LEFTBRACKET, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::botcheckerWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowOnline", KeyboardConfig::KEY_NO_VALUE, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::whoIsOnlineWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keyWindowDidYouKnow", KeyboardConfig::KEY_NO_VALUE, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::didYouKnowWindowShow, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_NOTARGET}, {"keySocialPrevTab", KeyboardConfig::KEY_NO_VALUE, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::prevSocialTab, KeyboardConfig::KEY_NO_VALUE, 50, COND_NOINPUT}, {"keySocialNextTab", KeyboardConfig::KEY_NO_VALUE, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::nextSocialTab, KeyboardConfig::KEY_NO_VALUE, 50, COND_NOINPUT}, {"keySmilie", SDLK_LALT, KeyboardConfig::GRP_DEFAULT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyEmoteShortcut1", SDLK_1, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut2", SDLK_2, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut3", SDLK_3, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut4", SDLK_4, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut5", SDLK_5, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut6", SDLK_6, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut7", SDLK_7, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut8", SDLK_8, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut9", SDLK_9, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut10", SDLK_0, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut11", SDLK_MINUS, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut12", SDLK_EQUALS, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut13", SDLK_BACKSPACE, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut14", SDLK_INSERT, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut15", SDLK_HOME, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut16", SDLK_q, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut17", SDLK_w, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut18", SDLK_e, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut19", SDLK_r, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut20", SDLK_t, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut21", SDLK_y, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut22", SDLK_u, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut23", SDLK_i, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut24", SDLK_o, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut25", SDLK_p, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut26", SDLK_LEFTBRACKET, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut27", SDLK_RIGHTBRACKET, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut28", SDLK_BACKSLASH, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut29", SDLK_a, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut30", SDLK_s, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut31", SDLK_d, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut32", SDLK_f, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut33", SDLK_g, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut34", SDLK_h, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut35", SDLK_j, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut36", SDLK_k, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut37", SDLK_l, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut38", SDLK_SEMICOLON, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut39", SDLK_QUOTE, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut40", SDLK_z, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut41", SDLK_x, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut42", SDLK_c, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut43", SDLK_v, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut44", SDLK_b, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut45", SDLK_n, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut46", SDLK_m, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut47", SDLK_COMMA, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyEmoteShortcut48", SDLK_PERIOD, KeyboardConfig::GRP_EMOTION, &ActionManager::emote, KeyboardConfig::KEY_NO_VALUE, 100, COND_GAME}, {"keyWearOutfit", SDLK_RCTRL, KeyboardConfig::GRP_DEFAULT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyCopyOutfit", SDLK_RALT, KeyboardConfig::GRP_DEFAULT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyCopyEquipedOutfit", SDLK_RIGHTBRACKET, KeyboardConfig::GRP_DEFAULT, &ActionManager::copyEquippedToOutfit, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyChat", SDLK_RETURN, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_CHAT, &ActionManager::toggleChat, KeyboardConfig::KEY_NO_VALUE, 50, COND_ENABLED | COND_NOINPUT | COND_NOAWAY | COND_NOMODAL}, {"keyChatScrollUp", SDLK_PAGEUP, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::scrollChatUp, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyChatScrollDown", SDLK_PAGEDOWN, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::scrollChatDown, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyChatPrevTab", SDLK_KP7, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::prevChatTab, KeyboardConfig::KEY_NO_VALUE, 50, COND_NOINPUT}, {"keyChatNextTab", SDLK_KP9, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::nextChatTab, KeyboardConfig::KEY_NO_VALUE, 50, COND_NOINPUT}, {"keyChatCloseTab", KeyboardConfig::KEY_NO_VALUE, KeyboardConfig::GRP_DEFAULT | KeyboardConfig::GRP_GUI, &ActionManager::closeChatTab, KeyboardConfig::KEY_NO_VALUE, 50, COND_NOINPUT}, {"keyChatPrevHistory", SDLK_KP7, KeyboardConfig::GRP_CHAT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyChatNextHistory", SDLK_KP9, KeyboardConfig::GRP_CHAT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyAutoCompleteChat", SDLK_TAB, KeyboardConfig::GRP_CHAT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyDeActivateChat", SDLK_ESCAPE, KeyboardConfig::GRP_CHAT, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT}, {"keyIgnoreInput1", SDLK_LSUPER, KeyboardConfig::GRP_DEFAULT, &ActionManager::ignoreInput, KeyboardConfig::KEY_NO_VALUE, 500, COND_DEFAULT}, {"keyIgnoreInput2", SDLK_RSUPER, KeyboardConfig::GRP_DEFAULT, &ActionManager::ignoreInput, KeyboardConfig::KEY_NO_VALUE, 500, COND_DEFAULT}, {"keyDirectUp", SDLK_l, KeyboardConfig::GRP_DEFAULT, &ActionManager::directUp, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME}, {"keyDirectDown", SDLK_SEMICOLON, KeyboardConfig::GRP_DEFAULT, &ActionManager::directDown, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME}, {"keyDirectLeft", SDLK_k, KeyboardConfig::GRP_DEFAULT, &ActionManager::directLeft, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME}, {"keyDirectRight", SDLK_QUOTE, KeyboardConfig::GRP_DEFAULT, &ActionManager::directRight, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME}, {"keyCrazyMoves", SDLK_SLASH, KeyboardConfig::GRP_DEFAULT, &ActionManager::crazyMoves, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyChangeCrazyMoveType", SDLK_BACKSLASH, KeyboardConfig::GRP_DEFAULT, &ActionManager::changeCrazyMove, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyQuickDrop", SDLK_y, KeyboardConfig::GRP_DEFAULT, &ActionManager::dropItem0, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyQuickDropN", SDLK_u, KeyboardConfig::GRP_DEFAULT, &ActionManager::dropItem, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keySwitchQuickDrop", SDLK_i, KeyboardConfig::GRP_DEFAULT, &ActionManager::switchQuickDrop, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyMagicInma1", SDLK_c, KeyboardConfig::GRP_DEFAULT, &ActionManager::heal, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyMagicItenplz", SDLK_m, KeyboardConfig::GRP_DEFAULT, &ActionManager::itenplz, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyMagicAttack", SDLK_b, KeyboardConfig::GRP_DEFAULT, &ActionManager::magicAttack, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keySwitchMagicAttack", SDLK_COMMA, KeyboardConfig::GRP_DEFAULT, &ActionManager::changeMagicAttack, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keySwitchPvpAttack", KeyboardConfig::KEY_NO_VALUE, KeyboardConfig::GRP_DEFAULT, &ActionManager::changePvpMode, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyInvertDirection", SDLK_KP0, KeyboardConfig::GRP_DEFAULT, &ActionManager::changeMoveType, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyChangeAttackWeaponType", SDLK_g, KeyboardConfig::GRP_DEFAULT, &ActionManager::changeAttackWeaponType, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyChangeAttackType", SDLK_END, KeyboardConfig::GRP_DEFAULT, &ActionManager::changeAttackType, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyChangeFollowMode", SDLK_KP1, KeyboardConfig::GRP_DEFAULT, &ActionManager::changeFollowMode, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyChangeImitationMode", SDLK_KP4, KeyboardConfig::GRP_DEFAULT, &ActionManager::changeImitationMode, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyDisableGameModifiers", SDLK_KP8, KeyboardConfig::GRP_DEFAULT, &ActionManager::changeGameModifier, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyChangeAudio", SDLK_KP3, KeyboardConfig::GRP_DEFAULT, &ActionManager::changeAudio, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyAway", SDLK_KP2, KeyboardConfig::GRP_DEFAULT, &ActionManager::away, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED}, {"keyRightClick", SDLK_TAB, KeyboardConfig::GRP_DEFAULT, &ActionManager::mouseClick, KeyboardConfig::KEY_NO_VALUE, 50, COND_NOINPUT | COND_NOAWAY | COND_NOMODAL}, {"keyCameraMode", SDLK_KP_PLUS, KeyboardConfig::GRP_DEFAULT, &ActionManager::camera, KeyboardConfig::KEY_NO_VALUE, 50, COND_GAME | COND_VALIDSPEED | COND_EMODS}, {"keyMod", SDLK_LSHIFT, KeyboardConfig::GRP_GUI, nullptr, KeyboardConfig::KEY_NO_VALUE, 50, COND_DEFAULT} }; #endif