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 SLUDGE_KEYMAPPER_TABLES_H
23#define SLUDGE_KEYMAPPER_TABLES_H
24
25#include "backends/keymapper/action.h"
26#include "backends/keymapper/keymapper.h"
28
29#include "common/translation.h"
30
31namespace Sludge {
32inline Common::KeymapArray getSludgeKeymaps(const char *target, const Common::String &gameId) {
33
34 using namespace Common;
35
36 Keymap *gameKeyMap = new Keymap(Keymap::kKeymapTypeGame, "game-shortcuts", _("Game keymappings"));
37 Keymap *debugKeyMap = new Keymap(Keymap::kKeymapTypeGame, "debug", _("Debug keymappings"));
38 Keymap *menuKeymap = new Keymap(Keymap::kKeymapTypeGame, "menu", _("Menu keymappings"));
39 Keymap *minigameKeymap = new Keymap(Keymap::kKeymapTypeGame, "minigame", _("Minigame keymappings"));
40 Action *act;
41
42 if (gameId == "outoforder") {
43 act = new Action(kStandardActionLeftClick, _("Interact"));
44 act->setLeftClickEvent();
45 act->addDefaultInputMapping("MOUSE_LEFT");
46 act->addDefaultInputMapping("JOY_A");
47 gameKeyMap->addAction(act);
48
49 act = new Action(kStandardActionRightClick, _("Change action"));
50 act->setRightClickEvent();
51 act->addDefaultInputMapping("MOUSE_RIGHT");
52 act->addDefaultInputMapping("JOY_B");
53 gameKeyMap->addAction(act);
54
55 act = new Action(kStandardActionPause, _("Pause"));
56 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
57 act->addDefaultInputMapping("ESCAPE");
58 act->addDefaultInputMapping("JOY_RIGHT");
59 gameKeyMap->addAction(act);
60
61 act = new Action("INVENTORY", _("Inventory"));
62 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
63 act->addDefaultInputMapping("SPACE");
64 act->addDefaultInputMapping("JOY_Y");
65 gameKeyMap->addAction(act);
66
67 act = new Action("SAVE", _("Quick save"));
68 act->setKeyEvent(KeyState(KEYCODE_s, 's'));
69 act->addDefaultInputMapping("s");
70 act->addDefaultInputMapping("JOY_LEFT_SHOULDER");
71 gameKeyMap->addAction(act);
72
73 act = new Action("SPEEDUP", _("Speed up dialog"));
74 act->setKeyEvent(KeyState(KEYCODE_PLUS, '+'));
75 act->addDefaultInputMapping("PLUS");
76 act->addDefaultInputMapping("JOY_UP");
77 gameKeyMap->addAction(act);
78
79 act = new Action("SPEEDDOWN", _("Slow down dialog"));
80 act->setKeyEvent(KeyState(KEYCODE_MINUS, '-'));
81 act->addDefaultInputMapping("MINUS");
82 act->addDefaultInputMapping("JOY_DOWN");
83 gameKeyMap->addAction(act);
84
85 } else if (gameId == "tsotc") {
86 act = new Action(kStandardActionLeftClick, _("Move / Interact"));
87 act->setLeftClickEvent();
88 act->addDefaultInputMapping("MOUSE_LEFT");
89 act->addDefaultInputMapping("JOY_A");
90 gameKeyMap->addAction(act);
91
92 act = new Action(kStandardActionRightClick, _("Skip dialog"));
93 act->setRightClickEvent();
94 act->addDefaultInputMapping("MOUSE_RIGHT");
95 act->addDefaultInputMapping("JOY_B");
96 gameKeyMap->addAction(act);
97
98 act = new Action("QUIT", _("Quit"));
99 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
100 act->addDefaultInputMapping("ESCAPE");
101 act->addDefaultInputMapping("JOY_LEFT");
102 gameKeyMap->addAction(act);
103
104 act = new Action("LOADAUTOSAVE", _("Load auto save"));
105 act->setKeyEvent(KeyState(KEYCODE_a, 'a'));
106 act->addDefaultInputMapping("a");
107 act->addDefaultInputMapping("JOY_X");
108 gameKeyMap->addAction(act);
109
110 act = new Action("SAVE", _("Save game"));
111 act->setKeyEvent(KeyState(KEYCODE_s, 's'));
112 act->addDefaultInputMapping("s");
113 act->addDefaultInputMapping("JOY_LEFT_SHOULDER");
114 gameKeyMap->addAction(act);
115
116 act = new Action("LOAD", _("Load save"));
117 act->setKeyEvent(KeyState(KEYCODE_l, 'l'));
118 act->addDefaultInputMapping("l");
119 act->addDefaultInputMapping("JOY_RIGHT_SHOULDER");
120 gameKeyMap->addAction(act);
121
122 act = new Action("INVENTORY", _("Inventory"));
123 act->setKeyEvent(KeyState(KEYCODE_i, 'i'));
124 act->addDefaultInputMapping("i");
125 act->addDefaultInputMapping("JOY_Y");
126 gameKeyMap->addAction(act);
127
128 act = new Action("PAUSE", _("Pause"));
129 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
130 act->addDefaultInputMapping("SPACE");
131 act->addDefaultInputMapping("JOY_RIGHT");
132 gameKeyMap->addAction(act);
133
134 } else if (gameId == "gjgagsas") {
135 act = new Action(kStandardActionLeftClick, _("Move / Interact"));
136 act->setLeftClickEvent();
137 act->addDefaultInputMapping("MOUSE_LEFT");
138 act->addDefaultInputMapping("JOY_A");
139 gameKeyMap->addAction(act);
140
141 act = new Action(kStandardActionRightClick, _("Skip dialog"));
142 act->setRightClickEvent();
143 act->addDefaultInputMapping("MOUSE_RIGHT");
144 act->addDefaultInputMapping("JOY_B");
145 gameKeyMap->addAction(act);
146
147 act = new Action("QUIT", _("Quit"));
148 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
149 act->addDefaultInputMapping("ESCAPE");
150 act->addDefaultInputMapping("JOY_LEFT");
151 gameKeyMap->addAction(act);
152
153 act = new Action("LOADAUTOSAVE", _("Load auto save"));
154 act->setKeyEvent(KeyState(KEYCODE_a, 'a'));
155 act->addDefaultInputMapping("a");
156 act->addDefaultInputMapping("JOY_X");
157 gameKeyMap->addAction(act);
158
159 act = new Action("SAVE", _("Save game"));
160 act->setKeyEvent(KeyState(KEYCODE_s, 's'));
161 act->addDefaultInputMapping("s");
162 act->addDefaultInputMapping("JOY_LEFT_SHOULDER");
163 gameKeyMap->addAction(act);
164
165 act = new Action("LOAD", _("Load save"));
166 act->setKeyEvent(KeyState(KEYCODE_l, 'l'));
167 act->addDefaultInputMapping("l");
168 act->addDefaultInputMapping("JOY_RIGHT_SHOULDER");
169 gameKeyMap->addAction(act);
170
171 act = new Action("INVENTORY", _("Inventory"));
172 act->setKeyEvent(KeyState(KEYCODE_i, 'i'));
173 act->addDefaultInputMapping("i");
174 act->addDefaultInputMapping("JOY_Y");
175 gameKeyMap->addAction(act);
176
177 } else if (gameId == "robinsrescue") {
178 act = new Action(kStandardActionLeftClick, _("Move / Interact"));
179 act->setLeftClickEvent();
180 act->addDefaultInputMapping("MOUSE_LEFT");
181 act->addDefaultInputMapping("JOY_A");
182 gameKeyMap->addAction(act);
183
184 act = new Action(kStandardActionRightClick, _("Inventory"));
185 act->setRightClickEvent();
186 act->addDefaultInputMapping("MOUSE_RIGHT");
187 act->addDefaultInputMapping("JOY_B");
188 gameKeyMap->addAction(act);
189
190 act = new Action(kStandardActionPause, _("Pause"));
191 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
192 act->addDefaultInputMapping("ESCAPE");
193 act->addDefaultInputMapping("q");
194 act->addDefaultInputMapping("JOY_RIGHT");
195 gameKeyMap->addAction(act);
196
197 act = new Action("SKIPDLG", _("Skip dialog"));
198 act->setKeyEvent(KeyState(KEYCODE_PERIOD, '.'));
199 act->addDefaultInputMapping("PERIOD");
200 act->addDefaultInputMapping("JOY_X");
201 gameKeyMap->addAction(act);
202
203 act = new Action("SHOWFLOOR", _("DEBUG: Show floor"));
204 act->setKeyEvent(KeyState(KEYCODE_f, 'f'));
205 act->addDefaultInputMapping("f");
206 debugKeyMap->addAction(act);
207
208 act = new Action("SHOWBOXES", _("DEBUG: Show boxes"));
209 act->setKeyEvent(KeyState(KEYCODE_b, 'b'));
210 act->addDefaultInputMapping("b");
211 debugKeyMap->addAction(act);
212
213 } else if (gameId == "atw") {
214 act = new Action(kStandardActionLeftClick, _("Move / Interact"));
215 act->setLeftClickEvent();
216 act->addDefaultInputMapping("MOUSE_LEFT");
217 act->addDefaultInputMapping("JOY_A");
218 gameKeyMap->addAction(act);
219
220 act = new Action(kStandardActionRightClick, _("Inventory"));
221 act->setRightClickEvent();
222 act->addDefaultInputMapping("MOUSE_RIGHT");
223 act->addDefaultInputMapping("JOY_B");
224 gameKeyMap->addAction(act);
225
226 act = new Action("QUIT", _("Quit"));
227 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
228 act->addDefaultInputMapping("ESCAPE");
229 act->addDefaultInputMapping("q");
230 act->addDefaultInputMapping("JOY_LEFT");
231 gameKeyMap->addAction(act);
232
233 } else if (gameId == "cubert") {
234 act = new Action(kStandardActionLeftClick, _("Move / Interact"));
235 act->setLeftClickEvent();
236 act->addDefaultInputMapping("MOUSE_LEFT");
237 act->addDefaultInputMapping("JOY_A");
238 gameKeyMap->addAction(act);
239
240 act = new Action(kStandardActionRightClick, _("Inventory / Examine"));
241 act->setRightClickEvent();
242 act->addDefaultInputMapping("MOUSE_RIGHT");
243 act->addDefaultInputMapping("JOY_B");
244 gameKeyMap->addAction(act);
245
246 act = new Action(kStandardActionPause, _("Pause"));
247 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
248 act->addDefaultInputMapping("ESCAPE");
249 act->addDefaultInputMapping("JOY_RIGHT");
250 gameKeyMap->addAction(act);
251
252 } else if (gameId == "frasse") {
253 act = new Action(kStandardActionLeftClick, _("Move / Interact"));
254 act->setLeftClickEvent();
255 act->addDefaultInputMapping("MOUSE_LEFT");
256 act->addDefaultInputMapping("JOY_A");
257 gameKeyMap->addAction(act);
258
259 act = new Action(kStandardActionRightClick, _("Inventory"));
260 act->setRightClickEvent();
261 act->addDefaultInputMapping("MOUSE_RIGHT");
262 act->addDefaultInputMapping("JOY_B");
263 gameKeyMap->addAction(act);
264
265 act = new Action(kStandardActionPause, _("Pause"));
266 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
267 act->addDefaultInputMapping("ESCAPE");
268 act->addDefaultInputMapping("JOY_RIGHT");
269 gameKeyMap->addAction(act);
270
271 act = new Action("SKIPDLG", _("Skip dialog"));
272 act->setKeyEvent(KeyState(KEYCODE_PERIOD, '.'));
273 act->addDefaultInputMapping("PERIOD");
274 act->addDefaultInputMapping("JOY_X");
275 gameKeyMap->addAction(act);
276
277 } else if (gameId == "tgttpoacs") {
278 act = new Action(kStandardActionLeftClick, _("Move / Interact"));
279 act->setLeftClickEvent();
280 act->addDefaultInputMapping("MOUSE_LEFT");
281 act->addDefaultInputMapping("JOY_A");
282 gameKeyMap->addAction(act);
283
284 act = new Action(kStandardActionRightClick, _("Examine / Skip dialog"));
285 act->setRightClickEvent();
286 act->addDefaultInputMapping("MOUSE_RIGHT");
287 act->addDefaultInputMapping("JOY_B");
288 gameKeyMap->addAction(act);
289
290 act = new Action(kStandardActionPause, _("Pause / Skip cutscene"));
291 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
292 act->addDefaultInputMapping("ESCAPE");
293 act->addDefaultInputMapping("JOY_RIGHT_SHOULDER");
294 gameKeyMap->addAction(act);
295
296 act = new Action("SPEEDUP", _("Speed up dialog"));
297 act->setKeyEvent(KeyState(KEYCODE_PLUS, '+'));
298 act->addDefaultInputMapping("PLUS");
299 gameKeyMap->addAction(act);
300
301 act = new Action("SPEEDDOWN", _("Slow down dialog"));
302 act->setKeyEvent(KeyState(KEYCODE_MINUS, '-'));
303 act->addDefaultInputMapping("MINUS");
304 gameKeyMap->addAction(act);
305
306 act = new Action("SAVE", _("Quick save"));
307 act->setKeyEvent(KeyState(KEYCODE_s, 's'));
308 act->addDefaultInputMapping("s");
309 gameKeyMap->addAction(act);
310
311 act = new Action("LOAD", _("Quick load"));
312 act->setKeyEvent(KeyState(KEYCODE_l, 'l'));
313 act->addDefaultInputMapping("l");
314 gameKeyMap->addAction(act);
315
316 act = new Action("EXAMINE", _("Examine"));
317 act->setKeyEvent(KeyState(KEYCODE_e, 'e'));
318 act->addDefaultInputMapping("e");
319 gameKeyMap->addAction(act);
320
321 act = new Action("PICKUP", _("Pick up"));
322 act->setKeyEvent(KeyState(KEYCODE_p, 'p'));
323 act->addDefaultInputMapping("p");
324 gameKeyMap->addAction(act);
325
326 act = new Action("TALK", _("Talk to"));
327 act->setKeyEvent(KeyState(KEYCODE_t, 't'));
328 act->addDefaultInputMapping("t");
329 gameKeyMap->addAction(act);
330
331 act = new Action("SMELL", _("Smell"));
332 act->setKeyEvent(KeyState(KEYCODE_m, 'm'));
333 act->addDefaultInputMapping("m");
334 gameKeyMap->addAction(act);
335
336 act = new Action("USE", _("Use"));
337 act->setKeyEvent(KeyState(KEYCODE_u, 'u'));
338 act->addDefaultInputMapping("u");
339 gameKeyMap->addAction(act);
340
341 act = new Action("CONSUME", _("Consume"));
342 act->setKeyEvent(KeyState(KEYCODE_c, 'c'));
343 act->addDefaultInputMapping("c");
344 gameKeyMap->addAction(act);
345
346 act = new Action("QUIT", _("Quit"));
347 act->setKeyEvent(KeyState(KEYCODE_q, 'q'));
348 act->addDefaultInputMapping("q");
349 act->addDefaultInputMapping("JOY_LEFT_SHOULDER");
350 gameKeyMap->addAction(act);
351
352 act = new Action("START", _("Start"));
353 act->setKeyEvent(KeyState(KEYCODE_RETURN, ASCII_RETURN));
354 act->addDefaultInputMapping("RETURN");
355 act->addDefaultInputMapping("JOY_Y");
356 minigameKeymap->addAction(act);
357
358 act = new Action("QUIT", _("Quit"));
359 act->setKeyEvent(KeyState(KEYCODE_q, 'q'));
360 act->addDefaultInputMapping("q");
361 act->addDefaultInputMapping("JOY_X");
362 minigameKeymap->addAction(act);
363
364 act = new Action("CASTEARTH", _("Cast earth spell"));
365 act->setKeyEvent(KeyState(KEYCODE_z, 'z'));
366 act->addDefaultInputMapping("z");
367 act->addDefaultInputMapping("JOY_LEFT");
368 minigameKeymap->addAction(act);
369
370 act = new Action("CASTAIR", _("Cast air spell"));
371 act->setKeyEvent(KeyState(KEYCODE_x, 'x'));
372 act->addDefaultInputMapping("x");
373 act->addDefaultInputMapping("JOY_UP");
374 minigameKeymap->addAction(act);
375
376 act = new Action("CASTFIRE", _("Cast fire spell"));
377 act->setKeyEvent(KeyState(KEYCODE_c, 'c'));
378 act->addDefaultInputMapping("c");
379 act->addDefaultInputMapping("JOY_RIGHT");
380 minigameKeymap->addAction(act);
381
382 act = new Action("CASTWATER", _("Cast water spell"));
383 act->setKeyEvent(KeyState(KEYCODE_v, 'v'));
384 act->addDefaultInputMapping("v");
385 act->addDefaultInputMapping("JOY_DOWN");
386 minigameKeymap->addAction(act);
387
388 } else if (gameId == "interview") {
389 act = new Action(kStandardActionLeftClick, _("Move / Interact"));
390 act->setLeftClickEvent();
391 act->addDefaultInputMapping("MOUSE_LEFT");
392 act->addDefaultInputMapping("JOY_A");
393 gameKeyMap->addAction(act);
394
395 act = new Action(kStandardActionRightClick, _("Skip dialog"));
396 act->setRightClickEvent();
397 act->addDefaultInputMapping("MOUSE_RIGHT");
398 act->addDefaultInputMapping("JOY_B");
399 gameKeyMap->addAction(act);
400
401 act = new Action(kStandardActionPause, _("Pause / Skip cutscene"));
402 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
403 act->addDefaultInputMapping("ESCAPE");
404 act->addDefaultInputMapping("JOY_RIGHT");
405 gameKeyMap->addAction(act);
406
407 act = new Action("LOAD", _("Quick load"));
408 act->setKeyEvent(KeyState(KEYCODE_l, 'l'));
409 act->addDefaultInputMapping("l");
410 act->addDefaultInputMapping("JOY_RIGHT_SHOULDER");
411 gameKeyMap->addAction(act);
412
413 act = new Action("SAVE", _("Quick save"));
414 act->setKeyEvent(KeyState(KEYCODE_s, 's'));
415 act->addDefaultInputMapping("s");
416 act->addDefaultInputMapping("JOY_LEFT_SHOULDER");
417 gameKeyMap->addAction(act);
418
419 act = new Action("QUIT", _("Quit"));
420 act->setKeyEvent(KeyState(KEYCODE_q, 'q'));
421 act->addDefaultInputMapping("q");
422 act->addDefaultInputMapping("JOY_LEFT");
423 gameKeyMap->addAction(act);
424
425 } else if (gameId == "leptonsquest") {
426 act = new Action(kStandardActionLeftClick, _("Move / Interact / Skip dialog"));
427 act->setLeftClickEvent();
428 act->addDefaultInputMapping("MOUSE_LEFT");
429 act->addDefaultInputMapping("JOY_A");
430 gameKeyMap->addAction(act);
431
432 act = new Action("QUIT", _("Quit"));
433 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
434 act->addDefaultInputMapping("ESCAPE");
435 act->addDefaultInputMapping("JOY_LEFT");
436 gameKeyMap->addAction(act);
437
438 act = new Action("SHOWFLOOR", _("DEBUG: Show floor"));
439 act->setKeyEvent(KeyState(KEYCODE_f, 'f'));
440 act->addDefaultInputMapping("f");
441 debugKeyMap->addAction(act);
442
443 act = new Action("SHOWBOXES", _("DEBUG: Show boxes"));
444 act->setKeyEvent(KeyState(KEYCODE_b, 'b'));
445 act->addDefaultInputMapping("b");
446 debugKeyMap->addAction(act);
447
448 } else if (gameId == "life") {
449 act = new Action(kStandardActionLeftClick, _("Move / Interact"));
450 act->setLeftClickEvent();
451 act->addDefaultInputMapping("MOUSE_LEFT");
452 act->addDefaultInputMapping("JOY_A");
453 gameKeyMap->addAction(act);
454
455 act = new Action("SKIPDLG", _("Skip dialog"));
456 act->setRightClickEvent();
457 act->addDefaultInputMapping("MOUSE_RIGHT");
458 act->addDefaultInputMapping(".");
459 act->addDefaultInputMapping("JOY_B");
460 gameKeyMap->addAction(act);
461
462 act = new Action(kStandardActionPause, _("Pause"));
463 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
464 act->addDefaultInputMapping("ESCAPE");
465 act->addDefaultInputMapping("JOY_RIGHT");
466 gameKeyMap->addAction(act);
467
468 act = new Action("SAVE", _("Quick save"));
469 act->setKeyEvent(KeyState(KEYCODE_s, 's'));
470 act->addDefaultInputMapping("s");
471 act->addDefaultInputMapping("JOY_LEFT_SHOULDER");
472 gameKeyMap->addAction(act);
473
474 act = new Action("LOAD", _("Quick load"));
475 act->setKeyEvent(KeyState(KEYCODE_l, 'l'));
476 act->addDefaultInputMapping("l");
477 act->addDefaultInputMapping("JOY_RIGHT_SHOULDER");
478 gameKeyMap->addAction(act);
479
480 } else if (gameId == "mandy") {
481 act = new Action(kStandardActionLeftClick, _("Move / Interact"));
482 act->setLeftClickEvent();
483 act->addDefaultInputMapping("MOUSE_LEFT");
484 act->addDefaultInputMapping("JOY_A");
485 gameKeyMap->addAction(act);
486
487 act = new Action(kStandardActionRightClick, _("Skip dialog"));
488 act->setRightClickEvent();
489 act->addDefaultInputMapping("MOUSE_RIGHT");
490 act->addDefaultInputMapping("JOY_B");
491 gameKeyMap->addAction(act);
492
493 act = new Action(kStandardActionPause, _("Pause"));
494 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
495 act->addDefaultInputMapping("ESCAPE");
496 act->addDefaultInputMapping("JOY_RIGHT");
497 gameKeyMap->addAction(act);
498
499 act = new Action("SAVE", _("Quick save"));
500 act->setKeyEvent(KeyState(KEYCODE_s, 's'));
501 act->addDefaultInputMapping("s");
502 act->addDefaultInputMapping("JOY_LEFT_SHOULDER");
503 gameKeyMap->addAction(act);
504
505 act = new Action("LOAD", _("Quick load"));
506 act->setKeyEvent(KeyState(KEYCODE_l, 'l'));
507 act->addDefaultInputMapping("l");
508 act->addDefaultInputMapping("JOY_RIGHT_SHOULDER");
509 gameKeyMap->addAction(act);
510
511
512 } else if (gameId == "nsc") {
513 act = new Action(kStandardActionLeftClick, _("Move / Interact / Skip dialog"));
514 act->setLeftClickEvent();
515 act->addDefaultInputMapping("MOUSE_LEFT");
516 act->addDefaultInputMapping("JOY_A");
517 gameKeyMap->addAction(act);
518
519 act = new Action(kStandardActionRightClick, _("Inventory / Skip dialog"));
520 act->setRightClickEvent();
521 act->addDefaultInputMapping("MOUSE_RIGHT");
522 act->addDefaultInputMapping("JOY_B");
523 gameKeyMap->addAction(act);
524
525 act = new Action(kStandardActionPause, _("Pause / Skip cutscene"));
526 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
527 act->addDefaultInputMapping("ESCAPE");
528 act->addDefaultInputMapping("JOY_RIGHT");
529 gameKeyMap->addAction(act);
530
531 } else if (gameId == "verbcoin") {
532 act = new Action(kStandardActionLeftClick, _("Move / Interact"));
533 act->setLeftClickEvent();
534 act->addDefaultInputMapping("MOUSE_LEFT");
535 act->addDefaultInputMapping("JOY_A");
536 gameKeyMap->addAction(act);
537
538 act = new Action(kStandardActionRightClick, _("Skip dialog"));
539 act->setRightClickEvent();
540 act->addDefaultInputMapping("MOUSE_RIGHT");
541 act->addDefaultInputMapping("JOY_B");
542 gameKeyMap->addAction(act);
543
544 act = new Action("QUIT", _("Quit"));
545 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
546 act->addDefaultInputMapping("ESCAPE");
547 act->addDefaultInputMapping("JOY_LEFT");
548 gameKeyMap->addAction(act);
549
550 act = new Action("SHOWBOXES", _("DEBUG: Show boxes"));
551 act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
552 act->addDefaultInputMapping("SPACE");
553 debugKeyMap->addAction(act);
554
555 act = new Action("SHOWFLOOR", _("DEBUG: Show floor"));
556 act->setKeyEvent(KeyState(KEYCODE_f, 'f'));
557 act->addDefaultInputMapping("f");
558 debugKeyMap->addAction(act);
559
560 } else {
561 // Default keymap for other games
562 warning("Game-specific keymap is not defined. Using default SLUDGE engine keymap");
563
564 act = new Action(kStandardActionLeftClick, _("Left click"));
565 act->setLeftClickEvent();
566 act->addDefaultInputMapping("MOUSE_LEFT");
567 act->addDefaultInputMapping("JOY_A");
568 gameKeyMap->addAction(act);
569
570 act = new Action(kStandardActionRightClick, _("Right click"));
571 act->setRightClickEvent();
572 act->addDefaultInputMapping("MOUSE_RIGHT");
573 act->addDefaultInputMapping("JOY_B");
574 gameKeyMap->addAction(act);
575
576 act = new Action(kStandardActionPause, _("Pause game"));
577 act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
578 act->addDefaultInputMapping("ESCAPE");
579 act->addDefaultInputMapping("JOY_RIGHT");
580 gameKeyMap->addAction(act);
581 }
582
583 act = new Action(kStandardActionLeftClick, _("Left click"));
584 act->setLeftClickEvent();
585 act->addDefaultInputMapping("MOUSE_LEFT");
586 act->addDefaultInputMapping("JOY_A");
587 menuKeymap->addAction(act);
588
589 act = new Action(kStandardActionRightClick, _("Right click"));
590 act->setRightClickEvent();
591 act->addDefaultInputMapping("MOUSE_RIGHT");
592 act->addDefaultInputMapping("JOY_B");
593 menuKeymap->addAction(act);
594
595 KeymapArray keyMaps(4);
596 keyMaps[0] = gameKeyMap;
597 keyMaps[1] = debugKeyMap;
598 keyMaps[2] = menuKeymap;
599 keyMaps[3] = minigameKeymap;
600
601 menuKeymap->setEnabled(false);
602
603 return keyMaps;
604}
605
606} // End of namespace Sludge
607
608#endif // SLUDGE_KEYMAPPER_TABLES_H
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