22 #include "backends/keymapper/action.h" 23 #include "backends/keymapper/keymapper.h" 26 #include "common/translation.h" 33 Keymap *gameKeyMap =
new Keymap(Keymap::kKeymapTypeGame,
"game-shortcuts", _(
"Game keymappings"));
34 Keymap *debugKeyMap =
new Keymap(Keymap::kKeymapTypeGame,
"debug", _(
"Debug keymappings"));
35 Keymap *menuKeymap =
new Keymap(Keymap::kKeymapTypeGame,
"menu", _(
"Menu keymappings"));
36 Keymap *minigameKeymap =
new Keymap(Keymap::kKeymapTypeGame,
"minigame", _(
"Minigame keymappings"));
39 if (gameId ==
"outoforder") {
40 act =
new Action(kStandardActionLeftClick, _(
"Interact"));
41 act->setLeftClickEvent();
46 act =
new Action(kStandardActionRightClick, _(
"Change action"));
47 act->setRightClickEvent();
52 act =
new Action(kStandardActionPause, _(
"Pause"));
53 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
58 act =
new Action(
"INVENTORY", _(
"Inventory"));
59 act->setKeyEvent(
KeyState(KEYCODE_SPACE, ASCII_SPACE));
64 act =
new Action(
"SAVE", _(
"Quick save"));
65 act->setKeyEvent(
KeyState(KEYCODE_s,
's'));
70 act =
new Action(
"SPEEDUP", _(
"Speed up dialog"));
71 act->setKeyEvent(
KeyState(KEYCODE_PLUS,
'+'));
76 act =
new Action(
"SPEEDDOWN", _(
"Slow down dialog"));
77 act->setKeyEvent(
KeyState(KEYCODE_MINUS,
'-'));
82 }
else if (gameId ==
"tsotc") {
83 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact"));
84 act->setLeftClickEvent();
89 act =
new Action(kStandardActionRightClick, _(
"Skip dialog"));
90 act->setRightClickEvent();
95 act =
new Action(
"QUIT", _(
"Quit"));
96 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
101 act =
new Action(
"LOADAUTOSAVE", _(
"Load auto save"));
102 act->setKeyEvent(
KeyState(KEYCODE_a,
'a'));
107 act =
new Action(
"SAVE", _(
"Save game"));
108 act->setKeyEvent(
KeyState(KEYCODE_s,
's'));
113 act =
new Action(
"LOAD", _(
"Load save"));
114 act->setKeyEvent(
KeyState(KEYCODE_l,
'l'));
119 act =
new Action(
"INVENTORY", _(
"Inventory"));
120 act->setKeyEvent(
KeyState(KEYCODE_i,
'i'));
125 act =
new Action(
"PAUSE", _(
"Pause"));
126 act->setKeyEvent(
KeyState(KEYCODE_SPACE, ASCII_SPACE));
131 }
else if (gameId ==
"gjgagsas") {
132 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact"));
133 act->setLeftClickEvent();
138 act =
new Action(kStandardActionRightClick, _(
"Skip dialog"));
139 act->setRightClickEvent();
144 act =
new Action(
"QUIT", _(
"Quit"));
145 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
150 act =
new Action(
"LOADAUTOSAVE", _(
"Load auto save"));
151 act->setKeyEvent(
KeyState(KEYCODE_a,
'a'));
156 act =
new Action(
"SAVE", _(
"Save game"));
157 act->setKeyEvent(
KeyState(KEYCODE_s,
's'));
162 act =
new Action(
"LOAD", _(
"Load save"));
163 act->setKeyEvent(
KeyState(KEYCODE_l,
'l'));
168 act =
new Action(
"INVENTORY", _(
"Inventory"));
169 act->setKeyEvent(
KeyState(KEYCODE_i,
'i'));
174 }
else if (gameId ==
"robinsrescue") {
175 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact"));
176 act->setLeftClickEvent();
181 act =
new Action(kStandardActionRightClick, _(
"Inventory"));
182 act->setRightClickEvent();
187 act =
new Action(kStandardActionPause, _(
"Pause"));
188 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
194 act =
new Action(
"SKIPDLG", _(
"Skip dialog"));
195 act->setKeyEvent(
KeyState(KEYCODE_PERIOD,
'.'));
200 act =
new Action(
"SHOWFLOOR", _(
"DEBUG: Show floor"));
201 act->setKeyEvent(
KeyState(KEYCODE_f,
'f'));
205 act =
new Action(
"SHOWBOXES", _(
"DEBUG: Show boxes"));
206 act->setKeyEvent(
KeyState(KEYCODE_b,
'b'));
210 }
else if (gameId ==
"atw") {
211 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact"));
212 act->setLeftClickEvent();
217 act =
new Action(kStandardActionRightClick, _(
"Inventory"));
218 act->setRightClickEvent();
223 act =
new Action(
"QUIT", _(
"Quit"));
224 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
230 }
else if (gameId ==
"cubert") {
231 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact"));
232 act->setLeftClickEvent();
237 act =
new Action(kStandardActionRightClick, _(
"Inventory / Examine"));
238 act->setRightClickEvent();
243 act =
new Action(kStandardActionPause, _(
"Pause"));
244 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
249 }
else if (gameId ==
"frasse") {
250 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact"));
251 act->setLeftClickEvent();
256 act =
new Action(kStandardActionRightClick, _(
"Inventory"));
257 act->setRightClickEvent();
262 act =
new Action(kStandardActionPause, _(
"Pause"));
263 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
268 act =
new Action(
"SKIPDLG", _(
"Skip dialog"));
269 act->setKeyEvent(
KeyState(KEYCODE_PERIOD,
'.'));
274 }
else if (gameId ==
"tgttpoacs") {
275 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact"));
276 act->setLeftClickEvent();
281 act =
new Action(kStandardActionRightClick, _(
"Examine / Skip dialog"));
282 act->setRightClickEvent();
287 act =
new Action(kStandardActionPause, _(
"Pause / Skip cutscene"));
288 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
293 act =
new Action(
"SPEEDUP", _(
"Speed up dialog"));
294 act->setKeyEvent(
KeyState(KEYCODE_PLUS,
'+'));
298 act =
new Action(
"SPEEDDOWN", _(
"Slow down dialog"));
299 act->setKeyEvent(
KeyState(KEYCODE_MINUS,
'-'));
303 act =
new Action(
"SAVE", _(
"Quick save"));
304 act->setKeyEvent(
KeyState(KEYCODE_s,
's'));
308 act =
new Action(
"LOAD", _(
"Quick load"));
309 act->setKeyEvent(
KeyState(KEYCODE_l,
'l'));
313 act =
new Action(
"EXAMINE", _(
"Examine"));
314 act->setKeyEvent(
KeyState(KEYCODE_e,
'e'));
318 act =
new Action(
"PICKUP", _(
"Pick up"));
319 act->setKeyEvent(
KeyState(KEYCODE_p,
'p'));
323 act =
new Action(
"TALK", _(
"Talk to"));
324 act->setKeyEvent(
KeyState(KEYCODE_t,
't'));
328 act =
new Action(
"SMELL", _(
"Smell"));
329 act->setKeyEvent(
KeyState(KEYCODE_m,
'm'));
333 act =
new Action(
"USE", _(
"Use"));
334 act->setKeyEvent(
KeyState(KEYCODE_u,
'u'));
338 act =
new Action(
"CONSUME", _(
"Consume"));
339 act->setKeyEvent(
KeyState(KEYCODE_c,
'c'));
343 act =
new Action(
"QUIT", _(
"Quit"));
344 act->setKeyEvent(
KeyState(KEYCODE_q,
'q'));
349 act =
new Action(
"START", _(
"Start"));
350 act->setKeyEvent(
KeyState(KEYCODE_RETURN, ASCII_RETURN));
355 act =
new Action(
"QUIT", _(
"Quit"));
356 act->setKeyEvent(
KeyState(KEYCODE_q,
'q'));
361 act =
new Action(
"CASTEARTH", _(
"Cast earth spell"));
362 act->setKeyEvent(
KeyState(KEYCODE_z,
'z'));
367 act =
new Action(
"CASTAIR", _(
"Cast air spell"));
368 act->setKeyEvent(
KeyState(KEYCODE_x,
'x'));
373 act =
new Action(
"CASTFIRE", _(
"Cast fire spell"));
374 act->setKeyEvent(
KeyState(KEYCODE_c,
'c'));
379 act =
new Action(
"CASTWATER", _(
"Cast water spell"));
380 act->setKeyEvent(
KeyState(KEYCODE_v,
'v'));
385 }
else if (gameId ==
"interview") {
386 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact"));
387 act->setLeftClickEvent();
392 act =
new Action(kStandardActionRightClick, _(
"Skip dialog"));
393 act->setRightClickEvent();
398 act =
new Action(kStandardActionPause, _(
"Pause / Skip cutscene"));
399 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
404 act =
new Action(
"LOAD", _(
"Quick load"));
405 act->setKeyEvent(
KeyState(KEYCODE_l,
'l'));
410 act =
new Action(
"SAVE", _(
"Quick save"));
411 act->setKeyEvent(
KeyState(KEYCODE_s,
's'));
416 act =
new Action(
"QUIT", _(
"Quit"));
417 act->setKeyEvent(
KeyState(KEYCODE_q,
'q'));
422 }
else if (gameId ==
"leptonsquest") {
423 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact / Skip dialog"));
424 act->setLeftClickEvent();
429 act =
new Action(
"QUIT", _(
"Quit"));
430 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
435 act =
new Action(
"SHOWFLOOR", _(
"DEBUG: Show floor"));
436 act->setKeyEvent(
KeyState(KEYCODE_f,
'f'));
440 act =
new Action(
"SHOWBOXES", _(
"DEBUG: Show boxes"));
441 act->setKeyEvent(
KeyState(KEYCODE_b,
'b'));
445 }
else if (gameId ==
"life") {
446 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact"));
447 act->setLeftClickEvent();
452 act =
new Action(
"SKIPDLG", _(
"Skip dialog"));
453 act->setRightClickEvent();
459 act =
new Action(kStandardActionPause, _(
"Pause"));
460 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
465 act =
new Action(
"SAVE", _(
"Quick save"));
466 act->setKeyEvent(
KeyState(KEYCODE_s,
's'));
471 act =
new Action(
"LOAD", _(
"Quick load"));
472 act->setKeyEvent(
KeyState(KEYCODE_l,
'l'));
477 }
else if (gameId ==
"mandy") {
478 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact"));
479 act->setLeftClickEvent();
484 act =
new Action(kStandardActionRightClick, _(
"Skip dialog"));
485 act->setRightClickEvent();
490 act =
new Action(kStandardActionPause, _(
"Pause"));
491 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
496 act =
new Action(
"SAVE", _(
"Quick save"));
497 act->setKeyEvent(
KeyState(KEYCODE_s,
's'));
502 act =
new Action(
"LOAD", _(
"Quick load"));
503 act->setKeyEvent(
KeyState(KEYCODE_l,
'l'));
509 }
else if (gameId ==
"nsc") {
510 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact / Skip dialog"));
511 act->setLeftClickEvent();
516 act =
new Action(kStandardActionRightClick, _(
"Inventory / Skip dialog"));
517 act->setRightClickEvent();
522 act =
new Action(kStandardActionPause, _(
"Pause / Skip cutscene"));
523 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
528 }
else if (gameId ==
"verbcoin") {
529 act =
new Action(kStandardActionLeftClick, _(
"Move / Interact"));
530 act->setLeftClickEvent();
535 act =
new Action(kStandardActionRightClick, _(
"Skip dialog"));
536 act->setRightClickEvent();
541 act =
new Action(
"QUIT", _(
"Quit"));
542 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
547 act =
new Action(
"SHOWBOXES", _(
"DEBUG: Show boxes"));
548 act->setKeyEvent(
KeyState(KEYCODE_SPACE, ASCII_SPACE));
552 act =
new Action(
"SHOWFLOOR", _(
"DEBUG: Show floor"));
553 act->setKeyEvent(
KeyState(KEYCODE_f,
'f'));
559 warning(
"Game-specific keymap is not defined. Using default SLUDGE engine keymap");
561 act =
new Action(kStandardActionLeftClick, _(
"Left click"));
562 act->setLeftClickEvent();
567 act =
new Action(kStandardActionRightClick, _(
"Right click"));
568 act->setRightClickEvent();
573 act =
new Action(kStandardActionPause, _(
"Pause game"));
574 act->setKeyEvent(
KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
580 act =
new Action(kStandardActionLeftClick, _(
"Left click"));
581 act->setLeftClickEvent();
586 act =
new Action(kStandardActionRightClick, _(
"Right click"));
587 act->setRightClickEvent();
593 keyMaps[0] = gameKeyMap;
594 keyMaps[1] = debugKeyMap;
595 keyMaps[2] = menuKeymap;
596 keyMaps[3] = minigameKeymap;
598 menuKeymap->setEnabled(
false);
void warning(MSVC_PRINTF const char *s,...) GCC_PRINTF(1
void addAction(Action *action)
A set of well known keymapper actions.
void addDefaultInputMapping(const String &hwId)
Definition: algorithm.h:29
Definition: keyboard.h:294