mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-03 16:58:26 +00:00
COMPOSER: Add keymapper support
This commit is contained in:
parent
5477ef5116
commit
3587b96876
@ -209,16 +209,6 @@ Common::Error ComposerEngine::run() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Common::EVENT_KEYDOWN:
|
case Common::EVENT_KEYDOWN:
|
||||||
switch (event.kbd.keycode) {
|
|
||||||
case Common::KEYCODE_q:
|
|
||||||
if (event.kbd.hasFlags(Common::KBD_CTRL))
|
|
||||||
quitGame();
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
onKeyDown(event.kbd.keycode);
|
onKeyDown(event.kbd.keycode);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -25,6 +25,12 @@
|
|||||||
#include "common/str-array.h"
|
#include "common/str-array.h"
|
||||||
#include "engines/advancedDetector.h"
|
#include "engines/advancedDetector.h"
|
||||||
|
|
||||||
|
#include "common/translation.h"
|
||||||
|
|
||||||
|
#include "backends/keymapper/action.h"
|
||||||
|
#include "backends/keymapper/keymapper.h"
|
||||||
|
#include "backends/keymapper/standard-actions.h"
|
||||||
|
|
||||||
#include "composer/composer.h"
|
#include "composer/composer.h"
|
||||||
#include "composer/detection.h"
|
#include "composer/detection.h"
|
||||||
|
|
||||||
@ -73,6 +79,8 @@ public:
|
|||||||
Common::Error createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const override;
|
Common::Error createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const override;
|
||||||
bool hasFeature(MetaEngineFeature f) const override;
|
bool hasFeature(MetaEngineFeature f) const override;
|
||||||
|
|
||||||
|
Common::KeymapArray initKeymaps(const char *target) const override;
|
||||||
|
|
||||||
int getMaximumSaveSlot() const override;
|
int getMaximumSaveSlot() const override;
|
||||||
SaveStateList listSaves(const char* target) const override;
|
SaveStateList listSaves(const char* target) const override;
|
||||||
Common::String getSavegameFile(int saveGameIdx, const char *target) const override {
|
Common::String getSavegameFile(int saveGameIdx, const char *target) const override {
|
||||||
@ -94,6 +102,36 @@ bool ComposerMetaEngine::hasFeature(MetaEngineFeature f) const {
|
|||||||
return ((f == kSupportsListSaves) || (f == kSupportsLoadingDuringStartup));
|
return ((f == kSupportsListSaves) || (f == kSupportsLoadingDuringStartup));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Common::KeymapArray ComposerMetaEngine::initKeymaps(const char *target) const {
|
||||||
|
using namespace Common;
|
||||||
|
using namespace Composer;
|
||||||
|
|
||||||
|
Keymap *engineKeyMap = new Keymap(Keymap::kKeymapTypeGame, "composer-main", "COMPOSER main");
|
||||||
|
|
||||||
|
Action *act;
|
||||||
|
|
||||||
|
act = new Action(kStandardActionLeftClick, _("Left Click"));
|
||||||
|
act->setLeftClickEvent();
|
||||||
|
act->addDefaultInputMapping("MOUSE_LEFT");
|
||||||
|
act->addDefaultInputMapping("JOY_A");
|
||||||
|
engineKeyMap->addAction(act);
|
||||||
|
|
||||||
|
act = new Action(kStandardActionRightClick, _("Right Click"));
|
||||||
|
act->setRightClickEvent();
|
||||||
|
act->addDefaultInputMapping("MOUSE_RIGHT");
|
||||||
|
act->addDefaultInputMapping("JOY_B");
|
||||||
|
engineKeyMap->addAction(act);
|
||||||
|
|
||||||
|
act = new Action(kStandardActionSkip, _("Skip"));
|
||||||
|
act->setKeyEvent(KeyState(KEYCODE_ESCAPE, ASCII_ESCAPE));
|
||||||
|
act->addDefaultInputMapping("ESCAPE");
|
||||||
|
act->addDefaultInputMapping("JOY_Y");
|
||||||
|
act->allowKbdRepeats();
|
||||||
|
engineKeyMap->addAction(act);
|
||||||
|
|
||||||
|
return Keymap::arrayOf(engineKeyMap);
|
||||||
|
}
|
||||||
|
|
||||||
Common::String getSaveName(Common::InSaveFile *in) {
|
Common::String getSaveName(Common::InSaveFile *in) {
|
||||||
Common::Serializer ser(in, nullptr);
|
Common::Serializer ser(in, nullptr);
|
||||||
Common::String name;
|
Common::String name;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user