[Scummvm-git-logs] scummvm master -> f1808988df932f9709d6721a5f31f585818af807

bluegr noreply at scummvm.org
Sun Jul 13 23:17:15 UTC 2025


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
f1808988df SWORD25: Add keymapper support


Commit: f1808988df932f9709d6721a5f31f585818af807
    https://github.com/scummvm/scummvm/commit/f1808988df932f9709d6721a5f31f585818af807
Author: aunnoman1 (aunnoman123 at outlook.com)
Date: 2025-07-14T02:17:13+03:00

Commit Message:
SWORD25: Add keymapper support

Changed paths:
    engines/sword25/metaengine.cpp


diff --git a/engines/sword25/metaengine.cpp b/engines/sword25/metaengine.cpp
index cf85ef02e71..11753d634d1 100644
--- a/engines/sword25/metaengine.cpp
+++ b/engines/sword25/metaengine.cpp
@@ -26,6 +26,10 @@
 #include "sword25/sword25.h"
 #include "sword25/kernel/persistenceservice.h"
 
+#include "backends/keymapper/action.h"
+#include "backends/keymapper/keymapper.h"
+#include "backends/keymapper/standard-actions.h"
+
 namespace Sword25 {
 
 static const ADExtraGuiOptionsMap optionsList[] = {
@@ -62,6 +66,8 @@ public:
 
 	int getMaximumSaveSlot() const override { return Sword25::PersistenceService::getSlotCount(); }
 	SaveStateList listSaves(const char *target) const override;
+
+	Common::KeymapArray initKeymaps(const char *target) const override;
 };
 
 Common::Error Sword25MetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
@@ -95,6 +101,41 @@ SaveStateList Sword25MetaEngine::listSaves(const char *target) const {
 	return saveList;
 }
 
+Common::KeymapArray Sword25MetaEngine::initKeymaps(const char *target) const {
+	using namespace Common;
+	using namespace Sword25;
+
+	Keymap *engineKeyMap = new Keymap(Keymap::kKeymapTypeGame, "sword25-default", _("Default keymappings"));
+
+	Action *act;
+
+	act = new Action(kStandardActionLeftClick, _("Move / Interact / Skip dialog"));
+	act->setLeftClickEvent();
+	act->addDefaultInputMapping("MOUSE_LEFT");
+	act->addDefaultInputMapping("JOY_A");
+	engineKeyMap->addAction(act);
+
+	act = new Action("SKIPDLG", _("Examine / Skip dialog"));
+	act->setRightClickEvent();
+	act->addDefaultInputMapping("MOUSE_RIGHT");
+	act->addDefaultInputMapping("JOY_B");
+	engineKeyMap->addAction(act);
+
+	act = new Action(kStandardActionPause, _("Pause"));
+	act->setKeyEvent(KeyState(KEYCODE_p, 'p'));
+	act->addDefaultInputMapping("p");
+	act->addDefaultInputMapping("JOY_X");
+	engineKeyMap->addAction(act);
+
+	act = new Action("REVEALHOTSPOTS", _("Reveal all interactive hotspots (hold the key)"));
+	act->setKeyEvent(KeyState(KEYCODE_SPACE, ASCII_SPACE));
+	act->addDefaultInputMapping("SPACE");
+	act->addDefaultInputMapping("JOY_Y");
+	engineKeyMap->addAction(act);
+	
+	return Keymap::arrayOf(engineKeyMap);
+}
+
 #if PLUGIN_ENABLED_DYNAMIC(SWORD25)
 	REGISTER_PLUGIN_DYNAMIC(SWORD25, PLUGIN_TYPE_ENGINE, Sword25MetaEngine);
 #else




More information about the Scummvm-git-logs mailing list