/*
* Custom keyboard shortcuts configuration
* Copyright (C) 2007 Joshua Langley <joshlangley@optusnet.com.au>
* 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 <http://www.gnu.org/licenses/>.
*/
#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 <string>
// 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