ScummVM API documentation
keymapper_tables.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef WINTERMUTE_KEYMAPPER_TABLES_H
23#define WINTERMUTE_KEYMAPPER_TABLES_H
24
25#include "backends/keymapper/action.h"
26#include "backends/keymapper/keymapper.h"
28
29#include "engines/wintermute/base/base_game_custom_actions.h"
30
31#include "common/translation.h"
32
33namespace Wintermute {
34
35inline Common::KeymapArray getWintermuteKeymaps(const char *target, const Common::String &gameId, const char *gameDescr) {
36
37 using namespace Common;
38
39 Keymap *engineKeyMap = new Keymap(Keymap::kKeymapTypeGame, "wintermute", "Wintermute engine");
40 Keymap *gameKeyMap = new Keymap(Keymap::kKeymapTypeGame, gameId, gameDescr);
41 Keymap *extraKeyMap = new Keymap(Keymap::kKeymapTypeGame, "extras", "ScummVM extra actions");
42
43 Action *act;
44
45 act = new Action(kStandardActionLeftClick, _("Left click"));
46 act->setLeftClickEvent();
47 act->addDefaultInputMapping("MOUSE_LEFT"); // original mouse
48 act->addDefaultInputMapping("JOY_A"); // extra joy
49 engineKeyMap->addAction(act);
50
51 act = new Action(kStandardActionRightClick, _("Right click"));
52 act->setRightClickEvent();
53 act->addDefaultInputMapping("MOUSE_RIGHT"); // original mouse
54 act->addDefaultInputMapping("JOY_B"); // extra joy
55 engineKeyMap->addAction(act);
56
57 act = new Action("RETURN", _("Confirm"));
58 act->setKeyEvent(KeyState(KEYCODE_RETURN, ASCII_RETURN));
59 act->addDefaultInputMapping("RETURN"); // original keyboard
60 //TODO: extra joy control, e.g. "JOY_R+JOY_X"
61 engineKeyMap->addAction(act);
62
63 act = new Action("ESCAPE", _("Escape"));
64 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
65 act->addDefaultInputMapping("ESCAPE"); // original keyboard
66 act->addDefaultInputMapping("JOY_X"); // extra joy
67 engineKeyMap->addAction(act);
68
69 act = new Action("PAUSE", _("Pause game anytime"));
70 act->setKeyEvent(KeyState(KEYCODE_p, 0, KBD_CTRL));
71 act->addDefaultInputMapping("C+p"); // original keyboard
72 engineKeyMap->addAction(act);
73
74 act = new Action("HIGHLIGHT", _("Highlight active items"));
75 act->setKeyEvent(KeyState(KEYCODE_TAB, 0, KBD_CTRL));
76 act->addDefaultInputMapping("C+TAB"); // original keyboard
77 engineKeyMap->addAction(act);
78
79 Common::KeymapArray result = Keymap::arrayOf(engineKeyMap);
80 if (gameId == "8squares" ||
81 gameId == "actualdest" ||
82 gameId == "alone" ||
83 gameId == "agustin" ||
84 gameId == "artofmurder1" ||
85 gameId == "barbapoca1" ||
86 gameId == "barrowhilldp" ||
87 gameId == "bickadoodle" ||
88 gameId == "bookmania" ||
89 gameId == "bthreshold" ||
90 gameId == "carolreed6" ||
91 gameId == "carolreed7" ||
92 gameId == "carolreed8" ||
93 gameId == "chaos" ||
94 gameId == "colapso1" ||
95 gameId == "colorsoncanvas" ||
96 gameId == "conspiracao" ||
97 gameId == "corrosion" ||
98 gameId == "darkfallls" ||
99 gameId == "deadcity" ||
100 gameId == "drbohus" ||
101 gameId == "dreaming" ||
102 gameId == "dreamscape" ||
103 gameId == "driller" ||
104 gameId == "everydaygray" ||
105 gameId == "findinghope" ||
106 gameId == "four" ||
107 gameId == "framed" ||
108 gameId == "fred" ||
109 gameId == "guttenburg" ||
110 gameId == "hamlet" ||
111 gameId == "hor" ||
112 gameId == "idiotstale" ||
113 gameId == "imustkill" ||
114 gameId == "juliauntold" ||
115 gameId == "keshaskazok" ||
116 gameId == "klaymen1" ||
117 gameId == "leyendabiblio" ||
118 gameId == "lifein3minutes" ||
119 gameId == "lonelyrobot" ||
120 gameId == "machumayu" ||
121 gameId == "mirage" ||
122 gameId == "miskatonic1" ||
123 gameId == "mukhtar" ||
124 gameId == "mystictriddle" ||
125 gameId == "nighttrain" ||
126 gameId == "nightinthefog" ||
127 gameId == "nosebound1" ||
128 gameId == "octave" ||
129 gameId == "operacionbomba" ||
130 gameId == "pangea" ||
131 gameId == "preciouspills" ||
132 gameId == "projectdoom" ||
133 gameId == "roadsantiago" ||
134 gameId == "royalmahjong" ||
135 gameId == "rosemary" ||
136 gameId == "satanandsons" ||
137 gameId == "shadowofnebula" ||
138 gameId == "shelter" ||
139 gameId == "sofiasdebt" ||
140 gameId == "spaceinvaders" ||
141 gameId == "spacemadness" ||
142 gameId == "strangechange" ||
143 gameId == "susanrose1" ||
144 gameId == "susanrose2" ||
145 gameId == "tanya1" ||
146 gameId == "tanya2" ||
147 gameId == "theancientmark1" ||
148 gameId == "thebox" ||
149 gameId == "thekite" ||
150 gameId == "tradestory" ||
151 gameId == "war" ||
152 gameId == "wmedemo"
153 ) {
154 /* no game-specific keymap */
155 } else if (gameId == "dfafadventure" ||
156 gameId == "dreamcat" ||
157 gameId == "openquest"
158 ) {
159 act = new Action("LOOK", _("Look at"));
160 act->setKeyEvent(KeyState(KEYCODE_l, 'l'));
161 act->addDefaultInputMapping("l"); // original keyboard
162 act->addDefaultInputMapping("JOY_UP"); // extra joy
163 gameKeyMap->addAction(act);
164
165 act = new Action("TALK", _("Talk to"));
166 act->setKeyEvent(KeyState(KEYCODE_t, 't'));
167 act->addDefaultInputMapping("t"); // original keyboard
168 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
169 gameKeyMap->addAction(act);
170
171 act = new Action("PICK", _("Pick up"));
172 act->setKeyEvent(KeyState(KEYCODE_p, 'p'));
173 act->addDefaultInputMapping("p"); // original keyboard
174 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
175 gameKeyMap->addAction(act);
176
177 act = new Action("USE", _("Use"));
178 act->setKeyEvent(KeyState(KEYCODE_u, 'u'));
179 act->addDefaultInputMapping("u"); // original keyboard
180 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
181 gameKeyMap->addAction(act);
182 } else if (gameId == "basisoctavus" ||
183 gameId == "lovmamuta" ||
184 gameId == "wmedemo3d"
185 ) {
186 act = new Action(kStandardActionMoveUp, _("Move forward"));
187 act->setKeyEvent(KEYCODE_UP);
188 act->addDefaultInputMapping("UP"); // original keyboard
189 act->addDefaultInputMapping("JOY_UP"); // extra joy
190 gameKeyMap->addAction(act);
191
192 act = new Action(kStandardActionMoveDown, _("Move backwards"));
193 act->setKeyEvent(KEYCODE_DOWN);
194 act->addDefaultInputMapping("DOWN"); // original keyboard
195 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
196 gameKeyMap->addAction(act);
197
198 act = new Action(kStandardActionMoveLeft, _("Turn left"));
199 act->setKeyEvent(KEYCODE_LEFT);
200 act->addDefaultInputMapping("LEFT"); // original keyboard
201 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
202 gameKeyMap->addAction(act);
203
204 act = new Action(kStandardActionMoveRight, _("Turn right"));
205 act->setKeyEvent(KEYCODE_RIGHT);
206 act->addDefaultInputMapping("RIGHT"); // original keyboard
207 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
208 gameKeyMap->addAction(act);
209
210 // I18N: Debug feature to draw lines of scene geometry: walls, walking areas, etc
211 act = new Action("DBGSCN", _("Show scene geometry"));
212 act->setKeyEvent(KEYCODE_F1);
213 act->addDefaultInputMapping("F1"); // original keyboard
214 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
215 act->addDefaultInputMapping("JOY_Y"); // extra joy
216 gameKeyMap->addAction(act);
217 } else if (gameId == "5ld" ||
218 gameId == "projectjoe"
219 ) {
220 act = new Action("PAGEUP", _("Previous page"));
221 act->setKeyEvent(KEYCODE_PAGEUP);
222 act->addDefaultInputMapping("PAGEUP"); // original keyboard
223 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
224 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
225 gameKeyMap->addAction(act);
226
227 act = new Action("PAGEDN", _("Next page"));
228 act->setKeyEvent(KEYCODE_PAGEDOWN);
229 act->addDefaultInputMapping("PAGEDOWN"); // original keyboard
230 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
231 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
232 gameKeyMap->addAction(act);
233 } else if (gameId == "5ma" ||
234 gameId == "dirtysplit"
235 ) {
236 act = new Action("PAGEUP", _("Previous page"));
237 act->setKeyEvent(KEYCODE_PAGEUP);
238 act->addDefaultInputMapping("PAGEUP"); // original keyboard
239 act->addDefaultInputMapping("LEFT"); // original keyboard for 5ma & dirtysplit
240 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
241 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
242 gameKeyMap->addAction(act);
243
244 act = new Action("PAGEDN", _("Next page"));
245 act->setKeyEvent(KEYCODE_PAGEDOWN);
246 act->addDefaultInputMapping("PAGEDOWN"); // original keyboard
247 act->addDefaultInputMapping("RIGHT"); // original keyboard for 5ma & dirtysplit
248 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
249 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
250 gameKeyMap->addAction(act);
251 } else if (gameId == "chivalry" ||
252 gameId == "paintaria" ||
253 gameId == "pigeons" ||
254 gameId == "rhiannon" ||
255 gameId == "shinestar"
256 ) {
257 act = new Action(kStandardActionSkip, _("Skip"));
258 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
259 act->addDefaultInputMapping("SPACE"); // original keyboard
260 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
261 act->addDefaultInputMapping("JOY_Y"); // extra joy
262 gameKeyMap->addAction(act);
263 } else if (gameId == "drdoylemotch" ||
264 gameId == "carolreed9" ||
265 gameId == "carolreed10" ||
266 gameId == "carolreed11" ||
267 gameId == "carolreed12" ||
268 gameId == "carolreed13" ||
269 gameId == "carolreed14" ||
270 gameId == "carolreed15" ||
271 gameId == "carolreed16" ||
272 gameId == "kulivocko" ||
273 gameId == "sunrise" ||
274 gameId == "rebeccacarlson1"
275 ) {
276 act = new Action("HINT", _("Show hints"));
277 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
278 act->addDefaultInputMapping("SPACE"); // original keyboard
279 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
280 act->addDefaultInputMapping("JOY_Y"); // extra joy
281 gameKeyMap->addAction(act);
282 } else if (gameId == "goldencalf" ||
283 gameId == "msos" ||
284 gameId == "one"
285 ) {
286 act = new Action("INV", _("Show inventory"));
287 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
288 act->addDefaultInputMapping("SPACE"); // original keyboard
289 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
290 act->addDefaultInputMapping("JOY_Y"); // extra joy
291 gameKeyMap->addAction(act);
292 } else if (gameId == "bookofgron") {
293 act = new Action(kStandardActionMiddleClick, _("Middle click"));
294 act->setMiddleClickEvent();
295 act->addDefaultInputMapping("MOUSE_MIDDLE"); // original mouse
296 act->addDefaultInputMapping("JOY_Y"); // extra joy
297 gameKeyMap->addAction(act);
298 } else if (gameId == "qajarycat") {
299 act = new Action("HINT", _("Show hints"));
300 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
301 act->addDefaultInputMapping("SPACE"); // original keyboard
302 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
303 act->addDefaultInputMapping("JOY_Y"); // extra joy
304 gameKeyMap->addAction(act);
305
306 act = new Action("GUIA", _("GUI variant A"));
307 act->setKeyEvent(KEYCODE_F10);
308 act->addDefaultInputMapping("F10"); // original keyboard
309 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
310 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
311 gameKeyMap->addAction(act);
312
313 act = new Action("GUIB", _("GUI variant B"));
314 act->setKeyEvent(KEYCODE_F11);
315 act->addDefaultInputMapping("F11"); // original keyboard
316 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
317 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
318 gameKeyMap->addAction(act);
319
320 act = new Action("PHONEX", _("Phone cancel button"));
321 act->setKeyEvent(KeyState(KEYCODE_BACKSPACE, ASCII_BACKSPACE));
322 act->addDefaultInputMapping("BACKSPACE"); // original keyboard
323 gameKeyMap->addAction(act);
324
325 act = new Action("PHONEU", _("Phone up button"));
326 act->setKeyEvent(KEYCODE_UP);
327 act->addDefaultInputMapping("UP"); // original keyboard
328 act->addDefaultInputMapping("JOY_UP"); // extra joy
329 gameKeyMap->addAction(act);
330
331 act = new Action("PHONED", _("Phone down button"));
332 act->setKeyEvent(KEYCODE_DOWN);
333 act->addDefaultInputMapping("DOWN"); // original keyboard
334 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
335 gameKeyMap->addAction(act);
336
337 act = new Action(kStandardActionMiddleClick, _("Middle click"));
338 act->setMiddleClickEvent();
339 act->addDefaultInputMapping("MOUSE_MIDDLE"); // original mouse
340 gameKeyMap->addAction(act);
341
342 act = new Action(kStandardActionEE, _("???"));
343 act->setKeyEvent(KEYCODE_HOME);
344 act->addDefaultInputMapping("HOME"); // original keyboard
345 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
346 gameKeyMap->addAction(act);
347 } else if (gameId == "forgottensound1" ||
348 gameId == "forgottensound2"
349 ) {
350 act = new Action("HINT", _("Show hints"));
351 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
352 act->addDefaultInputMapping("SPACE"); // original keyboard
353 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
354 act->addDefaultInputMapping("JOY_Y"); // extra joy
355 gameKeyMap->addAction(act);
356
357 act = new Action(kStandardActionMoveLeft, _("Left"));
358 act->setKeyEvent(KEYCODE_LEFT);
359 act->addDefaultInputMapping("LEFT"); // original keyboard
360 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
361 gameKeyMap->addAction(act);
362
363 act = new Action(kStandardActionMoveRight, _("Right"));
364 act->setKeyEvent(KEYCODE_RIGHT);
365 act->addDefaultInputMapping("RIGHT"); // original keyboard
366 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
367 gameKeyMap->addAction(act);
368
369 act = new Action("GUIA", _("GUI variant A"));
370 act->setKeyEvent(KEYCODE_F10);
371 act->addDefaultInputMapping("F10"); // original keyboard
372 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
373 act->addDefaultInputMapping("JOY_UP"); // extra joy
374 gameKeyMap->addAction(act);
375
376 act = new Action("GUIB", _("GUI variant B"));
377 act->setKeyEvent(KEYCODE_F11);
378 act->addDefaultInputMapping("F11"); // original keyboard
379 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
380 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
381 gameKeyMap->addAction(act);
382
383 act = new Action(kStandardActionEE, _("???"));
384 act->setKeyEvent(KEYCODE_HOME);
385 act->addDefaultInputMapping("HOME"); // original keyboard
386 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
387 gameKeyMap->addAction(act);
388 } else if (gameId == "tehran1933") {
389 act = new Action("HINT", _("Show hints"));
390 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
391 act->addDefaultInputMapping("SPACE"); // original keyboard
392 act->addDefaultInputMapping("JOY_Y"); // extra joy
393 gameKeyMap->addAction(act);
394
395 // I18N: Some items are scripted to have alternative "Use" action, when MiddleClick is used
396 // It may result in actor saying different text or item being decomposed to it's parts
397 act = new Action("ALTUSE", _("Alternative action"));
398 act->setMiddleClickEvent();
399 act->addDefaultInputMapping("MOUSE_MIDDLE"); // original mouse
400 act->addDefaultInputMapping("BACKSPACE"); // extra keyboard
401 act->addDefaultInputMapping("JOY_Y"); // extra joy
402 gameKeyMap->addAction(act);
403
404 act = new Action("GUIA", _("GUI variant A"));
405 act->setKeyEvent(KEYCODE_F10);
406 act->addDefaultInputMapping("F10"); // original keyboard
407 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
408 act->addDefaultInputMapping("JOY_UP"); // extra joy
409 gameKeyMap->addAction(act);
410
411 act = new Action("GUIB", _("GUI variant B"));
412 act->setKeyEvent(KEYCODE_F11);
413 act->addDefaultInputMapping("F11"); // original keyboard
414 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
415 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
416 gameKeyMap->addAction(act);
417
418 act = new Action(kStandardActionEE, _("???"));
419 act->setKeyEvent(KEYCODE_HOME);
420 act->addDefaultInputMapping("HOME"); // original keyboard
421 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
422 gameKeyMap->addAction(act);
423 } else if (gameId == "darksummer" ||
424 gameId == "tehran2016"
425 ) {
426 act = new Action("HINT", _("Show hints"));
427 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
428 act->addDefaultInputMapping("SPACE"); // original keyboard
429 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
430 act->addDefaultInputMapping("JOY_Y"); // extra joy
431 gameKeyMap->addAction(act);
432
433 act = new Action("INV", _("Show inventory"));
434 act->setKeyEvent(KeyState(KEYCODE_i, 'i'));
435 act->addDefaultInputMapping("i"); // original keyboard
436 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
437 gameKeyMap->addAction(act);
438
439 act = new Action("GUIA", _("GUI variant A"));
440 act->setKeyEvent(KEYCODE_F10);
441 act->addDefaultInputMapping("F10"); // original keyboard
442 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
443 gameKeyMap->addAction(act);
444
445 act = new Action("GUIB", _("GUI variant B"));
446 act->setKeyEvent(KEYCODE_F11);
447 act->addDefaultInputMapping("F11"); // original keyboard
448 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
449 gameKeyMap->addAction(act);
450
451 act = new Action("PHONEX", _("Phone cancel button"));
452 act->setKeyEvent(KeyState(KEYCODE_BACKSPACE, ASCII_BACKSPACE));
453 act->addDefaultInputMapping("BACKSPACE"); // original keyboard
454 gameKeyMap->addAction(act);
455
456 act = new Action("PHONEU", _("Phone up button"));
457 act->setKeyEvent(KEYCODE_UP);
458 act->addDefaultInputMapping("UP"); // original keyboard
459 act->addDefaultInputMapping("JOY_UP"); // extra joy
460 gameKeyMap->addAction(act);
461
462 act = new Action("PHONED", _("Phone down button"));
463 act->setKeyEvent(KEYCODE_DOWN);
464 act->addDefaultInputMapping("DOWN"); // original keyboard
465 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
466 gameKeyMap->addAction(act);
467
468 act = new Action("PHONE0", _("Phone 0 button"));
469 act->setKeyEvent(KeyState(KEYCODE_0, '0'));
470 act->addDefaultInputMapping("0"); // original keyboard
471 gameKeyMap->addAction(act);
472
473 act = new Action("PHONE1", _("Phone 1 button"));
474 act->setKeyEvent(KeyState(KEYCODE_1, '1'));
475 act->addDefaultInputMapping("1"); // original keyboard
476 gameKeyMap->addAction(act);
477
478 act = new Action("PHONE2", _("Phone 2 button"));
479 act->setKeyEvent(KeyState(KEYCODE_2, '2'));
480 act->addDefaultInputMapping("2"); // original keyboard
481 gameKeyMap->addAction(act);
482
483 act = new Action("PHONE3", _("Phone 3 button"));
484 act->setKeyEvent(KeyState(KEYCODE_3, '3'));
485 act->addDefaultInputMapping("3"); // original keyboard
486 gameKeyMap->addAction(act);
487
488 act = new Action("PHONE4", _("Phone 4 button"));
489 act->setKeyEvent(KeyState(KEYCODE_4, '4'));
490 act->addDefaultInputMapping("4"); // original keyboard
491 gameKeyMap->addAction(act);
492
493 act = new Action("PHONE5", _("Phone 5 button"));
494 act->setKeyEvent(KeyState(KEYCODE_5, '5'));
495 act->addDefaultInputMapping("5"); // original keyboard
496 gameKeyMap->addAction(act);
497
498 act = new Action("PHONE6", _("Phone 6 button"));
499 act->setKeyEvent(KeyState(KEYCODE_6, '6'));
500 act->addDefaultInputMapping("6"); // original keyboard
501 gameKeyMap->addAction(act);
502
503 act = new Action("PHONE7", _("Phone 7 button"));
504 act->setKeyEvent(KeyState(KEYCODE_7, '7'));
505 act->addDefaultInputMapping("7"); // original keyboard
506 gameKeyMap->addAction(act);
507
508 act = new Action("PHONE8", _("Phone 8 button"));
509 act->setKeyEvent(KeyState(KEYCODE_8, '8'));
510 act->addDefaultInputMapping("8"); // original keyboard
511 gameKeyMap->addAction(act);
512
513 act = new Action("PHONE9", _("Phone 9 button"));
514 act->setKeyEvent(KeyState(KEYCODE_9, '9'));
515 act->addDefaultInputMapping("9"); // original keyboard
516 gameKeyMap->addAction(act);
517
518 act = new Action("PHONEA", _("Phone * button"));
519 act->setKeyEvent(KeyState(KEYCODE_ASTERISK, '*'));
520 act->addDefaultInputMapping("ASTERISK"); // original keyboard
521 gameKeyMap->addAction(act);
522
523 act = new Action("PHONEH", _("Phone # button"));
524 act->setKeyEvent(KeyState(KEYCODE_HASH, '#'));
525 act->addDefaultInputMapping("HASH"); // original keyboard
526 gameKeyMap->addAction(act);
527
528 act = new Action(kStandardActionEE, _("???"));
529 act->setKeyEvent(KEYCODE_HOME);
530 act->addDefaultInputMapping("HOME"); // original keyboard
531 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
532 gameKeyMap->addAction(act);
533 } else if (gameId == "alimardan1" ||
534 gameId == "devilincapital"
535 ) {
536 act = new Action("HINT", _("Show hints"));
537 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
538 act->addDefaultInputMapping("SPACE"); // original keyboard
539 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
540 act->addDefaultInputMapping("JOY_Y"); // extra joy
541 gameKeyMap->addAction(act);
542
543 act = new Action("GUIA", _("GUI variant A"));
544 act->setKeyEvent(KEYCODE_F10);
545 act->addDefaultInputMapping("F10"); // original keyboard
546 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
547 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
548 gameKeyMap->addAction(act);
549
550 act = new Action("GUIB", _("GUI variant B"));
551 act->setKeyEvent(KEYCODE_F11);
552 act->addDefaultInputMapping("F11"); // original keyboard
553 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
554 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
555 gameKeyMap->addAction(act);
556
557 act = new Action(kStandardActionEE, _("???"));
558 act->setKeyEvent(KEYCODE_HOME);
559 act->addDefaultInputMapping("HOME"); // original keyboard
560 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
561 gameKeyMap->addAction(act);
562 } else if (gameId == "alimardan2") {
563 act = new Action("HINT", _("Show hints"));
564 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
565 act->addDefaultInputMapping("SPACE"); // original keyboard
566 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
567 act->addDefaultInputMapping("JOY_Y"); // extra joy
568 gameKeyMap->addAction(act);
569
570 act = new Action("GUIA", _("GUI variant A"));
571 act->setKeyEvent(KEYCODE_F10);
572 act->addDefaultInputMapping("F10"); // original keyboard
573 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
574 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
575 gameKeyMap->addAction(act);
576
577 act = new Action("GUIB", _("GUI variant B"));
578 act->setKeyEvent(KEYCODE_F11);
579 act->addDefaultInputMapping("F11"); // original keyboard
580 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
581 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
582 gameKeyMap->addAction(act);
583
584 act = new Action("PHONEX", _("Phone cancel button"));
585 act->setKeyEvent(KeyState(KEYCODE_BACKSPACE, ASCII_BACKSPACE));
586 act->addDefaultInputMapping("BACKSPACE"); // original keyboard
587 gameKeyMap->addAction(act);
588
589 act = new Action("PHONEU", _("Phone up button"));
590 act->setKeyEvent(KEYCODE_UP);
591 act->addDefaultInputMapping("UP"); // original keyboard
592 act->addDefaultInputMapping("JOY_UP"); // extra joy
593 gameKeyMap->addAction(act);
594
595 act = new Action("PHONED", _("Phone down button"));
596 act->setKeyEvent(KEYCODE_DOWN);
597 act->addDefaultInputMapping("DOWN"); // original keyboard
598 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
599 gameKeyMap->addAction(act);
600
601 act = new Action("PHONE0", _("Phone 0 button"));
602 act->setKeyEvent(KeyState(KEYCODE_0, '0'));
603 act->addDefaultInputMapping("0"); // original keyboard
604 gameKeyMap->addAction(act);
605
606 act = new Action("PHONE1", _("Phone 1 button"));
607 act->setKeyEvent(KeyState(KEYCODE_1, '1'));
608 act->addDefaultInputMapping("1"); // original keyboard
609 gameKeyMap->addAction(act);
610
611 act = new Action("PHONE2", _("Phone 2 button"));
612 act->setKeyEvent(KeyState(KEYCODE_2, '2'));
613 act->addDefaultInputMapping("2"); // original keyboard
614 gameKeyMap->addAction(act);
615
616 act = new Action("PHONE3", _("Phone 3 button"));
617 act->setKeyEvent(KeyState(KEYCODE_3, '3'));
618 act->addDefaultInputMapping("3"); // original keyboard
619 gameKeyMap->addAction(act);
620
621 act = new Action("PHONE4", _("Phone 4 button"));
622 act->setKeyEvent(KeyState(KEYCODE_4, '4'));
623 act->addDefaultInputMapping("4"); // original keyboard
624 gameKeyMap->addAction(act);
625
626 act = new Action("PHONE5", _("Phone 5 button"));
627 act->setKeyEvent(KeyState(KEYCODE_5, '5'));
628 act->addDefaultInputMapping("5"); // original keyboard
629 gameKeyMap->addAction(act);
630
631 act = new Action("PHONE6", _("Phone 6 button"));
632 act->setKeyEvent(KeyState(KEYCODE_6, '6'));
633 act->addDefaultInputMapping("6"); // original keyboard
634 gameKeyMap->addAction(act);
635
636 act = new Action("PHONE7", _("Phone 7 button"));
637 act->setKeyEvent(KeyState(KEYCODE_7, '7'));
638 act->addDefaultInputMapping("7"); // original keyboard
639 gameKeyMap->addAction(act);
640
641 act = new Action("PHONE8", _("Phone 8 button"));
642 act->setKeyEvent(KeyState(KEYCODE_8, '8'));
643 act->addDefaultInputMapping("8"); // original keyboard
644 gameKeyMap->addAction(act);
645
646 act = new Action("PHONE9", _("Phone 9 button"));
647 act->setKeyEvent(KeyState(KEYCODE_9, '9'));
648 act->addDefaultInputMapping("9"); // original keyboard
649 gameKeyMap->addAction(act);
650
651 act = new Action("PHONEA", _("Phone * button"));
652 act->setKeyEvent(KeyState(KEYCODE_ASTERISK, '*'));
653 act->addDefaultInputMapping("ASTERISK"); // original keyboard
654 gameKeyMap->addAction(act);
655
656 act = new Action("PHONEH", _("Phone # button"));
657 act->setKeyEvent(KeyState(KEYCODE_HASH, '#'));
658 act->addDefaultInputMapping("HASH"); // original keyboard
659 gameKeyMap->addAction(act);
660
661 act = new Action(kStandardActionEE, _("???"));
662 act->setKeyEvent(KEYCODE_HOME);
663 act->addDefaultInputMapping("HOME"); // original keyboard
664 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
665 gameKeyMap->addAction(act);
666 } else if (gameId == "alavi") {
667 act = new Action("PAGEUP", _("Previous page"));
668 act->setKeyEvent(KEYCODE_PAGEUP);
669 act->addDefaultInputMapping("PAGEUP"); // original keyboard
670 act->addDefaultInputMapping("LEFT"); // original keyboard for 5ma & dirtysplit
671 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
672 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
673 gameKeyMap->addAction(act);
674
675 act = new Action("PAGEDN", _("Next page"));
676 act->setKeyEvent(KEYCODE_PAGEDOWN);
677 act->addDefaultInputMapping("PAGEDOWN"); // original keyboard
678 act->addDefaultInputMapping("RIGHT"); // original keyboard for 5ma & dirtysplit
679 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
680 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
681 gameKeyMap->addAction(act);
682
683 act = new Action("SCRS", _("Save screenshot"));
684 act->setKeyEvent(KEYCODE_F6);
685 act->addDefaultInputMapping("F6"); // original keyboard
686 gameKeyMap->addAction(act);
687 } else if (gameId == "alphapolaris") {
688 act = new Action("HINT", _("Show hints"));
689 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
690 act->addDefaultInputMapping("SPACE"); // original keyboard
691 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
692 act->addDefaultInputMapping("JOY_Y"); // extra joy
693 gameKeyMap->addAction(act);
694
695 act = new Action("INV", _("Show inventory"));
696 act->setKeyEvent(KeyState(KEYCODE_i, 'i'));
697 act->addDefaultInputMapping("i"); // original keyboard
698 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
699 gameKeyMap->addAction(act);
700
701 act = new Action("HELP", _("Show help"));
702 act->setKeyEvent(KEYCODE_F1);
703 act->addDefaultInputMapping("F1"); // original keyboard
704 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
705 gameKeyMap->addAction(act);
706
707 act = new Action("SCRLUP", _("Scroll up"));
708 act->setMouseWheelUpEvent();
709 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
710 act->addDefaultInputMapping("PAGEUP"); // extra keyboard
711 act->addDefaultInputMapping("JOY_UP"); // extra joy
712 gameKeyMap->addAction(act);
713
714 act = new Action("SCRLDN", _("Scroll down"));
715 act->setMouseWheelDownEvent();
716 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
717 act->addDefaultInputMapping("PAGEDOWN"); // extra keyboard
718 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
719 gameKeyMap->addAction(act);
720
721 // I18N: Debug feature to draw lines of scene geometry: walls, walking areas, etc
722 act = new Action("DBGSCN", _("Show scene geometry"));
723 act->setKeyEvent(KeyState(KEYCODE_F2, 0, KBD_CTRL));
724 act->addDefaultInputMapping("C+F2"); // original keyboard
725 gameKeyMap->addAction(act);
726
727 act = new Action("SHADOW", _("Change shadow type"));
728 act->setKeyEvent(KeyState(KEYCODE_F3, 0, KBD_CTRL));
729 act->addDefaultInputMapping("C+F3"); // original keyboard
730 gameKeyMap->addAction(act);
731
732 act = new Action("SCRS", _("Save screenshot"));
733 act->setKeyEvent(KeyState(KEYCODE_F5, 0, KBD_CTRL));
734 // act->addDefaultInputMapping("C+F5"); // original keyboard (disabled due to conflict with GMM)
735 gameKeyMap->addAction(act);
736
737 act = new Action("VOLMAX", _("Volume max"));
738 act->setKeyEvent(KeyState(KEYCODE_F6, 0, KBD_CTRL));
739 act->addDefaultInputMapping("C+F6"); // original keyboard
740 gameKeyMap->addAction(act);
741
742 // I18N: Displays a debug interface with a CLI for various features
743 act = new Action("DBGCLI", _("Show debug parser"));
744 act->setKeyEvent(KeyState(KEYCODE_F7, 0, KBD_CTRL));
745 act->addDefaultInputMapping("C+F7"); // original keyboard
746 act->addDefaultInputMapping("C+F10"); // original keyboard
747 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
748 gameKeyMap->addAction(act);
749
750 // I18N: Displays a debug text message
751 act = new Action("DBGTXT", _("Debug print"));
752 act->setKeyEvent(KeyState(KEYCODE_F8, 0, KBD_CTRL));
753 act->addDefaultInputMapping("C+F8"); // original keyboard
754 gameKeyMap->addAction(act);
755
756 // I18N: Exits the game
757 act = new Action("EXIT", _("Exit"));
758 act->setKeyEvent(KeyState(KEYCODE_F9, 0, KBD_CTRL));
759 act->addDefaultInputMapping("C+F9"); // original keyboard
760 gameKeyMap->addAction(act);
761
762 // I18N: Displays a debug interface that changes light settings
763 act = new Action("LIGHT", _("Light helper window"));
764 act->setKeyEvent(KeyState(KEYCODE_F11, 0, KBD_CTRL));
765 act->addDefaultInputMapping("C+F11"); // original keyboard
766 gameKeyMap->addAction(act);
767
768 act = new Action(kStandardActionMoveUp, _("Move forward"));
769 act->setKeyEvent(KEYCODE_UP);
770 act->addDefaultInputMapping("UP"); // original keyboard
771 gameKeyMap->addAction(act);
772
773 act = new Action(kStandardActionMoveDown, _("Move backwards"));
774 act->setKeyEvent(KEYCODE_DOWN);
775 act->addDefaultInputMapping("DOWN"); // original keyboard
776 gameKeyMap->addAction(act);
777
778 act = new Action(kStandardActionMoveLeft, _("Turn left"));
779 act->setKeyEvent(KEYCODE_LEFT);
780 act->addDefaultInputMapping("LEFT"); // original keyboard
781 gameKeyMap->addAction(act);
782
783 act = new Action(kStandardActionMoveRight, _("Turn right"));
784 act->setKeyEvent(KEYCODE_RIGHT);
785 act->addDefaultInputMapping("RIGHT"); // original keyboard
786 gameKeyMap->addAction(act);
787
788 act = new Action("FASTU", _("Run forward"));
789 act->setKeyEvent(KeyState(KEYCODE_UP, 0, KBD_SHIFT));
790 act->addDefaultInputMapping("S+UP"); // original keyboard
791 gameKeyMap->addAction(act);
792
793 act = new Action("FASTD", _("Run backward"));
794 act->setKeyEvent(KeyState(KEYCODE_DOWN, 0, KBD_SHIFT));
795 act->addDefaultInputMapping("S+DOWN"); // original keyboard
796 gameKeyMap->addAction(act);
797
798 act = new Action("FASTL", _("Turn left fast"));
799 act->setKeyEvent(KeyState(KEYCODE_LEFT, 0, KBD_SHIFT));
800 act->addDefaultInputMapping("S+LEFT"); // original keyboard
801 gameKeyMap->addAction(act);
802
803 act = new Action("FASTR", _("Turn right fast"));
804 act->setKeyEvent(KeyState(KEYCODE_RIGHT, 0, KBD_SHIFT));
805 act->addDefaultInputMapping("S+RIGHT"); // original keyboard
806 gameKeyMap->addAction(act);
807 } else if (gameId == "apeiron") {
808 // I18N: Displays a blueprint with robot parts
809 act = new Action("BLUE", _("Show blueprint"));
810 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
811 act->addDefaultInputMapping("SPACE"); // original keyboard
812 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
813 act->addDefaultInputMapping("JOY_Y"); // extra joy
814 gameKeyMap->addAction(act);
815
816 act = new Action(kStandardActionEE, _("???"));
817 act->setKeyEvent(KeyState(KEYCODE_n, 'n'));
818 act->addDefaultInputMapping("n"); // original keyboard
819 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
820 gameKeyMap->addAction(act);
821 } else if (gameId == "awakening") {
822 act = new Action("HINT", _("Show hints"));
823 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
824 act->addDefaultInputMapping("SPACE"); // original keyboard
825 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
826 act->addDefaultInputMapping("JOY_Y"); // extra joy
827 gameKeyMap->addAction(act);
828
829 act = new Action("ACTNXT", _("Next action"));
830 act->setMouseWheelDownEvent();
831 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
832 act->addDefaultInputMapping("PAGEDOWN"); // extra keyboard
833 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
834 gameKeyMap->addAction(act);
835
836 act = new Action("ACTPRV", _("Previous action"));
837 act->setMouseWheelUpEvent();
838 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
839 act->addDefaultInputMapping("PAGEUP"); // extra keyboard
840 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
841 gameKeyMap->addAction(act);
842
843 act = new Action(kStandardActionEE, _("???"));
844 act->setKeyEvent(KEYCODE_END);
845 act->addDefaultInputMapping("END"); // original keyboard
846 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
847 gameKeyMap->addAction(act);
848 } else if (gameId == "carolreed4") {
849 act = new Action("HINT", _("Show hints"));
850 act->setKeyEvent(KeyState(KEYCODE_TAB, ASCII_TAB));
851 act->addDefaultInputMapping("TAB"); // original keyboard
852 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
853 act->addDefaultInputMapping("JOY_Y"); // extra joy
854 gameKeyMap->addAction(act);
855
856 act = new Action("VOLMAX", _("Volume max"));
857 act->setMouseWheelUpEvent();
858 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
859 act->addDefaultInputMapping("PAGEUP"); // extra keyboard
860 //TODO: extra joy control, e.g. "JOY_R+JOY_UP"
861 gameKeyMap->addAction(act);
862
863 act = new Action("VOLOFF", _("Volume off"));
864 act->setMouseWheelDownEvent();
865 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
866 act->addDefaultInputMapping("PAGEDOWN"); // extra keyboard
867 //TODO: extra joy control, e.g. "JOY_R+JOY_DOWN"
868 gameKeyMap->addAction(act);
869 } else if (gameId == "carolreed5") {
870 act = new Action("HINT", _("Show hints"));
871 act->setKeyEvent(KeyState(KEYCODE_TAB, ASCII_TAB));
872 act->addDefaultInputMapping("TAB"); // original keyboard
873 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
874 act->addDefaultInputMapping("JOY_Y"); // extra joy
875 gameKeyMap->addAction(act);
876 } else if (gameId == "erinmyers") {
877 act = new Action("GUIB", _("Change font size"));
878 act->setKeyEvent(KEYCODE_END);
879 act->addDefaultInputMapping("END"); // original keyboard
880 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
881 gameKeyMap->addAction(act);
882 } else if (gameId == "escapemansion") {
883 act = new Action(kStandardActionEE, _("???"));
884 act->setKeyEvent(KEYCODE_F1);
885 act->addDefaultInputMapping("F1"); // original keyboard
886 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
887 gameKeyMap->addAction(act);
888
889 // I18N: Displays a debug text message
890 act = new Action("DBGTXT", _("Debug print"));
891 act->setKeyEvent(KEYCODE_F2);
892 act->addDefaultInputMapping("F2"); // original keyboard
893 gameKeyMap->addAction(act);
894 } else if (gameId == "facenoir") {
895 act = new Action("HINT", _("Show hints"));
896 act->setKeyEvent(KEYCODE_F1);
897 act->addDefaultInputMapping("F1"); // original keyboard
898 act->addDefaultInputMapping("JOY_Y"); // extra joy
899 gameKeyMap->addAction(act);
900
901 act = new Action("INV", _("Show inventory"));
902 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
903 act->addDefaultInputMapping("MOUSE_MIDDLE"); // original mouse
904 act->addDefaultInputMapping("SPACE"); // original keyboard
905 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
906 gameKeyMap->addAction(act);
907
908 act = new Action("SCRLUP", _("Scroll up"));
909 act->setMouseWheelUpEvent();
910 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
911 act->addDefaultInputMapping("UP"); // extra keyboard
912 act->addDefaultInputMapping("JOY_UP"); // extra joy
913 gameKeyMap->addAction(act);
914
915 act = new Action("SCRLDN", _("Scroll down"));
916 act->setMouseWheelDownEvent();
917 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
918 act->addDefaultInputMapping("DOWN"); // extra keyboard
919 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
920 gameKeyMap->addAction(act);
921 } else if (gameId == "foxtail") {
922 act = new Action("HINT", _("Show hints"));
923 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
924 act->addDefaultInputMapping("SPACE"); // original keyboard
925 act->addDefaultInputMapping("MOUSE_MIDDLE"); // original mouse
926 act->addDefaultInputMapping("JOY_Y"); // extra joy
927 gameKeyMap->addAction(act);
928
929 act = new Action("SCRLUP", _("Scroll up"));
930 act->setMouseWheelUpEvent();
931 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
932 act->addDefaultInputMapping("UP"); // original keyboard
933 act->addDefaultInputMapping("JOY_UP"); // extra joy
934 gameKeyMap->addAction(act);
935
936 act = new Action("SCRLDN", _("Scroll down"));
937 act->setMouseWheelDownEvent();
938 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
939 act->addDefaultInputMapping("DOWN"); // original keyboard
940 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
941 gameKeyMap->addAction(act);
942
943 act = new Action("PAGEUP", _("Previous page"));
944 act->setKeyEvent(KEYCODE_PAGEUP);
945 act->addDefaultInputMapping("LEFT"); // original keyboard
946 act->addDefaultInputMapping("PAGEUP"); // original keyboard
947 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
948 gameKeyMap->addAction(act);
949
950 act = new Action("PAGEDN", _("Next page"));
951 act->setKeyEvent(KEYCODE_PAGEDOWN);
952 act->addDefaultInputMapping("RIGHT"); // original keyboard
953 act->addDefaultInputMapping("PAGEDOWN"); // original keyboard
954 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
955 gameKeyMap->addAction(act);
956
957 act = new Action(kStandardActionSave, _("Save game"));
958 act->setKeyEvent(KEYCODE_F2);
959 act->addDefaultInputMapping("F2"); // original keyboard
960 gameKeyMap->addAction(act);
961
962 act = new Action(kStandardActionLoad, _("Load game"));
963 act->setKeyEvent(KEYCODE_F3);
964 act->addDefaultInputMapping("F3"); // original keyboard
965 gameKeyMap->addAction(act);
966
967 act = new Action("QSAVE", _("Quick save"));
968 act->setKeyEvent(KEYCODE_F5);
969 act->addDefaultInputMapping("F5"); // original keyboard
970 gameKeyMap->addAction(act);
971
972 act = new Action("SPD1", _("Walking speed: Low"));
973 act->setKeyEvent(KEYCODE_F6);
974 act->addDefaultInputMapping("F6"); // original keyboard
975 gameKeyMap->addAction(act);
976
977 act = new Action("SPD2", _("Walking speed: Medium"));
978 act->setKeyEvent(KEYCODE_F7);
979 act->addDefaultInputMapping("F7"); // original keyboard
980 gameKeyMap->addAction(act);
981
982 act = new Action("SPD3", _("Walking speed: High"));
983 act->setKeyEvent(KEYCODE_F8);
984 act->addDefaultInputMapping("F8"); // original keyboard
985 gameKeyMap->addAction(act);
986
987 act = new Action("QLOAD", _("Quick load"));
988 act->setKeyEvent(KEYCODE_F9);
989 act->addDefaultInputMapping("F9"); // original keyboard
990 gameKeyMap->addAction(act);
991
992 act = new Action("NOWAIT", _("Cancel waiting"));
993 act->setKeyEvent(KEYCODE_F10);
994 act->addDefaultInputMapping("F10"); // original keyboard
995 gameKeyMap->addAction(act);
996
997 act = new Action("CAPT", _("Toggle mouse capture"));
998 act->setKeyEvent(KEYCODE_F11);
999 act->addDefaultInputMapping("F11"); // original keyboard
1000 gameKeyMap->addAction(act);
1001
1002 act = new Action("HOME", _("First page"));
1003 act->setKeyEvent(KEYCODE_HOME);
1004 act->addDefaultInputMapping("HOME"); // original keyboard
1005 gameKeyMap->addAction(act);
1006
1007 act = new Action("END", _("Last page"));
1008 act->setKeyEvent(KEYCODE_END);
1009 act->addDefaultInputMapping("END"); // original keyboard
1010 gameKeyMap->addAction(act);
1011
1012 Common::String extra = ConfMan.get("extra", target);
1013 if (extra.hasPrefix("1.2.230.") || extra.hasPrefix("1.2.304.") || extra.hasPrefix("1.2.362.")) {
1014 // I18N: ultra_super_mega_fast_walk is the name of the variable used at game script for this speed
1015 act = new Action("SPDMAX", _("Walking speed: Ultra Super Mega Fast"));
1016 act->setKeyEvent(KeyState(KEYCODE_s, 's', KBD_CTRL|KBD_ALT|KBD_SHIFT));
1017 act->addDefaultInputMapping("C+A+S+s"); // original keyboard
1018 //TODO: extra joy control, e.g. "JOY_R+JOY_A"
1019 gameKeyMap->addAction(act);
1020 }
1021
1022 if (extra.hasPrefix("1.2.362.")) {
1023 act = new Action(kStandardActionEE, _("???"));
1024 act->setKeyEvent(KeyState(KEYCODE_z, 'z'));
1025 act->addDefaultInputMapping("z"); // original keyboard
1026 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
1027 gameKeyMap->addAction(act);
1028 }
1029
1030 if (extra.hasPrefix("1.2.896.")) {
1031 act = new Action("CREDIT", _("Show game credits"));
1032 act->setKeyEvent(KEYCODE_F1);
1033 act->addDefaultInputMapping("F1"); // original keyboard
1034 gameKeyMap->addAction(act);
1035
1036 act = new Action("MPLAY", _("Play selected music record"));
1037 act->setKeyEvent(KEYCODE_F4);
1038 act->addDefaultInputMapping("F4"); // original keyboard
1039 gameKeyMap->addAction(act);
1040
1041 act = new Action("MNEXT", _("Select next music record"));
1042 act->setKeyEvent(KeyState(KEYCODE_TAB, ASCII_TAB));
1043 act->addDefaultInputMapping("TAB"); // original keyboard
1044 gameKeyMap->addAction(act);
1045
1046 act = new Action("NOTE1", _("Play note 1: A"));
1047 act->setKeyEvent(KeyState(KEYCODE_d, 'd'));
1048 act->addDefaultInputMapping("d"); // original keyboard
1049 gameKeyMap->addAction(act);
1050
1051 act = new Action("NOTE2", _("Play note 2: F#"));
1052 act->setKeyEvent(KeyState(KEYCODE_f, 'f'));
1053 act->addDefaultInputMapping("f"); // original keyboard
1054 gameKeyMap->addAction(act);
1055
1056 act = new Action("NOTE3", _("Play note 3: D#"));
1057 act->setKeyEvent(KeyState(KEYCODE_g, 'g'));
1058 act->addDefaultInputMapping("g"); // original keyboard
1059 gameKeyMap->addAction(act);
1060
1061 act = new Action("NOTE4", _("Play note 4: C#"));
1062 act->setKeyEvent(KeyState(KEYCODE_h, 'h'));
1063 act->addDefaultInputMapping("h"); // original keyboard
1064 gameKeyMap->addAction(act);
1065
1066 act = new Action("NOTE5", _("Play note 5: E"));
1067 act->setKeyEvent(KeyState(KEYCODE_j, 'j'));
1068 act->addDefaultInputMapping("j"); // original keyboard
1069 gameKeyMap->addAction(act);
1070
1071 act = new Action("NOTE6", _("Play note 6: G#"));
1072 act->setKeyEvent(KeyState(KEYCODE_k, 'k'));
1073 act->addDefaultInputMapping("k"); // original keyboard
1074 gameKeyMap->addAction(act);
1075
1076 act = new Action("NOTE7", _("Play note 7: B"));
1077 act->setKeyEvent(KeyState(KEYCODE_l, 'l'));
1078 act->addDefaultInputMapping("l"); // original keyboard
1079 gameKeyMap->addAction(act);
1080 }
1081 } else if (gameId == "ghostsheet") {
1082 act = new Action("HINT", _("Show hints"));
1083 act->setKeyEvent(KeyState(KEYCODE_TAB, ASCII_TAB));
1084 act->addDefaultInputMapping("TAB"); // original keyboard
1085 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1086 act->addDefaultInputMapping("JOY_Y"); // extra joy
1087 gameKeyMap->addAction(act);
1088
1089 act = new Action("ABLT1", _("Ability: Telekinesis"));
1090 act->setKeyEvent(KEYCODE_F1);
1091 act->addDefaultInputMapping("F1"); // original keyboard
1092 gameKeyMap->addAction(act);
1093
1094 act = new Action("ABLT2", _("Ability: Push"));
1095 act->setKeyEvent(KEYCODE_F2);
1096 act->addDefaultInputMapping("F2"); // original keyboard
1097 gameKeyMap->addAction(act);
1098
1099 act = new Action("ABLT3", _("Ability: Lightning"));
1100 act->setKeyEvent(KEYCODE_F3);
1101 act->addDefaultInputMapping("F3"); // original keyboard
1102 gameKeyMap->addAction(act);
1103
1104 act = new Action("ABLT4", _("Ability: Light"));
1105 act->setKeyEvent(KEYCODE_F4);
1106 act->addDefaultInputMapping("F4"); // original keyboard
1107 gameKeyMap->addAction(act);
1108
1109 act = new Action("ABLT5", _("Ability: Wind"));
1110 act->setKeyEvent(KEYCODE_F5);
1111 act->addDefaultInputMapping("F5"); // original keyboard
1112 gameKeyMap->addAction(act);
1113
1114 act = new Action("ABLT6", _("Ability: Sound"));
1115 act->setKeyEvent(KEYCODE_F6);
1116 act->addDefaultInputMapping("F6"); // original keyboard
1117 gameKeyMap->addAction(act);
1118
1119 act = new Action("ABLT7", _("Ability: Esence"));
1120 act->setKeyEvent(KEYCODE_F7);
1121 act->addDefaultInputMapping("F7"); // original keyboard
1122 gameKeyMap->addAction(act);
1123
1124 act = new Action("ABLT8", _("Ability: Exorcist"));
1125 act->setKeyEvent(KEYCODE_F8);
1126 act->addDefaultInputMapping("F8"); // original keyboard
1127 gameKeyMap->addAction(act);
1128
1129 act = new Action(kStandardActionSkip, _("Skip"));
1130 act->setKeyEvent(KeyState(KEYCODE_BACKSPACE, ASCII_BACKSPACE));
1131 act->addDefaultInputMapping("BACKSPACE"); // original keyboard
1132 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
1133 gameKeyMap->addAction(act);
1134
1135 act = new Action("SCRS", _("Save screenshot"));
1136 act->setKeyEvent(KEYCODE_F10);
1137 act->addDefaultInputMapping("F10"); // original keyboard
1138 gameKeyMap->addAction(act);
1139 } else if (gameId == "helga") {
1140 act = new Action("PAGEUP", _("Previous page"));
1141 act->setKeyEvent(KEYCODE_PAGEUP);
1142 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1143 act->addDefaultInputMapping("PAGEUP"); // original keyboard
1144 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
1145 gameKeyMap->addAction(act);
1146
1147 act = new Action("PAGEDN", _("Next page"));
1148 act->setKeyEvent(KEYCODE_PAGEDOWN);
1149 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1150 act->addDefaultInputMapping("PAGEDOWN"); // original keyboard
1151 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
1152 gameKeyMap->addAction(act);
1153
1154 act = new Action("PHONEX", _("Phone cancel button"));
1155 act->setKeyEvent(KeyState(KEYCODE_BACKSPACE, ASCII_BACKSPACE));
1156 act->addDefaultInputMapping("BACKSPACE"); // original keyboard
1157 gameKeyMap->addAction(act);
1158
1159 act = new Action("PHONEU", _("Phone up button"));
1160 act->setKeyEvent(KEYCODE_UP);
1161 act->addDefaultInputMapping("UP"); // original keyboard
1162 act->addDefaultInputMapping("JOY_UP"); // extra joy
1163 gameKeyMap->addAction(act);
1164
1165 act = new Action("PHONED", _("Phone down button"));
1166 act->setKeyEvent(KEYCODE_DOWN);
1167 act->addDefaultInputMapping("DOWN"); // original keyboard
1168 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1169 gameKeyMap->addAction(act);
1170
1171 act = new Action("PHONE0", _("Phone 0 button"));
1172 act->setKeyEvent(KeyState(KEYCODE_0, '0'));
1173 act->addDefaultInputMapping("0"); // original keyboard
1174 gameKeyMap->addAction(act);
1175
1176 act = new Action("PHONE1", _("Phone 1 button"));
1177 act->setKeyEvent(KeyState(KEYCODE_1, '1'));
1178 act->addDefaultInputMapping("1"); // original keyboard
1179 gameKeyMap->addAction(act);
1180
1181 act = new Action("PHONE2", _("Phone 2 button"));
1182 act->setKeyEvent(KeyState(KEYCODE_2, '2'));
1183 act->addDefaultInputMapping("2"); // original keyboard
1184 gameKeyMap->addAction(act);
1185
1186 act = new Action("PHONE3", _("Phone 3 button"));
1187 act->setKeyEvent(KeyState(KEYCODE_3, '3'));
1188 act->addDefaultInputMapping("3"); // original keyboard
1189 gameKeyMap->addAction(act);
1190
1191 act = new Action("PHONE4", _("Phone 4 button"));
1192 act->setKeyEvent(KeyState(KEYCODE_4, '4'));
1193 act->addDefaultInputMapping("4"); // original keyboard
1194 gameKeyMap->addAction(act);
1195
1196 act = new Action("PHONE5", _("Phone 5 button"));
1197 act->setKeyEvent(KeyState(KEYCODE_5, '5'));
1198 act->addDefaultInputMapping("5"); // original keyboard
1199 gameKeyMap->addAction(act);
1200
1201 act = new Action("PHONE6", _("Phone 6 button"));
1202 act->setKeyEvent(KeyState(KEYCODE_6, '6'));
1203 act->addDefaultInputMapping("6"); // original keyboard
1204 gameKeyMap->addAction(act);
1205
1206 act = new Action("PHONE7", _("Phone 7 button"));
1207 act->setKeyEvent(KeyState(KEYCODE_7, '7'));
1208 act->addDefaultInputMapping("7"); // original keyboard
1209 gameKeyMap->addAction(act);
1210
1211 act = new Action("PHONE8", _("Phone 8 button"));
1212 act->setKeyEvent(KeyState(KEYCODE_8, '8'));
1213 act->addDefaultInputMapping("8"); // original keyboard
1214 gameKeyMap->addAction(act);
1215
1216 act = new Action("PHONE9", _("Phone 9 button"));
1217 act->setKeyEvent(KeyState(KEYCODE_9, '9'));
1218 act->addDefaultInputMapping("9"); // original keyboard
1219 gameKeyMap->addAction(act);
1220
1221 act = new Action("PHONEA", _("Phone * button"));
1222 act->setKeyEvent(KeyState(KEYCODE_ASTERISK, '*'));
1223 act->addDefaultInputMapping("ASTERISK"); // original keyboard
1224 gameKeyMap->addAction(act);
1225
1226 act = new Action("PHONEH", _("Phone # button"));
1227 act->setKeyEvent(KeyState(KEYCODE_HASH, '#'));
1228 act->addDefaultInputMapping("HASH"); // original keyboard
1229 gameKeyMap->addAction(act);
1230 } else if (gameId == "knossos") {
1231 act = new Action(kStandardActionEE, _("???"));
1232 act->setKeyEvent(KeyState(KEYCODE_a, 'a', KBD_SHIFT));
1233 act->addDefaultInputMapping("S+a"); // original keyboard
1234 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
1235 gameKeyMap->addAction(act);
1236 } else if (gameId == "jamesperis") {
1237 act = new Action("HINT", _("Show hints / Dance move"));
1238 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
1239 act->addDefaultInputMapping("SPACE"); // original keyboard
1240 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1241 act->addDefaultInputMapping("JOY_Y"); // extra joy
1242 gameKeyMap->addAction(act);
1243
1244 act = new Action(kStandardActionMoveUp, _("Dance move up"));
1245 act->setKeyEvent(KEYCODE_UP);
1246 act->addDefaultInputMapping("UP"); // original keyboard
1247 act->addDefaultInputMapping("JOY_UP"); // extra joy
1248 gameKeyMap->addAction(act);
1249
1250 act = new Action(kStandardActionMoveDown, _("Dance move down"));
1251 act->setKeyEvent(KEYCODE_DOWN);
1252 act->addDefaultInputMapping("DOWN"); // original keyboard
1253 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1254 gameKeyMap->addAction(act);
1255
1256 act = new Action(kStandardActionMoveLeft, _("Dance move left"));
1257 act->setKeyEvent(KEYCODE_LEFT);
1258 act->addDefaultInputMapping("LEFT"); // original keyboard
1259 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
1260 gameKeyMap->addAction(act);
1261
1262 act = new Action(kStandardActionMoveRight, _("Dance move right"));
1263 act->setKeyEvent(KEYCODE_RIGHT);
1264 act->addDefaultInputMapping("RIGHT"); // original keyboard
1265 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
1266 gameKeyMap->addAction(act);
1267
1268 act = new Action("PAGEUP", _("Previous page"));
1269 act->setMouseWheelUpEvent();
1270 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1271 gameKeyMap->addAction(act);
1272
1273 act = new Action("PAGEDN", _("Next page"));
1274 act->setMouseWheelDownEvent();
1275 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1276 gameKeyMap->addAction(act);
1277
1278 act = new Action(kStandardActionEE, _("???"));
1279 act->setKeyEvent(KEYCODE_F10);
1280 act->addDefaultInputMapping("F10"); // original keyboard
1281 act->addDefaultInputMapping("PAGEDOWN"); // original keyboard
1282 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
1283 gameKeyMap->addAction(act);
1284 } else if (gameId == "jamesperis2" ||
1285 gameId == "jamesperis2uncut") {
1286 act = new Action("HINT", _("Show hints"));
1287 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
1288 act->addDefaultInputMapping("SPACE"); // original keyboard
1289 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1290 act->addDefaultInputMapping("JOY_Y"); // extra joy
1291 gameKeyMap->addAction(act);
1292
1293 act = new Action("PAGEUP", _("Previous page"));
1294 act->setMouseWheelUpEvent();
1295 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1296 gameKeyMap->addAction(act);
1297
1298 act = new Action("PAGEDN", _("Next page"));
1299 act->setMouseWheelDownEvent();
1300 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1301 gameKeyMap->addAction(act);
1302
1303 act = new Action(kStandardActionLoad, _("Load game"));
1304 act->setKeyEvent(KEYCODE_F5);
1305 act->addDefaultInputMapping("F5"); // original keyboard
1306 gameKeyMap->addAction(act);
1307
1308 act = new Action(kStandardActionEE, _("???"));
1309 act->setKeyEvent(KeyState(KEYCODE_t, 't', KBD_CTRL));
1310 act->addDefaultInputMapping("C+t"); // original keyboard
1311 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
1312 gameKeyMap->addAction(act);
1313 } else if (gameId == "julia") {
1314 act = new Action(kStandardActionSkip, _("Skip"));
1315 act->setKeyEvent(KEYCODE_F12);
1316 act->addDefaultInputMapping("F12"); // original keyboard
1317 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1318 act->addDefaultInputMapping("JOY_Y"); // extra joy
1319 gameKeyMap->addAction(act);
1320 } else if (gameId == "juliastars") {
1321 act = new Action("CANCEL", _("Cancel input"));
1322 act->setKeyEvent(KEYCODE_BACKSPACE);
1323 act->addDefaultInputMapping("BACKSPACE"); // original keyboard
1324 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1325 act->addDefaultInputMapping("JOY_Y"); // extra joy
1326 gameKeyMap->addAction(act);
1327
1328 act = new Action(kStandardActionMoveUp, _("Up"));
1329 act->setKeyEvent(KEYCODE_UP);
1330 act->addDefaultInputMapping("UP"); // original keyboard
1331 act->addDefaultInputMapping("JOY_UP"); // extra joy
1332 gameKeyMap->addAction(act);
1333
1334 act = new Action(kStandardActionMoveDown, _("Down"));
1335 act->setKeyEvent(KEYCODE_DOWN);
1336 act->addDefaultInputMapping("DOWN"); // original keyboard
1337 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1338 gameKeyMap->addAction(act);
1339
1340 act = new Action(kStandardActionMoveLeft, _("Left"));
1341 act->setKeyEvent(KEYCODE_LEFT);
1342 act->addDefaultInputMapping("LEFT"); // original keyboard
1343 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
1344 gameKeyMap->addAction(act);
1345
1346 act = new Action(kStandardActionMoveRight, _("Right"));
1347 act->setKeyEvent(KEYCODE_RIGHT);
1348 act->addDefaultInputMapping("RIGHT"); // original keyboard
1349 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
1350 gameKeyMap->addAction(act);
1351
1352 act = new Action("NOWAIT", _("Cancel waiting"));
1353 act->setKeyEvent(KEYCODE_F11);
1354 act->addDefaultInputMapping("F11"); // original keyboard
1355 gameKeyMap->addAction(act);
1356 } else if (gameId == "looky") {
1357 act = new Action("HINT", _("Show hints"));
1358 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
1359 act->addDefaultInputMapping("SPACE"); // original keyboard
1360 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1361 act->addDefaultInputMapping("JOY_Y"); // extra joy
1362 gameKeyMap->addAction(act);
1363
1364 act = new Action("SCRLUP", _("Scroll up"));
1365 act->setMouseWheelUpEvent();
1366 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1367 act->addDefaultInputMapping("UP"); // extra keyboard
1368 act->addDefaultInputMapping("JOY_UP"); // extra joy
1369 gameKeyMap->addAction(act);
1370
1371 act = new Action("SCRLDN", _("Scroll down"));
1372 act->setMouseWheelDownEvent();
1373 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1374 act->addDefaultInputMapping("DOWN"); // extra keyboard
1375 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1376 gameKeyMap->addAction(act);
1377
1378 act = new Action("SCRS", _("Save screenshot"));
1379 act->setKeyEvent(KEYCODE_F12);
1380 act->addDefaultInputMapping("F12"); // original keyboard
1381 gameKeyMap->addAction(act);
1382 } else if (gameId == "lotl") {
1383 act = new Action("SUBS", _("Toggle subtitles"));
1384 act->setKeyEvent(KeyState(KEYCODE_t, 't'));
1385 act->addDefaultInputMapping("t"); // original keyboard
1386 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1387 act->addDefaultInputMapping("JOY_Y"); // extra joy
1388 gameKeyMap->addAction(act);
1389
1390 act = new Action("SCRLUP", _("Scroll up"));
1391 act->setMouseWheelUpEvent();
1392 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1393 act->addDefaultInputMapping("PAGEUP"); // extra keyboard
1394 act->addDefaultInputMapping("JOY_UP"); // extra joy
1395 gameKeyMap->addAction(act);
1396
1397 act = new Action("SCRLDN", _("Scroll down"));
1398 act->setMouseWheelDownEvent();
1399 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1400 act->addDefaultInputMapping("PAGEDOWN"); // extra keyboard
1401 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1402 gameKeyMap->addAction(act);
1403 } else if (gameId == "lostbride") {
1404 act = new Action("HELP", _("Show help"));
1405 act->setKeyEvent(KEYCODE_F1);
1406 act->addDefaultInputMapping("F1"); // original keyboard
1407 act->addDefaultInputMapping("JOY_Y"); // extra joy
1408 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1409 gameKeyMap->addAction(act);
1410
1411 act = new Action(kStandardActionMoveUp, _("Up"));
1412 act->setKeyEvent(KEYCODE_UP);
1413 act->addDefaultInputMapping("UP"); // original keyboard
1414 act->addDefaultInputMapping("JOY_UP"); // extra joy
1415 gameKeyMap->addAction(act);
1416
1417 act = new Action(kStandardActionMoveDown, _("Down"));
1418 act->setKeyEvent(KEYCODE_DOWN);
1419 act->addDefaultInputMapping("DOWN"); // original keyboard
1420 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1421 gameKeyMap->addAction(act);
1422
1423 act = new Action(kStandardActionMoveLeft, _("Left"));
1424 act->setKeyEvent(KEYCODE_LEFT);
1425 act->addDefaultInputMapping("LEFT"); // original keyboard
1426 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
1427 gameKeyMap->addAction(act);
1428
1429 act = new Action(kStandardActionMoveRight, _("Right"));
1430 act->setKeyEvent(KEYCODE_RIGHT);
1431 act->addDefaultInputMapping("RIGHT"); // original keyboard
1432 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
1433 gameKeyMap->addAction(act);
1434
1435 act = new Action(kStandardActionEE, _("???"));
1436 act->setKeyEvent(KeyState(KEYCODE_SLASH, 0, KBD_SHIFT));
1437 act->addDefaultInputMapping("S+SLASH"); // original keyboard
1438 //TODO: extra joy control, e.g. "JOY_R+JOY_A+JOY_B"
1439 gameKeyMap->addAction(act);
1440
1441 act = new Action("HINT", _("???"));
1442 act->setKeyEvent(KeyState(KEYCODE_s, 's'));
1443 act->addDefaultInputMapping("s"); // original keyboard
1444 //TODO: extra joy control, e.g. "JOY_R+JOY_A"
1445 gameKeyMap->addAction(act);
1446
1447 act = new Action("NOHINT", _("Hide hints"));
1448 act->setKeyEvent(KeyState(KEYCODE_h, 'h'));
1449 act->addDefaultInputMapping("h"); // original keyboard
1450 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
1451 gameKeyMap->addAction(act);
1452 } else if (gameId == "mentalrepairs") {
1453 act = new Action("HINT", _("Show hints"));
1454 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
1455 act->addDefaultInputMapping("SPACE"); // original keyboard
1456 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1457 act->addDefaultInputMapping("JOY_Y"); // extra joy
1458 gameKeyMap->addAction(act);
1459
1460 act = new Action("HELP", _("Show help"));
1461 act->setKeyEvent(KEYCODE_F1);
1462 act->addDefaultInputMapping("F1"); // original keyboard
1463 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
1464 gameKeyMap->addAction(act);
1465 } else if (gameId == "mythguff") {
1466 act = new Action("SCRLUP", _("Scroll up"));
1467 act->setMouseWheelUpEvent();
1468 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1469 act->addDefaultInputMapping("UP"); // extra keyboard
1470 act->addDefaultInputMapping("JOY_UP"); // extra joy
1471 gameKeyMap->addAction(act);
1472
1473 act = new Action("SCRLDN", _("Scroll down"));
1474 act->setMouseWheelDownEvent();
1475 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1476 act->addDefaultInputMapping("DOWN"); // extra keyboard
1477 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1478 gameKeyMap->addAction(act);
1479 } else if (gameId == "oknytt") {
1480 act = new Action("INV", _("Show inventory"));
1481 act->setKeyEvent(KeyState(KEYCODE_TAB, ASCII_TAB));
1482 act->addDefaultInputMapping("TAB"); // original keyboard
1483 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1484 act->addDefaultInputMapping("JOY_Y"); // extra joy
1485 gameKeyMap->addAction(act);
1486 } else if (gameId == "onehelluvaday") {
1487 act = new Action(kStandardActionMoveUp, _("Up"));
1488 act->setKeyEvent(KEYCODE_UP);
1489 act->addDefaultInputMapping("UP"); // original keyboard
1490 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
1491 act->addDefaultInputMapping("JOY_UP"); // extra joy
1492 gameKeyMap->addAction(act);
1493
1494 act = new Action(kStandardActionMoveDown, _("Down"));
1495 act->setKeyEvent(KEYCODE_DOWN);
1496 act->addDefaultInputMapping("DOWN"); // original keyboard
1497 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
1498 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1499 gameKeyMap->addAction(act);
1500
1501 // I18N: At one of the puzzles game asks to press Up key / Shift key / Down key
1502 act = new Action("SHIFT", _("Shift key"));
1503 act->setKeyEvent(KEYCODE_RSHIFT);
1504 act->addDefaultInputMapping("LSHIFT"); // original keyboard control
1505 act->addDefaultInputMapping("RSHIFT"); // original keyboard control
1506 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1507 act->addDefaultInputMapping("JOY_Y"); // extra joy
1508 gameKeyMap->addAction(act);
1509 } else if (gameId == "palladion") {
1510 act = new Action("HINT", _("Show hints"));
1511 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
1512 act->addDefaultInputMapping("SPACE"); // original keyboard
1513 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1514 act->addDefaultInputMapping("JOY_Y"); // extra joy
1515 gameKeyMap->addAction(act);
1516
1517 act = new Action("SCRS", _("Save screenshot"));
1518 act->setKeyEvent(KEYCODE_F12);
1519 act->addDefaultInputMapping("F12"); // original keyboard
1520 gameKeyMap->addAction(act);
1521 } else if (gameId == "papasdaughters1") {
1522 act = new Action("SCRLUP", _("Scroll up"));
1523 act->setMouseWheelUpEvent();
1524 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1525 act->addDefaultInputMapping("UP"); // extra keyboard
1526 act->addDefaultInputMapping("JOY_UP"); // extra joy
1527 gameKeyMap->addAction(act);
1528
1529 act = new Action("SCRLDN", _("Scroll down"));
1530 act->setMouseWheelDownEvent();
1531 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1532 act->addDefaultInputMapping("DOWN"); // extra keyboard
1533 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1534 gameKeyMap->addAction(act);
1535 } else if (gameId == "papasdaughters2") {
1536 act = new Action("HINT", _("Show hints"));
1537 act->setKeyEvent(KEYCODE_F1);
1538 act->addDefaultInputMapping("F1"); // original keyboard
1539 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1540 act->addDefaultInputMapping("JOY_Y"); // extra joy
1541 gameKeyMap->addAction(act);
1542
1543 act = new Action("SCRLUP", _("Scroll up"));
1544 act->setMouseWheelUpEvent();
1545 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1546 act->addDefaultInputMapping("UP"); // extra keyboard
1547 act->addDefaultInputMapping("JOY_UP"); // extra joy
1548 gameKeyMap->addAction(act);
1549
1550 act = new Action("SCRLDN", _("Scroll down"));
1551 act->setMouseWheelDownEvent();
1552 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1553 act->addDefaultInputMapping("DOWN"); // extra keyboard
1554 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1555 gameKeyMap->addAction(act);
1556 } else if (gameId == "petka02") {
1557 act = new Action("INV", _("Show inventory"));
1558 act->setKeyEvent(KeyState(KEYCODE_i, 'i'));
1559 act->addDefaultInputMapping("i"); // original keyboard
1560 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1561 act->addDefaultInputMapping("JOY_UP"); // extra joy
1562 gameKeyMap->addAction(act);
1563
1564 act = new Action("MAP", _("Show map"));
1565 act->setKeyEvent(KeyState(KEYCODE_m, 'm'));
1566 act->addDefaultInputMapping("TAB"); // original keyboard
1567 act->addDefaultInputMapping("F1"); // original keyboard
1568 act->addDefaultInputMapping("m"); // original keyboard
1569 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1570 gameKeyMap->addAction(act);
1571
1572 act = new Action("LOOK", _("Look at"));
1573 act->setKeyEvent(KeyState(KEYCODE_l, 'l'));
1574 act->addDefaultInputMapping("1"); // original keyboard
1575 act->addDefaultInputMapping("l"); // original keyboard
1576 gameKeyMap->addAction(act);
1577
1578 act = new Action("WALK", _("Walk to"));
1579 act->setKeyEvent(KeyState(KEYCODE_w, 'w'));
1580 act->addDefaultInputMapping("2"); // original keyboard
1581 act->addDefaultInputMapping("w"); // original keyboard
1582 gameKeyMap->addAction(act);
1583
1584 act = new Action("PICK", _("Pick up"));
1585 act->setKeyEvent(KeyState(KEYCODE_g, 'g'));
1586 act->addDefaultInputMapping("3"); // original keyboard
1587 act->addDefaultInputMapping("g"); // original keyboard
1588 gameKeyMap->addAction(act);
1589
1590 act = new Action("USE", _("Use"));
1591 act->setKeyEvent(KeyState(KEYCODE_u, 'u'));
1592 act->addDefaultInputMapping("4"); // original keyboard
1593 act->addDefaultInputMapping("u"); // original keyboard
1594 gameKeyMap->addAction(act);
1595
1596 act = new Action("TALK", _("Talk to"));
1597 act->setKeyEvent(KeyState(KEYCODE_t, 't'));
1598 act->addDefaultInputMapping("5"); // original keyboard
1599 act->addDefaultInputMapping("t"); // original keyboard
1600 gameKeyMap->addAction(act);
1601
1602 // I18N: Chapayev is the name of game character, Vasily Chapayev
1603 // This action makes Chapayev interact with item instead of Petka
1604 act = new Action("ALTUSE", _("Chapayev's action"));
1605 act->setKeyEvent(KeyState(KEYCODE_c, 'c'));
1606 act->addDefaultInputMapping("6"); // original keyboard
1607 act->addDefaultInputMapping("c"); // original keyboard
1608 gameKeyMap->addAction(act);
1609
1610 Common::String extra = ConfMan.get("extra", target);
1611 if (extra.hasSuffix("2015")) {
1612 act = new Action(kStandardActionEE, _("???"));
1613 act->setKeyEvent(KeyState(KEYCODE_q, 'q'));
1614 act->addDefaultInputMapping("q"); // original keyboard
1615 //TODO: extra joy control, e.g. "JOY_R+JOY_A"
1616 gameKeyMap->addAction(act);
1617
1618 // I18N: Displays a debug text message
1619 act = new Action("DBGTXT", _("Debug print"));
1620 act->setKeyEvent(KEYCODE_BACKSPACE);
1621 act->addDefaultInputMapping("BACKSPACE"); // original keyboard
1622 gameKeyMap->addAction(act);
1623 }
1624 } else if (gameId == "pizzamorgana") {
1625 act = new Action("ACTNXT", _("Next action"));
1626 act->setMouseWheelUpEvent();
1627 act->addDefaultInputMapping("MOUSE_RIGHT"); // original mouse
1628 act->addDefaultInputMapping("RIGHTBRACKET"); // original keyboard
1629 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1630 act->addDefaultInputMapping("JOY_B"); // extra joy
1631 gameKeyMap->addAction(act);
1632
1633 act = new Action("ACTPRV", _("Previous action"));
1634 act->setMouseWheelDownEvent();
1635 act->addDefaultInputMapping("LEFTBRACKET"); // original keyboard
1636 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1637 gameKeyMap->addAction(act);
1638
1639 act = new Action(kStandardActionSkip, _("Skip"));
1640 act->setKeyEvent(KeyState(KEYCODE_PERIOD, '.'));
1641 act->addDefaultInputMapping("PERIOD"); // original keyboard
1642 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1643 act->addDefaultInputMapping("JOY_Y"); // extra joy
1644 gameKeyMap->addAction(act);
1645
1646 act = new Action(kStandardActionPause, _("Pause"));
1647 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
1648 act->addDefaultInputMapping("SPACE"); // original keyboard
1649 act->addDefaultInputMapping("p"); // original keyboard
1650 gameKeyMap->addAction(act);
1651
1652 act = new Action(kStandardActionOpenSettings, _("Settings"));
1653 act->setKeyEvent(KeyState(KEYCODE_s, 's'));
1654 act->addDefaultInputMapping("s"); // original keyboard
1655 gameKeyMap->addAction(act);
1656
1657 act = new Action("ANSWR1", _("Dialog answer 1"));
1658 act->setKeyEvent(KeyState(KEYCODE_1, '1'));
1659 act->addDefaultInputMapping("1"); // original keyboard
1660 gameKeyMap->addAction(act);
1661
1662 act = new Action("ANSWR2", _("Dialog answer 2"));
1663 act->setKeyEvent(KeyState(KEYCODE_2, '2'));
1664 act->addDefaultInputMapping("2"); // original keyboard
1665 gameKeyMap->addAction(act);
1666
1667 act = new Action("ANSWR3", _("Dialog answer 3"));
1668 act->setKeyEvent(KeyState(KEYCODE_3, '3'));
1669 act->addDefaultInputMapping("3"); // original keyboard
1670 gameKeyMap->addAction(act);
1671
1672 act = new Action("ANSWR4", _("Dialog answer 4"));
1673 act->setKeyEvent(KeyState(KEYCODE_4, '4'));
1674 act->addDefaultInputMapping("4"); // original keyboard
1675 gameKeyMap->addAction(act);
1676
1677 act = new Action("SCRS", _("Save screenshot"));
1678 act->setKeyEvent(KeyState(KEYCODE_p, 'p', KBD_SHIFT));
1679 act->addDefaultInputMapping("S+p"); // original keyboard
1680 gameKeyMap->addAction(act);
1681 } else if (gameId == "polechudes") {
1682 // I18N: This game is called "Pole Chudes" and it features a wheel similar to "Wheel of Fortune" TV show
1683 act = new Action("SLOWER", _("Spin wheel slower"));
1684 act->setKeyEvent(KEYCODE_F1);
1685 act->addDefaultInputMapping("F1"); // original keyboard
1686 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
1687 act->addDefaultInputMapping("JOY_UP"); // extra joy
1688 gameKeyMap->addAction(act);
1689
1690 // I18N: This game is called "Pole Chudes" and it features a wheel similar to "Wheel of Fortune" TV show
1691 act = new Action("FASTER", _("Spin wheel faster"));
1692 act->setKeyEvent(KEYCODE_F2);
1693 act->addDefaultInputMapping("F2"); // original keyboard
1694 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
1695 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1696 gameKeyMap->addAction(act);
1697 } else if (gameId == "reptilesquest") {
1698 act = new Action("HINT", _("Show hints"));
1699 act->setKeyEvent(KeyState(KEYCODE_x, 'x'));
1700 act->addDefaultInputMapping("x"); // original keyboard
1701 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1702 act->addDefaultInputMapping("JOY_Y"); // extra joy
1703 gameKeyMap->addAction(act);
1704
1705 act = new Action("INV", _("Show inventory"));
1706 act->setKeyEvent(KeyState(KEYCODE_i, 'i'));
1707 act->addDefaultInputMapping("i"); // original keyboard
1708 act->addDefaultInputMapping("JOY_UP"); // extra joy
1709 gameKeyMap->addAction(act);
1710
1711 act = new Action("MAP", _("Show map"));
1712 act->setKeyEvent(KeyState(KEYCODE_m, 'm'));
1713 act->addDefaultInputMapping("m"); // original keyboard
1714 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1715 gameKeyMap->addAction(act);
1716 } else if (gameId == "reversion1") {
1717 act = new Action("INV", _("Show inventory"));
1718 act->setKeyEvent(KeyState(KEYCODE_i, 'i'));
1719 act->addDefaultInputMapping("i"); // original keyboard
1720 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1721 act->addDefaultInputMapping("JOY_Y"); // extra joy
1722 gameKeyMap->addAction(act);
1723 } else if (gameId == "reversion2" ||
1724 gameId == "reversion3"
1725 ) {
1726 act = new Action("INV", _("Show inventory"));
1727 act->setKeyEvent(KeyState(KEYCODE_i, 'i'));
1728 act->addDefaultInputMapping("i"); // original keyboard
1729 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1730 act->addDefaultInputMapping("JOY_Y"); // extra joy
1731 gameKeyMap->addAction(act);
1732
1733 act = new Action(kStandardActionMoveUp, _("Scroll up"));
1734 act->setMouseWheelUpEvent();
1735 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1736 act->addDefaultInputMapping("UP"); // extra keyboard
1737 act->addDefaultInputMapping("JOY_UP"); // extra joy
1738 gameKeyMap->addAction(act);
1739
1740 act = new Action(kStandardActionMoveDown, _("Scroll down"));
1741 act->setMouseWheelDownEvent();
1742 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1743 act->addDefaultInputMapping("DOWN"); // extra keyboard
1744 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1745 gameKeyMap->addAction(act);
1746 } else if (gameId == "ritter") {
1747 act = new Action("HINT", _("Show hints"));
1748 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
1749 act->addDefaultInputMapping("SPACE"); // original keyboard
1750 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1751 act->addDefaultInputMapping("JOY_Y"); // extra joy
1752 gameKeyMap->addAction(act);
1753
1754 act = new Action(kStandardActionSkip, _("Skip"));
1755 act->setKeyEvent(KeyState(KEYCODE_BACKSPACE, ASCII_BACKSPACE));
1756 act->addDefaultInputMapping("BACKSPACE"); // original keyboard
1757 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
1758 gameKeyMap->addAction(act);
1759 } else if (gameId == "shaban") {
1760 act = new Action("MAP", _("Show map"));
1761 act->setKeyEvent(KeyState(KEYCODE_m, 'm'));
1762 act->addDefaultInputMapping("m"); // original keyboard
1763 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1764 act->addDefaultInputMapping("JOY_Y"); // extra joy
1765 gameKeyMap->addAction(act);
1766 } else if (gameId == "sof1" ||
1767 gameId == "sof2"
1768 ) {
1769 act = new Action("ZOOMOT", _("Zoom out"));
1770 act->setMouseWheelUpEvent();
1771 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1772 act->addDefaultInputMapping("PAGEUP"); // extra keyboard
1773 act->addDefaultInputMapping("JOY_UP"); // extra joy
1774 gameKeyMap->addAction(act);
1775
1776 act = new Action("ZOOMIN", _("Zoom in"));
1777 act->setMouseWheelDownEvent();
1778 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1779 act->addDefaultInputMapping("PAGEDOWN"); // extra keyboard
1780 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1781 gameKeyMap->addAction(act);
1782
1783 act = new Action("MAP", _("Show map"));
1784 act->setKeyEvent(KeyState(KEYCODE_m, 'm'));
1785 act->addDefaultInputMapping("m"); // original keyboard
1786 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
1787 gameKeyMap->addAction(act);
1788
1789 act = new Action("JRNL", _("Show journal"));
1790 act->setKeyEvent(KeyState(KEYCODE_n, 'n'));
1791 act->addDefaultInputMapping("n"); // original keyboard
1792 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
1793 gameKeyMap->addAction(act);
1794 } else if (gameId == "sotv1") {
1795 act = new Action("HINT", _("Show hints"));
1796 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
1797 act->addDefaultInputMapping("SPACE"); // original keyboard
1798 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1799 act->addDefaultInputMapping("JOY_Y"); // extra joy
1800 gameKeyMap->addAction(act);
1801
1802 act = new Action("MAP", _("Show map"));
1803 act->setKeyEvent(KeyState(KEYCODE_m, 'm'));
1804 act->addDefaultInputMapping("m"); // original keyboard
1805 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1806 gameKeyMap->addAction(act);
1807
1808 act = new Action("ACTNXT", _("Next action"));
1809 act->setMouseWheelDownEvent();
1810 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1811 act->addDefaultInputMapping("PAGEDOWN"); // extra keyboard
1812 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
1813 gameKeyMap->addAction(act);
1814
1815 act = new Action("ACTPRV", _("Previous action"));
1816 act->setMouseWheelUpEvent();
1817 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1818 act->addDefaultInputMapping("PAGEUP"); // extra keyboard
1819 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1820 gameKeyMap->addAction(act);
1821
1822 act = new Action(kStandardActionEE, _("???"));
1823 act->setMiddleClickEvent();
1824 act->addDefaultInputMapping("MOUSE_MIDDLE"); // original mouse
1825 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
1826 gameKeyMap->addAction(act);
1827 } else if (gameId == "sotv2") {
1828 act = new Action("HINT", _("Show hints"));
1829 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
1830 act->addDefaultInputMapping("SPACE"); // original keyboard
1831 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1832 act->addDefaultInputMapping("JOY_Y"); // extra joy
1833 gameKeyMap->addAction(act);
1834
1835 act = new Action("MAP", _("Show map"));
1836 act->setKeyEvent(KeyState(KEYCODE_m, 'm'));
1837 act->addDefaultInputMapping("m"); // original keyboard
1838 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1839 gameKeyMap->addAction(act);
1840
1841 act = new Action("ACTNXT", _("Next action"));
1842 act->setMouseWheelDownEvent();
1843 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
1844 act->addDefaultInputMapping("PAGEDOWN"); // extra keyboard
1845 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
1846 gameKeyMap->addAction(act);
1847
1848 act = new Action("ACTPRV", _("Previous action"));
1849 act->setMouseWheelUpEvent();
1850 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
1851 act->addDefaultInputMapping("PAGEUP"); // extra keyboard
1852 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1853 gameKeyMap->addAction(act);
1854
1855 act = new Action("PHONE1", _("Phone 1 button"));
1856 act->setKeyEvent(KeyState(KEYCODE_1, '1'));
1857 act->addDefaultInputMapping("1"); // original keyboard
1858 gameKeyMap->addAction(act);
1859
1860 act = new Action("PHONE2", _("Phone 2 button"));
1861 act->setKeyEvent(KeyState(KEYCODE_2, '2'));
1862 act->addDefaultInputMapping("2"); // original keyboard
1863 gameKeyMap->addAction(act);
1864
1865 act = new Action("PHONE3", _("Phone 3 button"));
1866 act->setKeyEvent(KeyState(KEYCODE_3, '3'));
1867 act->addDefaultInputMapping("3"); // original keyboard
1868 gameKeyMap->addAction(act);
1869
1870 // I18N: Displays a debug text message
1871 act = new Action("DBGTXT", _("Debug print"));
1872 act->setKeyEvent(KEYCODE_F6);
1873 act->addDefaultInputMapping("F6"); // original keyboard
1874 gameKeyMap->addAction(act);
1875
1876 act = new Action(kStandardActionEE, _("???"));
1877 act->setMiddleClickEvent();
1878 act->addDefaultInputMapping("MOUSE_MIDDLE"); // original mouse
1879 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
1880 gameKeyMap->addAction(act);
1881 } else if (gameId == "tib") {
1882 act = new Action("SCRS", _("Save screenshot"));
1883 act->setKeyEvent(KEYCODE_F9);
1884 act->addDefaultInputMapping("F9"); // original keyboard
1885 gameKeyMap->addAction(act);
1886 } else if (gameId == "thelastcrownmh") {
1887 act = new Action("EXIT", _("Exit"));
1888 act->setKeyEvent(KEYCODE_F1);
1889 act->addDefaultInputMapping("F1"); // original keyboard
1890 gameKeyMap->addAction(act);
1891
1892 // I18N: Debug feature to draw lines of scene geometry: walls, walking areas, etc
1893 act = new Action("DBGSCN", _("Show scene geometry"));
1894 act->setKeyEvent(KEYCODE_F2);
1895 act->addDefaultInputMapping("F2"); // original keyboard
1896 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1897 act->addDefaultInputMapping("JOY_Y"); // extra joy
1898 gameKeyMap->addAction(act);
1899
1900 act = new Action("SCRS", _("Save screenshot"));
1901 act->setKeyEvent(KEYCODE_F3);
1902 act->addDefaultInputMapping("F3"); // original keyboard
1903 gameKeyMap->addAction(act);
1904
1905 act = new Action(kStandardActionOpenSettings, _("Settings"));
1906 act->setKeyEvent(KEYCODE_F4);
1907 act->addDefaultInputMapping("F4"); // original keyboard
1908 gameKeyMap->addAction(act);
1909
1910 act = new Action("NOWAIT", _("Cancel waiting"));
1911 act->setKeyEvent(KEYCODE_F5);
1912 act->addDefaultInputMapping("F5"); // original keyboard
1913 gameKeyMap->addAction(act);
1914
1915 // I18N: Displays a debug text message
1916 act = new Action("DBGTXT", _("Debug print"));
1917 act->setKeyEvent(KEYCODE_F6);
1918 act->addDefaultInputMapping("F6"); // original keyboard
1919 gameKeyMap->addAction(act);
1920
1921 // I18N: Displays a debug interface with Bezier curves
1922 act = new Action("DBGBEZ", _("Bezier window"));
1923 act->setKeyEvent(KEYCODE_F7);
1924 act->addDefaultInputMapping("F7"); // original keyboard
1925 gameKeyMap->addAction(act);
1926 } else if (gameId == "thelostcrowngha") {
1927 act = new Action(kStandardActionEE, _("???"));
1928 act->setKeyEvent(KEYCODE_F1);
1929 act->addDefaultInputMapping("F1"); // original keyboard
1930 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
1931 gameKeyMap->addAction(act);
1932
1933 act = new Action("SCRS", _("Save screenshot"));
1934 act->setKeyEvent(KEYCODE_F3);
1935 act->addDefaultInputMapping("F3"); // original keyboard
1936 gameKeyMap->addAction(act);
1937 } else if (gameId == "twc") {
1938 // I18N: Use droid to perform an action
1939 act = new Action("ALTUSE", _("Droid's action"));
1940 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
1941 act->addDefaultInputMapping("SPACE"); // original keyboard
1942 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1943 act->addDefaultInputMapping("JOY_Y"); // extra joy
1944 gameKeyMap->addAction(act);
1945
1946 act = new Action(kStandardActionMoveLeft, _("Left"));
1947 act->setKeyEvent(KEYCODE_LEFT);
1948 act->addDefaultInputMapping("LEFT"); // original keyboard
1949 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
1950 gameKeyMap->addAction(act);
1951
1952 act = new Action(kStandardActionMoveRight, _("Right"));
1953 act->setKeyEvent(KEYCODE_RIGHT);
1954 act->addDefaultInputMapping("RIGHT"); // original keyboard
1955 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
1956 gameKeyMap->addAction(act);
1957
1958 act = new Action(kStandardActionMoveUp, _("Up"));
1959 act->setKeyEvent(KEYCODE_UP);
1960 act->addDefaultInputMapping("UP"); // original keyboard
1961 act->addDefaultInputMapping("JOY_UP"); // extra joy
1962 gameKeyMap->addAction(act);
1963
1964 act = new Action(kStandardActionMoveDown, _("Down"));
1965 act->setKeyEvent(KEYCODE_DOWN);
1966 act->addDefaultInputMapping("DOWN"); // original keyboard
1967 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
1968 gameKeyMap->addAction(act);
1969
1970 act = new Action("GUIA", _("GUI variant A"));
1971 act->setKeyEvent(KEYCODE_F10);
1972 act->addDefaultInputMapping("F10"); // original keyboard
1973 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
1974 gameKeyMap->addAction(act);
1975
1976 act = new Action("GUIB", _("GUI variant B"));
1977 act->setKeyEvent(KEYCODE_F11);
1978 act->addDefaultInputMapping("F11"); // original keyboard
1979 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
1980 gameKeyMap->addAction(act);
1981
1982 act = new Action(kStandardActionEE, _("???"));
1983 act->setKeyEvent(KEYCODE_HOME);
1984 act->addDefaultInputMapping("HOME"); // original keyboard
1985 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
1986 gameKeyMap->addAction(act);
1987 } else if (gameId == "vsevolod") {
1988 act = new Action("INV", _("Show inventory"));
1989 act->setKeyEvent(KeyState(KEYCODE_i, 'i'));
1990 act->addDefaultInputMapping("i"); // original keyboard
1991 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
1992 act->addDefaultInputMapping("JOY_Y"); // extra joy
1993 gameKeyMap->addAction(act);
1994
1995 act = new Action("JRNL", _("Show journal"));
1996 act->setKeyEvent(KeyState(KEYCODE_j, 'j'));
1997 act->addDefaultInputMapping("j"); // original keyboard
1998 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
1999 gameKeyMap->addAction(act);
2000
2001 act = new Action(kStandardActionOpenSettings, _("Settings"));
2002 act->setKeyEvent(KeyState(KEYCODE_m, 'm'));
2003 act->addDefaultInputMapping("m"); // original keyboard
2004 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
2005 gameKeyMap->addAction(act);
2006
2007 act = new Action("SCRLUP", _("Scroll up"));
2008 act->setMouseWheelUpEvent();
2009 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
2010 act->addDefaultInputMapping("UP"); // extra keyboard
2011 act->addDefaultInputMapping("JOY_UP"); // extra joy
2012 gameKeyMap->addAction(act);
2013
2014 act = new Action("SCRLDN", _("Scroll down"));
2015 act->setMouseWheelDownEvent();
2016 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
2017 act->addDefaultInputMapping("DOWN"); // extra keyboard
2018 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
2019 gameKeyMap->addAction(act);
2020 } else if (gameId == "wayoflove") {
2021 act = new Action("HINT", _("Show hints"));
2022 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
2023 act->addDefaultInputMapping("SPACE"); // original keyboard
2024 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
2025 act->addDefaultInputMapping("JOY_Y"); // extra joy
2026 gameKeyMap->addAction(act);
2027
2028 act = new Action("GUIA", _("GUI variant A"));
2029 act->setKeyEvent(KEYCODE_F10);
2030 act->addDefaultInputMapping("F10"); // original keyboard
2031 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
2032 gameKeyMap->addAction(act);
2033
2034 act = new Action("GUIB", _("GUI variant B"));
2035 act->setKeyEvent(KEYCODE_F11);
2036 act->addDefaultInputMapping("F11"); // original keyboard
2037 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
2038 gameKeyMap->addAction(act);
2039
2040 act = new Action(kStandardActionEE, _("???"));
2041 act->setKeyEvent(KEYCODE_HOME);
2042 act->addDefaultInputMapping("HOME"); // original keyboard
2043 //TODO: extra joy control, e.g. "JOY_R+JOY_B"
2044 gameKeyMap->addAction(act);
2045 } else if (gameId == "wtetris") {
2046 // I18N: It's a Tetris game clone, this action rotates current tetris item
2047 act = new Action("ROTATE", _("Rotate"));
2048 act->setKeyEvent(KEYCODE_UP);
2049 act->addDefaultInputMapping("UP"); // original keyboard
2050 act->addDefaultInputMapping("SPACE"); // original keyboard
2051 act->addDefaultInputMapping("MOUSE_RIGHT"); // extra mouse
2052 act->addDefaultInputMapping("JOY_UP"); // extra joy
2053 act->addDefaultInputMapping("JOY_Y"); // extra joy
2054 gameKeyMap->addAction(act);
2055
2056 act = new Action(kStandardActionMoveLeft, _("Left"));
2057 act->setKeyEvent(KEYCODE_LEFT);
2058 act->addDefaultInputMapping("LEFT"); // original keyboard
2059 act->addDefaultInputMapping("KP4"); // original keyboard
2060 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // extra mouse
2061 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
2062 gameKeyMap->addAction(act);
2063
2064 act = new Action(kStandardActionMoveRight, _("Right"));
2065 act->setKeyEvent(KEYCODE_RIGHT);
2066 act->addDefaultInputMapping("RIGHT"); // original keyboard
2067 act->addDefaultInputMapping("KP6"); // original keyboard
2068 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // extra mouse
2069 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
2070 gameKeyMap->addAction(act);
2071
2072 // I18N: It's a Tetris game clone, this action drops current tetris item
2073 act = new Action("DROP", _("Drop"));
2074 act->setKeyEvent(KEYCODE_DOWN);
2075 act->addDefaultInputMapping("DOWN"); // original keyboard
2076 act->addDefaultInputMapping("KP2"); // original keyboard
2077 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
2078 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
2079 gameKeyMap->addAction(act);
2080 } else if (gameId == "zilm") {
2081 act = new Action("P1UP", _("Player 1: Up"));
2082 act->setKeyEvent(KeyState(KEYCODE_w, 'w'));
2083 act->addDefaultInputMapping("w"); // original keyboard
2084 gameKeyMap->addAction(act);
2085
2086 act = new Action("P1LT", _("Player 1: Left"));
2087 act->setKeyEvent(KeyState(KEYCODE_a, 'a'));
2088 act->addDefaultInputMapping("a"); // original keyboard
2089 gameKeyMap->addAction(act);
2090
2091 act = new Action("P1DN", _("Player 1: Down"));
2092 act->setKeyEvent(KeyState(KEYCODE_s, 's'));
2093 act->addDefaultInputMapping("s"); // original keyboard
2094 gameKeyMap->addAction(act);
2095
2096 act = new Action("P1RT", _("Player 1: Right"));
2097 act->setKeyEvent(KeyState(KEYCODE_d, 'd'));
2098 act->addDefaultInputMapping("d"); // original keyboard
2099 gameKeyMap->addAction(act);
2100
2101 act = new Action("P2UP", _("Player 2: Up"));
2102 act->setKeyEvent(KEYCODE_UP);
2103 act->addDefaultInputMapping("UP"); // original keyboard
2104 gameKeyMap->addAction(act);
2105
2106 act = new Action("P2LT", _("Player 2: Left"));
2107 act->setKeyEvent(KEYCODE_LEFT);
2108 act->addDefaultInputMapping("LEFT"); // original keyboard
2109 gameKeyMap->addAction(act);
2110
2111 act = new Action("P2DN", _("Player 2: Down"));
2112 act->setKeyEvent(KEYCODE_DOWN);
2113 act->addDefaultInputMapping("DOWN"); // original keyboard
2114 gameKeyMap->addAction(act);
2115
2116 act = new Action("P2RT", _("Player 2: Right"));
2117 act->setKeyEvent(KEYCODE_RIGHT);
2118 act->addDefaultInputMapping("RIGHT"); // original keyboard
2119 gameKeyMap->addAction(act);
2120
2121 // I18N: Displays a debug FPS counter
2122 act = new Action("DBGFPS", _("Debug FPS"));
2123 act->setKeyEvent(KEYCODE_F2);
2124 act->addDefaultInputMapping("F2"); // original keyboard
2125 gameKeyMap->addAction(act);
2126 } else if (gameId == "zbang") {
2127 act = new Action("ACTNXT", _("Next action"));
2128 act->setMouseWheelUpEvent();
2129 act->addDefaultInputMapping("MOUSE_RIGHT"); // original mouse
2130 act->addDefaultInputMapping("RIGHTBRACKET"); // original keyboard
2131 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
2132 act->addDefaultInputMapping("JOY_B"); // extra joy
2133 gameKeyMap->addAction(act);
2134
2135 act = new Action("ACTPRV", _("Previous action"));
2136 act->setMouseWheelDownEvent();
2137 act->addDefaultInputMapping("LEFTBRACKET"); // original keyboard
2138 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
2139 gameKeyMap->addAction(act);
2140
2141 act = new Action("HINT", _("Show hints"));
2142 act->setKeyEvent(KeyState(KEYCODE_TAB, ASCII_TAB));
2143 act->addDefaultInputMapping("TAB"); // original keyboard
2144 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
2145 act->addDefaultInputMapping("JOY_Y"); // extra joy
2146 gameKeyMap->addAction(act);
2147
2148 act = new Action(kStandardActionSkip, _("Skip"));
2149 act->setKeyEvent(KeyState(KEYCODE_PERIOD, '.'));
2150 act->addDefaultInputMapping("PERIOD"); // original keyboard
2151 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
2152 gameKeyMap->addAction(act);
2153
2154 act = new Action(kStandardActionMoveUp, _("Move forward"));
2155 act->setKeyEvent(KEYCODE_UP);
2156 act->addDefaultInputMapping("UP"); // original keyboard
2157 act->addDefaultInputMapping("JOY_UP"); // extra joy
2158 gameKeyMap->addAction(act);
2159
2160 act = new Action(kStandardActionMoveLeft, _("Turn left"));
2161 act->setKeyEvent(KEYCODE_LEFT);
2162 act->addDefaultInputMapping("LEFT"); // original keyboard
2163 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
2164 gameKeyMap->addAction(act);
2165
2166 act = new Action(kStandardActionMoveRight, _("Turn right"));
2167 act->setKeyEvent(KEYCODE_RIGHT);
2168 act->addDefaultInputMapping("RIGHT"); // original keyboard
2169 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
2170 gameKeyMap->addAction(act);
2171 } else if (gameId == "barbapoca2") {
2172 act = new Action("HINT", _("Show hints"));
2173 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
2174 act->addDefaultInputMapping("SPACE"); // original keyboard
2175 act->addDefaultInputMapping("MOUSE_MIDDLE"); // extra mouse
2176 act->addDefaultInputMapping("JOY_Y"); // extra joy
2177 gameKeyMap->addAction(act);
2178 } else if (gameId == "tetriks") {
2179 act = new Action("SPACE", _("Space"));
2180 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
2181 act->addDefaultInputMapping("SPACE"); // original keyboard
2182 act->addDefaultInputMapping("JOY_Y"); // extra joy
2183 gameKeyMap->addAction(act);
2184
2185 act = new Action(kStandardActionMoveLeft, _("Left"));
2186 act->setKeyEvent(KEYCODE_LEFT);
2187 act->addDefaultInputMapping("LEFT"); // original keyboard
2188 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
2189 gameKeyMap->addAction(act);
2190
2191 act = new Action(kStandardActionMoveRight, _("Right"));
2192 act->setKeyEvent(KEYCODE_RIGHT);
2193 act->addDefaultInputMapping("RIGHT"); // original keyboard
2194 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
2195 gameKeyMap->addAction(act);
2196
2197 act = new Action(kStandardActionMoveUp, _("Up"));
2198 act->setKeyEvent(KEYCODE_UP);
2199 act->addDefaultInputMapping("UP"); // original keyboard
2200 act->addDefaultInputMapping("JOY_UP"); // extra joy
2201 gameKeyMap->addAction(act);
2202
2203 act = new Action(kStandardActionMoveDown, _("Down"));
2204 act->setKeyEvent(KEYCODE_DOWN);
2205 act->addDefaultInputMapping("DOWN"); // original keyboard
2206 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
2207 gameKeyMap->addAction(act);
2208 } else if (gameId == "sunny") {
2209 act = new Action("SPACE", _("Space"));
2210 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
2211 act->addDefaultInputMapping("SPACE"); // original keyboard
2212 act->addDefaultInputMapping("JOY_Y"); // extra joy
2213 gameKeyMap->addAction(act);
2214 act = new Action("KP_MINUS", _("???"));
2215 act->setKeyEvent(KeyState(KEYCODE_KP_MINUS));
2216 act->addDefaultInputMapping("KP_MINUS"); // original keyboard
2217 gameKeyMap->addAction(act);
2218 } else if (gameId == "todaymama") {
2219 act = new Action("SPACE", _("Space"));
2220 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
2221 act->addDefaultInputMapping("SPACE"); // original keyboard
2222 act->addDefaultInputMapping("JOY_Y"); // extra joy
2223 gameKeyMap->addAction(act);
2224 } else {
2225 warning("Autogenerated keymap for unknown WME game, id '%s', target '%s'", gameId.c_str(), target);
2226
2227 act = new Action("SPACE", _("Space"));
2228 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
2229 act->addDefaultInputMapping("SPACE"); // original keyboard
2230 act->addDefaultInputMapping("JOY_Y"); // extra joy
2231 gameKeyMap->addAction(act);
2232
2233 act = new Action(kStandardActionMoveLeft, _("Left"));
2234 act->setKeyEvent(KEYCODE_LEFT);
2235 act->addDefaultInputMapping("LEFT"); // original keyboard
2236 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
2237 gameKeyMap->addAction(act);
2238
2239 act = new Action(kStandardActionMoveRight, _("Right"));
2240 act->setKeyEvent(KEYCODE_RIGHT);
2241 act->addDefaultInputMapping("RIGHT"); // original keyboard
2242 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
2243 gameKeyMap->addAction(act);
2244
2245 act = new Action(kStandardActionMoveUp, _("Up"));
2246 act->setKeyEvent(KEYCODE_UP);
2247 act->addDefaultInputMapping("UP"); // original keyboard
2248 act->addDefaultInputMapping("JOY_UP"); // extra joy
2249 gameKeyMap->addAction(act);
2250
2251 act = new Action(kStandardActionMoveDown, _("Down"));
2252 act->setKeyEvent(KEYCODE_DOWN);
2253 act->addDefaultInputMapping("DOWN"); // original keyboard
2254 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
2255 gameKeyMap->addAction(act);
2256
2257 act = new Action(kStandardActionMiddleClick, _("Middle click"));
2258 act->setMiddleClickEvent();
2259 act->addDefaultInputMapping("MOUSE_MIDDLE"); // original mouse
2260 gameKeyMap->addAction(act);
2261
2262 act = new Action("SCRLUP", _("Scroll up"));
2263 act->setMouseWheelUpEvent();
2264 act->addDefaultInputMapping("MOUSE_WHEEL_UP"); // original mouse
2265 gameKeyMap->addAction(act);
2266
2267 act = new Action("SCRLDN", _("Scroll down"));
2268 act->setMouseWheelDownEvent();
2269 act->addDefaultInputMapping("MOUSE_WHEEL_DOWN"); // original mouse
2270 gameKeyMap->addAction(act);
2271
2272 act = new Action("KEYF1", _("F1"));
2273 act->setKeyEvent(KEYCODE_F1);
2274 act->addDefaultInputMapping("F1"); // original keyboard
2275 gameKeyMap->addAction(act);
2276
2277 act = new Action("KEYI", _("Key i"));
2278 act->setKeyEvent(KeyState(KEYCODE_i, 'i'));
2279 act->addDefaultInputMapping("i"); // original keyboard
2280 gameKeyMap->addAction(act);
2281
2282 act = new Action("TAB", _("Tab"));
2283 act->setKeyEvent(KeyState(KEYCODE_TAB, ASCII_TAB));
2284 act->addDefaultInputMapping("TAB"); // original keyboard
2285 gameKeyMap->addAction(act);
2286 }
2287 result.push_back(gameKeyMap);
2288
2289
2290 if (gameId == "carolreed4" ||
2291 gameId == "carolreed5" ||
2292 gameId == "carolreed6" ||
2293 gameId == "carolreed7" ||
2294 gameId == "carolreed8" ||
2295 gameId == "carolreed9" ||
2296 gameId == "carolreed10" ||
2297 gameId == "carolreed11" ||
2298 gameId == "carolreed12" ||
2299 gameId == "carolreed13" ||
2300 gameId == "carolreed14" ||
2301 gameId == "carolreed15" ||
2302 gameId == "carolreed16" ||
2303 gameId == "corrosion" ||
2304 gameId == "rebeccacarlson1" ||
2305 gameId == "rhiannon"
2306 ) {
2307 act = new Action(kStandardActionMoveUp, _("Move forward"));
2308 act->setCustomEngineActionEvent(kClickAtEntityNearestToCenter);
2309 act->addDefaultInputMapping("UP"); // extra keyboard
2310 act->addDefaultInputMapping("KP5"); // extra keyboard
2311 act->addDefaultInputMapping("JOY_UP"); // extra joy
2312 extraKeyMap->addAction(act);
2313
2314 act = new Action(kStandardActionMoveLeft, _("Turn left"));
2315 act->setCustomEngineActionEvent(kClickAtLeft);
2316 act->addDefaultInputMapping("LEFT"); // extra keyboard
2317 act->addDefaultInputMapping("KP4"); // extra keyboard
2318 act->addDefaultInputMapping("JOY_LEFT"); // extra joy
2319 extraKeyMap->addAction(act);
2320
2321 act = new Action(kStandardActionMoveRight, _("Turn right"));
2322 act->setCustomEngineActionEvent(kClickAtRight);
2323 act->addDefaultInputMapping("RIGHT"); // extra keyboard
2324 act->addDefaultInputMapping("KP6"); // extra keyboard
2325 act->addDefaultInputMapping("JOY_RIGHT"); // extra joy
2326 extraKeyMap->addAction(act);
2327
2328 if (gameId != "rhiannon") {
2329 act = new Action(kStandardActionMoveDown, _("Move backwards"));
2330 act->setCustomEngineActionEvent(kClickAtBottom);
2331 act->addDefaultInputMapping("DOWN"); // extra keyboard
2332 act->addDefaultInputMapping("KP2"); // extra keyboard
2333 act->addDefaultInputMapping("JOY_DOWN"); // extra joy
2334 extraKeyMap->addAction(act);
2335 }
2336 }
2337 result.push_back(extraKeyMap);
2338
2339 return result;
2340
2341}
2342
2343} // End of namespace Wintermute
2344
2345#endif // WINTERMUTE_KEYMAPPER_TABLES_H
void push_back(const T &element)
Definition: array.h:181
Definition: keymap.h:66
void addAction(Action *action)
Definition: str.h:59
void warning(MSVC_PRINTF const char *s,...) GCC_PRINTF(1
Definition: algorithm.h:29
A set of well known keymapper actions.
Definition: action.h:41
void addDefaultInputMapping(const String &hwId)
Definition: keyboard.h:294