~ubuntu-branches/ubuntu/trusty/manaplus/trusty-proposed

« back to all changes in this revision

Viewing changes to src/input/keydata.h

  • Committer: Package Import Robot
  • Author(s): Patrick Matthäi
  • Date: 2013-09-17 10:35:51 UTC
  • mfrom: (1.1.10)
  • Revision ID: package-import@ubuntu.com-20130917103551-az7p3nz9jgxwqjfn
Tags: 1.3.9.15-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  Custom keyboard shortcuts configuration
 
3
 *  Copyright (C) 2007  Joshua Langley <joshlangley@optusnet.com.au>
 
4
 *  Copyright (C) 2009-2010  The Mana Developers
 
5
 *  Copyright (C) 2011-2013  The ManaPlus Developers
 
6
 *
 
7
 *  This file is part of The ManaPlus Client.
 
8
 *
 
9
 *  This program is free software; you can redistribute it and/or modify
 
10
 *  it under the terms of the GNU General Public License as published by
 
11
 *  the Free Software Foundation; either version 2 of the License, or
 
12
 *  any later version.
 
13
 *
 
14
 *  This program is distributed in the hope that it will be useful,
 
15
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
16
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
17
 *  GNU General Public License for more details.
 
18
 *
 
19
 *  You should have received a copy of the GNU General Public License
 
20
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
21
 */
 
22
 
 
23
#ifndef INPUT_KEYDATA_H
 
24
#define INPUT_KEYDATA_H
 
25
 
 
26
#include "input/inputevent.h"
 
27
 
 
28
#include <string>
 
29
 
 
30
typedef bool (*ActionFuncPtr) (const InputEvent &event);
 
31
 
 
32
struct KeyData final
 
33
{
 
34
    const char *configField;
 
35
    int defaultType1;
 
36
    int defaultValue1;
 
37
    int defaultType2;
 
38
    int defaultValue2;
 
39
    int grp;
 
40
    ActionFuncPtr action;
 
41
    int modKeyIndex;
 
42
    int priority;
 
43
    int condition;
 
44
};
 
45
 
 
46
namespace Input
 
47
{
 
48
    enum KeyGroup
 
49
    {
 
50
        GRP_DEFAULT = 1,           // default game key
 
51
        GRP_CHAT = 2,              // chat key
 
52
        GRP_EMOTION = 4,           // emotions key
 
53
        GRP_OUTFIT = 8,            // outfit key
 
54
        GRP_GUI = 16,              // gui key
 
55
        GRP_MOVETOPOINT = 32,      // move to point key
 
56
        GRP_GUICHAN = 64,          // for guichan based controls
 
57
        GRP_REPEAT = 128           // repeat emulation keys
 
58
    };
 
59
 
 
60
    /**
 
61
      * All the key functions.
 
62
      * KEY_NO_VALUE is used in initialization, and should be unchanged.
 
63
      * KEY_TOTAL should always be last (used as a conditional in loops).
 
64
      * The key assignment view gets arranged according to the order of
 
65
      * these values.
 
66
      */
 
67
    enum KeyAction
 
68
    {
 
69
        KEY_NO_VALUE = -1,
 
70
        KEY_MOVE_UP,
 
71
        KEY_MOVE_DOWN,
 
72
        KEY_MOVE_LEFT,
 
73
        KEY_MOVE_RIGHT,
 
74
        KEY_ATTACK,
 
75
        KEY_TARGET_ATTACK,
 
76
        KEY_MOVE_TO_TARGET,
 
77
        KEY_CHANGE_MOVE_TO_TARGET,
 
78
        KEY_MOVE_TO_HOME,
 
79
        KEY_SET_HOME,
 
80
        KEY_MOVE_TO_POINT,
 
81
        KEY_TALK,
 
82
        KEY_STOP_ATTACK,
 
83
        KEY_UNTARGET,
 
84
        KEY_TARGET_MONSTER,
 
85
        KEY_TARGET_NPC,
 
86
        KEY_TARGET_PLAYER,
 
87
        KEY_PICKUP,
 
88
        KEY_CHANGE_PICKUP_TYPE,
 
89
        KEY_HIDE_WINDOWS,
 
90
        KEY_SIT,
 
91
        KEY_SCREENSHOT,
 
92
        KEY_TRADE,
 
93
        KEY_PATHFIND,
 
94
        KEY_OK,
 
95
        KEY_QUIT,
 
96
        KEY_SHORTCUTS_KEY,
 
97
        KEY_SHORTCUT_1,
 
98
        KEY_SHORTCUT_2,
 
99
        KEY_SHORTCUT_3,
 
100
        KEY_SHORTCUT_4,
 
101
        KEY_SHORTCUT_5,
 
102
        KEY_SHORTCUT_6,
 
103
        KEY_SHORTCUT_7,
 
104
        KEY_SHORTCUT_8,
 
105
        KEY_SHORTCUT_9,
 
106
        KEY_SHORTCUT_10,
 
107
        KEY_SHORTCUT_11,
 
108
        KEY_SHORTCUT_12,
 
109
        KEY_SHORTCUT_13,
 
110
        KEY_SHORTCUT_14,
 
111
        KEY_SHORTCUT_15,
 
112
        KEY_SHORTCUT_16,
 
113
        KEY_SHORTCUT_17,
 
114
        KEY_SHORTCUT_18,
 
115
        KEY_SHORTCUT_19,
 
116
        KEY_SHORTCUT_20,
 
117
        KEY_WINDOW_HELP,
 
118
        KEY_WINDOW_STATUS,
 
119
        KEY_WINDOW_INVENTORY,
 
120
        KEY_WINDOW_EQUIPMENT,
 
121
        KEY_WINDOW_SKILL,
 
122
        KEY_WINDOW_MINIMAP,
 
123
        KEY_WINDOW_CHAT,
 
124
        KEY_WINDOW_SHORTCUT,
 
125
        KEY_WINDOW_SETUP,
 
126
        KEY_WINDOW_DEBUG,
 
127
        KEY_WINDOW_SOCIAL,
 
128
        KEY_WINDOW_EMOTE_SHORTCUT,
 
129
        KEY_WINDOW_OUTFIT,
 
130
        KEY_WINDOW_SHOP,
 
131
        KEY_WINDOW_DROP,
 
132
        KEY_WINDOW_KILLS,
 
133
        KEY_WINDOW_SPELLS,
 
134
        KEY_WINDOW_BOT_CHECKER,
 
135
        KEY_WINDOW_ONLINE,
 
136
        KEY_WINDOW_DIDYOUKNOW,
 
137
        KEY_WINDOW_QUESTS,
 
138
        KEY_PREV_SOCIAL_TAB,
 
139
        KEY_NEXT_SOCIAL_TAB,
 
140
        KEY_EMOTE,
 
141
        KEY_EMOTE_1,
 
142
        KEY_EMOTE_2,
 
143
        KEY_EMOTE_3,
 
144
        KEY_EMOTE_4,
 
145
        KEY_EMOTE_5,
 
146
        KEY_EMOTE_6,
 
147
        KEY_EMOTE_7,
 
148
        KEY_EMOTE_8,
 
149
        KEY_EMOTE_9,
 
150
        KEY_EMOTE_10,
 
151
        KEY_EMOTE_11,
 
152
        KEY_EMOTE_12,
 
153
        KEY_EMOTE_13,
 
154
        KEY_EMOTE_14,
 
155
        KEY_EMOTE_15,
 
156
        KEY_EMOTE_16,
 
157
        KEY_EMOTE_17,
 
158
        KEY_EMOTE_18,
 
159
        KEY_EMOTE_19,
 
160
        KEY_EMOTE_20,
 
161
        KEY_EMOTE_21,
 
162
        KEY_EMOTE_22,
 
163
        KEY_EMOTE_23,
 
164
        KEY_EMOTE_24,
 
165
        KEY_EMOTE_25,
 
166
        KEY_EMOTE_26,
 
167
        KEY_EMOTE_27,
 
168
        KEY_EMOTE_28,
 
169
        KEY_EMOTE_29,
 
170
        KEY_EMOTE_30,
 
171
        KEY_EMOTE_31,
 
172
        KEY_EMOTE_32,
 
173
        KEY_EMOTE_33,
 
174
        KEY_EMOTE_34,
 
175
        KEY_EMOTE_35,
 
176
        KEY_EMOTE_36,
 
177
        KEY_EMOTE_37,
 
178
        KEY_EMOTE_38,
 
179
        KEY_EMOTE_39,
 
180
        KEY_EMOTE_40,
 
181
        KEY_EMOTE_41,
 
182
        KEY_EMOTE_42,
 
183
        KEY_EMOTE_43,
 
184
        KEY_EMOTE_44,
 
185
        KEY_EMOTE_45,
 
186
        KEY_EMOTE_46,
 
187
        KEY_EMOTE_47,
 
188
        KEY_EMOTE_48,
 
189
        KEY_WEAR_OUTFIT,
 
190
        KEY_COPY_OUTFIT,
 
191
        KEY_COPY_EQUIPED_OUTFIT,
 
192
        KEY_OUTFIT_1,
 
193
        KEY_OUTFIT_2,
 
194
        KEY_OUTFIT_3,
 
195
        KEY_OUTFIT_4,
 
196
        KEY_OUTFIT_5,
 
197
        KEY_OUTFIT_6,
 
198
        KEY_OUTFIT_7,
 
199
        KEY_OUTFIT_8,
 
200
        KEY_OUTFIT_9,
 
201
        KEY_OUTFIT_10,
 
202
        KEY_OUTFIT_11,
 
203
        KEY_OUTFIT_12,
 
204
        KEY_OUTFIT_13,
 
205
        KEY_OUTFIT_14,
 
206
        KEY_OUTFIT_15,
 
207
        KEY_OUTFIT_16,
 
208
        KEY_OUTFIT_17,
 
209
        KEY_OUTFIT_18,
 
210
        KEY_OUTFIT_19,
 
211
        KEY_OUTFIT_20,
 
212
        KEY_OUTFIT_21,
 
213
        KEY_OUTFIT_22,
 
214
        KEY_OUTFIT_23,
 
215
        KEY_OUTFIT_24,
 
216
        KEY_OUTFIT_25,
 
217
        KEY_OUTFIT_26,
 
218
        KEY_OUTFIT_27,
 
219
        KEY_OUTFIT_28,
 
220
        KEY_OUTFIT_29,
 
221
        KEY_OUTFIT_30,
 
222
        KEY_OUTFIT_31,
 
223
        KEY_OUTFIT_32,
 
224
        KEY_OUTFIT_33,
 
225
        KEY_OUTFIT_34,
 
226
        KEY_OUTFIT_35,
 
227
        KEY_OUTFIT_36,
 
228
        KEY_OUTFIT_37,
 
229
        KEY_OUTFIT_38,
 
230
        KEY_OUTFIT_39,
 
231
        KEY_OUTFIT_40,
 
232
        KEY_OUTFIT_41,
 
233
        KEY_OUTFIT_42,
 
234
        KEY_OUTFIT_43,
 
235
        KEY_OUTFIT_44,
 
236
        KEY_OUTFIT_45,
 
237
        KEY_OUTFIT_46,
 
238
        KEY_OUTFIT_47,
 
239
        KEY_OUTFIT_48,
 
240
        KEY_MOVE_TO_POINT_1,
 
241
        KEY_MOVE_TO_POINT_2,
 
242
        KEY_MOVE_TO_POINT_3,
 
243
        KEY_MOVE_TO_POINT_4,
 
244
        KEY_MOVE_TO_POINT_5,
 
245
        KEY_MOVE_TO_POINT_6,
 
246
        KEY_MOVE_TO_POINT_7,
 
247
        KEY_MOVE_TO_POINT_8,
 
248
        KEY_MOVE_TO_POINT_9,
 
249
        KEY_MOVE_TO_POINT_10,
 
250
        KEY_MOVE_TO_POINT_11,
 
251
        KEY_MOVE_TO_POINT_12,
 
252
        KEY_MOVE_TO_POINT_13,
 
253
        KEY_MOVE_TO_POINT_14,
 
254
        KEY_MOVE_TO_POINT_15,
 
255
        KEY_MOVE_TO_POINT_16,
 
256
        KEY_MOVE_TO_POINT_17,
 
257
        KEY_MOVE_TO_POINT_18,
 
258
        KEY_MOVE_TO_POINT_19,
 
259
        KEY_MOVE_TO_POINT_20,
 
260
        KEY_MOVE_TO_POINT_21,
 
261
        KEY_MOVE_TO_POINT_22,
 
262
        KEY_MOVE_TO_POINT_23,
 
263
        KEY_MOVE_TO_POINT_24,
 
264
        KEY_MOVE_TO_POINT_25,
 
265
        KEY_MOVE_TO_POINT_26,
 
266
        KEY_MOVE_TO_POINT_27,
 
267
        KEY_MOVE_TO_POINT_28,
 
268
        KEY_MOVE_TO_POINT_29,
 
269
        KEY_MOVE_TO_POINT_30,
 
270
        KEY_MOVE_TO_POINT_31,
 
271
        KEY_MOVE_TO_POINT_32,
 
272
        KEY_MOVE_TO_POINT_33,
 
273
        KEY_MOVE_TO_POINT_34,
 
274
        KEY_MOVE_TO_POINT_35,
 
275
        KEY_MOVE_TO_POINT_36,
 
276
        KEY_MOVE_TO_POINT_37,
 
277
        KEY_MOVE_TO_POINT_38,
 
278
        KEY_MOVE_TO_POINT_39,
 
279
        KEY_MOVE_TO_POINT_40,
 
280
        KEY_MOVE_TO_POINT_41,
 
281
        KEY_MOVE_TO_POINT_42,
 
282
        KEY_MOVE_TO_POINT_43,
 
283
        KEY_MOVE_TO_POINT_44,
 
284
        KEY_MOVE_TO_POINT_45,
 
285
        KEY_MOVE_TO_POINT_46,
 
286
        KEY_MOVE_TO_POINT_47,
 
287
        KEY_MOVE_TO_POINT_48,
 
288
        KEY_TOGGLE_CHAT,
 
289
        KEY_SCROLL_CHAT_UP,
 
290
        KEY_SCROLL_CHAT_DOWN,
 
291
        KEY_PREV_CHAT_TAB,
 
292
        KEY_NEXT_CHAT_TAB,
 
293
        KEY_CLOSE_CHAT_TAB,
 
294
        KEY_CHAT_PREV_HISTORY,
 
295
        KEY_CHAT_NEXT_HISTORY,
 
296
        KEY_IGNORE_INPUT_1,
 
297
        KEY_IGNORE_INPUT_2,
 
298
        KEY_DIRECT_UP,
 
299
        KEY_DIRECT_DOWN,
 
300
        KEY_DIRECT_LEFT,
 
301
        KEY_DIRECT_RIGHT,
 
302
        KEY_CRAZY_MOVES,
 
303
        KEY_CHANGE_CRAZY_MOVES_TYPE,
 
304
        KEY_QUICK_DROP,
 
305
        KEY_QUICK_DROPN,
 
306
        KEY_SWITCH_QUICK_DROP,
 
307
        KEY_MAGIC_INMA1,
 
308
        KEY_MAGIC_ITENPLZ,
 
309
        KEY_MAGIC_ATTACK,
 
310
        KEY_SWITCH_MAGIC_ATTACK,
 
311
        KEY_SWITCH_PVP_ATTACK,
 
312
        KEY_INVERT_DIRECTION,
 
313
        KEY_CHANGE_ATTACK_WEAPON_TYPE,
 
314
        KEY_CHANGE_ATTACK_TYPE,
 
315
        KEY_CHANGE_FOLLOW_MODE,
 
316
        KEY_CHANGE_IMITATION_MODE,
 
317
        KEY_DISABLE_GAME_MODIFIERS,
 
318
        KEY_CHANGE_AUDIO,
 
319
        KEY_AWAY,
 
320
        KEY_RIGHT_CLICK,
 
321
        KEY_CAMERA,
 
322
        KEY_MOD,
 
323
        KEY_GUI_UP,
 
324
        KEY_GUI_DOWN,
 
325
        KEY_GUI_LEFT,
 
326
        KEY_GUI_RIGHT,
 
327
        KEY_GUI_SELECT,
 
328
        KEY_GUI_SELECT2,
 
329
        KEY_GUI_CANCEL,
 
330
        KEY_GUI_HOME,
 
331
        KEY_GUI_END,
 
332
        KEY_GUI_DELETE,
 
333
        KEY_GUI_BACKSPACE,
 
334
        KEY_GUI_TAB,
 
335
        KEY_GUI_PAGE_UP,
 
336
        KEY_GUI_PAGE_DOWN,
 
337
        KEY_GUI_INSERT,
 
338
        KEY_GUI_MOD,
 
339
        KEY_SAFE_VIDEO,
 
340
        KEY_STOP_SIT,
 
341
        KEY_SHOW_KEYBOARD,
 
342
        KEY_SHOW_WINDOWS,
 
343
        KEY_CHAT_MOD,
 
344
        KEY_TOTAL
 
345
    };
 
346
}  // namespace Input
 
347
 
 
348
#endif  // INPUT_KEYDATA_H