/* * Custom keyboard shortcuts configuration * Copyright (C) 2007 Joshua Langley <joshlangley@optusnet.com.au> * Copyright (C) 2009-2010 The Mana Developers * Copyright (C) 2011-2014 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 INPUT_KEYDATA_H #define INPUT_KEYDATA_H #include "events/inputevent.h" #include <string> typedef bool (*ActionFuncPtr) (const InputEvent &event); struct KeyData final { const char *configField; int defaultType1; int defaultValue1; int defaultType2; int defaultValue2; int grp; ActionFuncPtr action; int modKeyIndex; int priority; int condition; }; namespace Input { enum KeyGroup { GRP_DEFAULT = 1, // default game key GRP_CHAT = 2, // chat key GRP_EMOTION = 4, // emotions key GRP_OUTFIT = 8, // outfit key GRP_GUI = 16, // gui key GRP_MOVETOPOINT = 32, // move to point key GRP_GUICHAN = 64, // for guichan based controls GRP_REPEAT = 128 // repeat emulation keys }; /** * All the key functions. * KEY_NO_VALUE is used in initialization, and should be unchanged. * KEY_TOTAL should always be last (used as a conditional in loops). * The key assignment view gets arranged according to the order of * these values. */ enum KeyAction { KEY_NO_VALUE = -1, KEY_MOVE_UP, KEY_MOVE_DOWN, KEY_MOVE_LEFT, KEY_MOVE_RIGHT, KEY_ATTACK, KEY_TARGET_ATTACK, KEY_MOVE_TO_TARGET, KEY_CHANGE_MOVE_TO_TARGET, KEY_MOVE_TO_HOME, KEY_SET_HOME, KEY_MOVE_TO_POINT, KEY_TALK, KEY_STOP_ATTACK, KEY_UNTARGET, KEY_TARGET_MONSTER, KEY_TARGET_NPC, KEY_TARGET_PLAYER, KEY_PICKUP, KEY_CHANGE_PICKUP_TYPE, KEY_HIDE_WINDOWS, KEY_SIT, KEY_SCREENSHOT, KEY_TRADE, KEY_PATHFIND, KEY_OK, KEY_QUIT, KEY_SHORTCUTS_KEY, KEY_SHORTCUT_1, KEY_SHORTCUT_2, KEY_SHORTCUT_3, KEY_SHORTCUT_4, KEY_SHORTCUT_5, KEY_SHORTCUT_6, KEY_SHORTCUT_7, KEY_SHORTCUT_8, KEY_SHORTCUT_9, KEY_SHORTCUT_10, KEY_SHORTCUT_11, KEY_SHORTCUT_12, KEY_SHORTCUT_13, KEY_SHORTCUT_14, KEY_SHORTCUT_15, KEY_SHORTCUT_16, KEY_SHORTCUT_17, KEY_SHORTCUT_18, KEY_SHORTCUT_19, KEY_SHORTCUT_20, KEY_WINDOW_HELP, KEY_WINDOW_STATUS, KEY_WINDOW_INVENTORY, KEY_WINDOW_EQUIPMENT, KEY_WINDOW_SKILL, KEY_WINDOW_MINIMAP, KEY_WINDOW_CHAT, KEY_WINDOW_SHORTCUT, KEY_WINDOW_SETUP, KEY_WINDOW_DEBUG, KEY_WINDOW_SOCIAL, KEY_WINDOW_EMOTE_SHORTCUT, KEY_WINDOW_OUTFIT, KEY_WINDOW_SHOP, KEY_WINDOW_DROP, KEY_WINDOW_KILLS, KEY_WINDOW_SPELLS, KEY_WINDOW_BOT_CHECKER, KEY_WINDOW_ONLINE, KEY_WINDOW_DIDYOUKNOW, KEY_WINDOW_QUESTS, KEY_PREV_SOCIAL_TAB, KEY_NEXT_SOCIAL_TAB, KEY_EMOTE, KEY_EMOTE_1, KEY_EMOTE_2, KEY_EMOTE_3, KEY_EMOTE_4, KEY_EMOTE_5, KEY_EMOTE_6, KEY_EMOTE_7, KEY_EMOTE_8, KEY_EMOTE_9, KEY_EMOTE_10, KEY_EMOTE_11, KEY_EMOTE_12, KEY_EMOTE_13, KEY_EMOTE_14, KEY_EMOTE_15, KEY_EMOTE_16, KEY_EMOTE_17, KEY_EMOTE_18, KEY_EMOTE_19, KEY_EMOTE_20, KEY_EMOTE_21, KEY_EMOTE_22, KEY_EMOTE_23, KEY_EMOTE_24, KEY_EMOTE_25, KEY_EMOTE_26, KEY_EMOTE_27, KEY_EMOTE_28, KEY_EMOTE_29, KEY_EMOTE_30, KEY_EMOTE_31, KEY_EMOTE_32, KEY_EMOTE_33, KEY_EMOTE_34, KEY_EMOTE_35, KEY_EMOTE_36, KEY_EMOTE_37, KEY_EMOTE_38, KEY_EMOTE_39, KEY_EMOTE_40, KEY_EMOTE_41, KEY_EMOTE_42, KEY_EMOTE_43, KEY_EMOTE_44, KEY_EMOTE_45, KEY_EMOTE_46, KEY_EMOTE_47, KEY_EMOTE_48, KEY_WEAR_OUTFIT, KEY_COPY_OUTFIT, KEY_COPY_EQUIPED_OUTFIT, KEY_OUTFIT_1, KEY_OUTFIT_2, KEY_OUTFIT_3, KEY_OUTFIT_4, KEY_OUTFIT_5, KEY_OUTFIT_6, KEY_OUTFIT_7, KEY_OUTFIT_8, KEY_OUTFIT_9, KEY_OUTFIT_10, KEY_OUTFIT_11, KEY_OUTFIT_12, KEY_OUTFIT_13, KEY_OUTFIT_14, KEY_OUTFIT_15, KEY_OUTFIT_16, KEY_OUTFIT_17, KEY_OUTFIT_18, KEY_OUTFIT_19, KEY_OUTFIT_20, KEY_OUTFIT_21, KEY_OUTFIT_22, KEY_OUTFIT_23, KEY_OUTFIT_24, KEY_OUTFIT_25, KEY_OUTFIT_26, KEY_OUTFIT_27, KEY_OUTFIT_28, KEY_OUTFIT_29, KEY_OUTFIT_30, KEY_OUTFIT_31, KEY_OUTFIT_32, KEY_OUTFIT_33, KEY_OUTFIT_34, KEY_OUTFIT_35, KEY_OUTFIT_36, KEY_OUTFIT_37, KEY_OUTFIT_38, KEY_OUTFIT_39, KEY_OUTFIT_40, KEY_OUTFIT_41, KEY_OUTFIT_42, KEY_OUTFIT_43, KEY_OUTFIT_44, KEY_OUTFIT_45, KEY_OUTFIT_46, KEY_OUTFIT_47, KEY_OUTFIT_48, KEY_MOVE_TO_POINT_1, KEY_MOVE_TO_POINT_2, KEY_MOVE_TO_POINT_3, KEY_MOVE_TO_POINT_4, KEY_MOVE_TO_POINT_5, KEY_MOVE_TO_POINT_6, KEY_MOVE_TO_POINT_7, KEY_MOVE_TO_POINT_8, KEY_MOVE_TO_POINT_9, KEY_MOVE_TO_POINT_10, KEY_MOVE_TO_POINT_11, KEY_MOVE_TO_POINT_12, KEY_MOVE_TO_POINT_13, KEY_MOVE_TO_POINT_14, KEY_MOVE_TO_POINT_15, KEY_MOVE_TO_POINT_16, KEY_MOVE_TO_POINT_17, KEY_MOVE_TO_POINT_18, KEY_MOVE_TO_POINT_19, KEY_MOVE_TO_POINT_20, KEY_MOVE_TO_POINT_21, KEY_MOVE_TO_POINT_22, KEY_MOVE_TO_POINT_23, KEY_MOVE_TO_POINT_24, KEY_MOVE_TO_POINT_25, KEY_MOVE_TO_POINT_26, KEY_MOVE_TO_POINT_27, KEY_MOVE_TO_POINT_28, KEY_MOVE_TO_POINT_29, KEY_MOVE_TO_POINT_30, KEY_MOVE_TO_POINT_31, KEY_MOVE_TO_POINT_32, KEY_MOVE_TO_POINT_33, KEY_MOVE_TO_POINT_34, KEY_MOVE_TO_POINT_35, KEY_MOVE_TO_POINT_36, KEY_MOVE_TO_POINT_37, KEY_MOVE_TO_POINT_38, KEY_MOVE_TO_POINT_39, KEY_MOVE_TO_POINT_40, KEY_MOVE_TO_POINT_41, KEY_MOVE_TO_POINT_42, KEY_MOVE_TO_POINT_43, KEY_MOVE_TO_POINT_44, KEY_MOVE_TO_POINT_45, KEY_MOVE_TO_POINT_46, KEY_MOVE_TO_POINT_47, KEY_MOVE_TO_POINT_48, KEY_TOGGLE_CHAT, KEY_SCROLL_CHAT_UP, KEY_SCROLL_CHAT_DOWN, KEY_PREV_CHAT_TAB, KEY_NEXT_CHAT_TAB, KEY_CLOSE_CHAT_TAB, KEY_CHAT_PREV_HISTORY, KEY_CHAT_NEXT_HISTORY, KEY_IGNORE_INPUT_1, KEY_IGNORE_INPUT_2, KEY_DIRECT_UP, KEY_DIRECT_DOWN, KEY_DIRECT_LEFT, KEY_DIRECT_RIGHT, KEY_CRAZY_MOVES, KEY_CHANGE_CRAZY_MOVES_TYPE, KEY_QUICK_DROP, KEY_QUICK_DROPN, KEY_SWITCH_QUICK_DROP, KEY_MAGIC_INMA1, KEY_MAGIC_ITENPLZ, KEY_MAGIC_ATTACK, KEY_SWITCH_MAGIC_ATTACK, KEY_SWITCH_PVP_ATTACK, KEY_INVERT_DIRECTION, KEY_CHANGE_ATTACK_WEAPON_TYPE, KEY_CHANGE_ATTACK_TYPE, KEY_CHANGE_FOLLOW_MODE, KEY_CHANGE_IMITATION_MODE, KEY_DISABLE_GAME_MODIFIERS, KEY_CHANGE_AUDIO, KEY_AWAY, KEY_RIGHT_CLICK, KEY_CAMERA, KEY_RESERVED1, KEY_GUI_UP, KEY_GUI_DOWN, KEY_GUI_LEFT, KEY_GUI_RIGHT, KEY_GUI_SELECT, KEY_GUI_SELECT2, KEY_GUI_CANCEL, KEY_GUI_HOME, KEY_GUI_END, KEY_GUI_DELETE, KEY_GUI_BACKSPACE, KEY_GUI_TAB, KEY_GUI_PAGE_UP, KEY_GUI_PAGE_DOWN, KEY_GUI_INSERT, KEY_GUI_MOD, KEY_SAFE_VIDEO, KEY_STOP_SIT, KEY_SHOW_KEYBOARD, KEY_SHOW_WINDOWS, KEY_CHAT_MOD, KEY_MOVE_FORWARD, KEY_GUI_CTRL, KEY_GUI_B, KEY_GUI_C, KEY_GUI_D, KEY_GUI_E, KEY_GUI_F, KEY_GUI_H, KEY_GUI_K, KEY_GUI_U, KEY_GUI_V, KEY_GUI_W, KEY_PREV_SHORTCUTS_TAB, KEY_NEXT_SHORTCUTS_TAB, KEY_PREV_COMMANDS_TAB, KEY_NEXT_COMMANDS_TAB, KEY_OPEN_TRADE, KEY_GUI_F1, KEY_GUI_F2, KEY_GUI_F3, KEY_GUI_F4, KEY_GUI_F5, KEY_GUI_F6, KEY_GUI_F7, KEY_GUI_F8, KEY_GUI_F9, KEY_GUI_F10, KEY_GUI_F11, KEY_GUI_F12, KEY_WINDOW_ABOUT, KEY_TOTAL }; } // namespace Input #endif // INPUT_KEYDATA_H