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

neuromancer noreply at scummvm.org
Mon Jan 1 11:46:20 UTC 2024


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

Summary:
826ab67ee7 FREESCAPE: improved keymap handling and added specific driller inputs
b578fcad27 FREESCAPE: added specific dark inputs


Commit: 826ab67ee790e3b9cf0e2ce9284dd13279f4efe2
    https://github.com/scummvm/scummvm/commit/826ab67ee790e3b9cf0e2ce9284dd13279f4efe2
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-01-01T12:43:47+01:00

Commit Message:
FREESCAPE: improved keymap handling and added specific driller inputs

Changed paths:
    engines/freescape/freescape.h
    engines/freescape/games/driller/driller.cpp
    engines/freescape/games/driller/driller.h
    engines/freescape/metaengine.cpp
    engines/freescape/movement.cpp


diff --git a/engines/freescape/freescape.h b/engines/freescape/freescape.h
index 78b4db50cea..db1f5b8d71b 100644
--- a/engines/freescape/freescape.h
+++ b/engines/freescape/freescape.h
@@ -236,7 +236,7 @@ public:
 	bool _shootMode;
 	bool _noClipMode;
 	bool _invertY;
-	static Common::Array<Common::Keymap *> initKeymaps(const char *target);
+	virtual void initKeymaps(Common::Keymap *engineKeyMap, const char *target);
 	void processInput();
 	void resetInput();
 	void generateDemoInput();
diff --git a/engines/freescape/games/driller/driller.cpp b/engines/freescape/games/driller/driller.cpp
index 1829afcdd1e..aab9d593efd 100644
--- a/engines/freescape/games/driller/driller.cpp
+++ b/engines/freescape/games/driller/driller.cpp
@@ -19,9 +19,14 @@
  *
  */
 
+
+#include "backends/keymapper/action.h"
+#include "backends/keymapper/keymap.h"
+#include "backends/keymapper/standard-actions.h"
 #include "common/config-manager.h"
 #include "common/events.h"
 #include "common/file.h"
+#include "common/translation.h"
 #include "common/random.h"
 
 #include "freescape/freescape.h"
@@ -94,6 +99,23 @@ DrillerEngine::~DrillerEngine() {
 	delete _drillBase;
 }
 
+void DrillerEngine::initKeymaps(Common::Keymap *engineKeyMap, const char *target) {
+	FreescapeEngine::initKeymaps(engineKeyMap, target);
+	Common::Action *act;
+
+	act = new Common::Action("DEPLOY", _("Deploy drilling rig"));
+	act->setKeyEvent(Common::KeyState(Common::KEYCODE_d, 'd'));
+	act->addDefaultInputMapping("JOY_LEFT_SHOULDER");
+	act->addDefaultInputMapping("d");
+	engineKeyMap->addAction(act);
+
+	act = new Common::Action("COLLECT", _("Collect drilling rig"));
+	act->setKeyEvent(Common::KeyState(Common::KEYCODE_c, 'c'));
+	act->addDefaultInputMapping("c");
+	act->addDefaultInputMapping("JOY_RIGHT_SHOULDER");
+	engineKeyMap->addAction(act);
+}
+
 void DrillerEngine::gotoArea(uint16 areaID, int entranceID) {
 	int prevAreaID = _currentArea ? _currentArea->getAreaID(): -1;
 	debugC(1, kFreescapeDebugMove, "Jumping to area: %d, entrance: %d", areaID, entranceID);
diff --git a/engines/freescape/games/driller/driller.h b/engines/freescape/games/driller/driller.h
index 92aa02bf590..1bd1d412b9c 100644
--- a/engines/freescape/games/driller/driller.h
+++ b/engines/freescape/games/driller/driller.h
@@ -38,6 +38,7 @@ public:
 	Common::HashMap<uint16, uint32> _drillMaxScoreByArea;
 	Common::HashMap<uint16, uint32> _drillSuccessByArea;
 
+	void initKeymaps(Common::Keymap *engineKeyMap, const char *target) override;
 	void initGameState() override;
 	bool checkIfGameEnded() override;
 
diff --git a/engines/freescape/metaengine.cpp b/engines/freescape/metaengine.cpp
index 8e6147915c0..b5f09fbacdc 100644
--- a/engines/freescape/metaengine.cpp
+++ b/engines/freescape/metaengine.cpp
@@ -20,6 +20,7 @@
  */
 
 #include "common/translation.h"
+#include "backends/keymapper/keymap.h"
 #include "graphics/thumbnail.h"
 #include "graphics/scaler.h"
 
@@ -143,7 +144,11 @@ Common::Error FreescapeMetaEngine::createInstance(OSystem *syst, Engine **engine
 }
 
 Common::KeymapArray FreescapeMetaEngine::initKeymaps(const char *target) const {
-	return Freescape::FreescapeEngine::initKeymaps(target);
+	Freescape::FreescapeEngine *engine = (Freescape::FreescapeEngine *)g_engine;
+	Common::Keymap *engineKeyMap = new Common::Keymap(Common::Keymap::kKeymapTypeGame, "freescape", "Freescape game");
+	if (engine)
+		engine->initKeymaps(engineKeyMap, target);
+	return Common::Keymap::arrayOf(engineKeyMap);
 }
 
 void FreescapeMetaEngine::getSavegameThumbnail(Graphics::Surface &thumb) {
diff --git a/engines/freescape/movement.cpp b/engines/freescape/movement.cpp
index f8dc10a1f24..feae7c1d984 100644
--- a/engines/freescape/movement.cpp
+++ b/engines/freescape/movement.cpp
@@ -29,8 +29,7 @@
 
 namespace Freescape {
 
-Common::Array<Common::Keymap *> FreescapeEngine::initKeymaps(const char *target) {
-	Common::Keymap *engineKeyMap = new Common::Keymap(Common::Keymap::kKeymapTypeGame, "freescape", "Freescape game");
+void FreescapeEngine::initKeymaps(Common::Keymap *engineKeyMap, const char *target) {
 	Common::Action *act;
 
 	act = new Common::Action(Common::kStandardActionMoveUp, _("Up"));
@@ -71,27 +70,30 @@ Common::Array<Common::Keymap *> FreescapeEngine::initKeymaps(const char *target)
 
 	act = new Common::Action("LOWER", _("Lower/Fly down"));
 	act->setKeyEvent(Common::KeyState(Common::KEYCODE_f, 'f'));
+	act->addDefaultInputMapping("JOY_Y");
 	engineKeyMap->addAction(act);
 
 	act = new Common::Action("SWITCH", _("Change mode"));
 	act->setKeyEvent(Common::KeyState(Common::KEYCODE_SPACE, Common::ASCII_SPACE));
+	act->addDefaultInputMapping("SPACE");
 	act->addDefaultInputMapping("JOY_X");
 	engineKeyMap->addAction(act);
 
 	act = new Common::Action("ROTL", _("Rotate Left"));
 	act->setKeyEvent(Common::KeyState(Common::KEYCODE_q, 'q'));
+	act->addDefaultInputMapping("q");
 	engineKeyMap->addAction(act);
 
 	act = new Common::Action("ROTR", _("Rotate Right"));
 	act->setKeyEvent(Common::KeyState(Common::KEYCODE_w, 'w'));
+	act->addDefaultInputMapping("w");
 	engineKeyMap->addAction(act);
 
 	act = new Common::Action("MENU", _("Info Menu"));
 	act->setKeyEvent(Common::KeyState(Common::KEYCODE_i, 'i'));
+	act->addDefaultInputMapping("i");
 	act->addDefaultInputMapping("JOY_GUIDE");
 	engineKeyMap->addAction(act);
-
-	return Common::Keymap::arrayOf(engineKeyMap);
 }
 
 Math::AABB createPlayerAABB(Math::Vector3d const position, int playerHeight) {


Commit: b578fcad274c90f445484c9fe5c23ec7a2c23307
    https://github.com/scummvm/scummvm/commit/b578fcad274c90f445484c9fe5c23ec7a2c23307
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-01-01T12:43:47+01:00

Commit Message:
FREESCAPE: added specific dark inputs

Changed paths:
    engines/freescape/games/dark/dark.cpp
    engines/freescape/games/dark/dark.h


diff --git a/engines/freescape/games/dark/dark.cpp b/engines/freescape/games/dark/dark.cpp
index ace1021c4b4..819e9dfd5cc 100644
--- a/engines/freescape/games/dark/dark.cpp
+++ b/engines/freescape/games/dark/dark.cpp
@@ -18,8 +18,11 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  */
-
+#include "backends/keymapper/action.h"
+#include "backends/keymapper/keymap.h"
+#include "backends/keymapper/standard-actions.h"
 #include "common/file.h"
+#include "common/translation.h"
 
 #include "freescape/freescape.h"
 #include "freescape/games/dark/dark.h"
@@ -156,6 +159,18 @@ bool DarkEngine::checkECD(uint16 areaID, int index) {
 	return !obj->isDestroyed();
 }
 
+void DarkEngine::initKeymaps(Common::Keymap *engineKeyMap, const char *target) {
+	FreescapeEngine::initKeymaps(engineKeyMap, target);
+	Common::Action *act;
+
+	act = new Common::Action("JETPACK", _("Enable/Disable Jetpack"));
+	act->setKeyEvent(Common::KeyState(Common::KEYCODE_j, 'j'));
+	act->addDefaultInputMapping("JOY_LEFT_SHOULDER");
+	act->addDefaultInputMapping("JOY_RIGHT_SHOULDER");
+	act->addDefaultInputMapping("j");
+	engineKeyMap->addAction(act);
+}
+
 void DarkEngine::initGameState() {
 	_flyMode = false;
 	_hasFallen = false;
diff --git a/engines/freescape/games/dark/dark.h b/engines/freescape/games/dark/dark.h
index 016eb317417..109141e6200 100644
--- a/engines/freescape/games/dark/dark.h
+++ b/engines/freescape/games/dark/dark.h
@@ -46,6 +46,7 @@ public:
 	uint32 _jetFuelSeconds;
 	void addSkanner(Area *area);
 
+	void initKeymaps(Common::Keymap *engineKeyMap, const char *target) override;
 	void initGameState() override;
 	void borderScreen() override;
 	bool checkIfGameEnded() override;




More information about the Scummvm-git-logs mailing list