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

OMGPizzaGuy noreply at scummvm.org
Thu Aug 8 03:39:01 UTC 2024


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

Summary:
e2bbef55b3 ULTIMA8 Move keybinding action handers to engine.


Commit: e2bbef55b3071992ec1236102c0ecf765fe2dd72
    https://github.com/scummvm/scummvm/commit/e2bbef55b3071992ec1236102c0ecf765fe2dd72
Author: Matthew Jimenez (matthew.jimenez at outlook.com)
Date: 2024-08-07T22:38:44-05:00

Commit Message:
ULTIMA8 Move keybinding action handers to engine.
The engine still uses the debugger commands, but they can be transitioned in sections if desired.

Changed paths:
    engines/ultima/ultima8/metaengine.cpp
    engines/ultima/ultima8/metaengine.h
    engines/ultima/ultima8/ultima8.cpp
    engines/ultima/ultima8/ultima8.h


diff --git a/engines/ultima/ultima8/metaengine.cpp b/engines/ultima/ultima8/metaengine.cpp
index 7631b31f96c..b16f6ff6bcf 100644
--- a/engines/ultima/ultima8/metaengine.cpp
+++ b/engines/ultima/ultima8/metaengine.cpp
@@ -210,18 +210,6 @@ Common::KeymapArray MetaEngine::initKeymaps(const Common::String &gameId) {
 	return keymapArray;
 }
 
-void MetaEngine::pressAction(KeybindingAction keyAction) {
-	Common::String methodName = getMethod(keyAction, true);
-	if (!methodName.empty())
-		g_debugger->executeCommand(methodName);
-}
-
-void MetaEngine::releaseAction(KeybindingAction keyAction) {
-	Common::String methodName = getMethod(keyAction, false);
-	if (!methodName.empty())
-		g_debugger->executeCommand(methodName);
-}
-
 Common::String MetaEngine::getMethod(KeybindingAction keyAction, bool isPress) {
 #ifdef RELEASE_BUILD
 	const KeybindingRecord *KEY_ARRAYS[] = { COMMON_KEYS, U8_KEYS, CRUSADER_KEYS, CHEAT_KEYS, nullptr };
diff --git a/engines/ultima/ultima8/metaengine.h b/engines/ultima/ultima8/metaengine.h
index d577cb9d9fb..bd0469d121b 100644
--- a/engines/ultima/ultima8/metaengine.h
+++ b/engines/ultima/ultima8/metaengine.h
@@ -57,12 +57,6 @@ enum KeybindingAction {
 };
 
 class MetaEngine {
-private:
-	/**
-	 * Get the method to execute
-	 */
-	static Common::String getMethod(KeybindingAction keyAction, bool isPress);
-
 public:
 	/**
 	 * Initialize keymaps
@@ -70,14 +64,9 @@ public:
 	static Common::KeymapArray initKeymaps(const Common::String &gameId);
 
 	/**
-	 * Execute an engine keymap press action
-	 */
-	static void pressAction(KeybindingAction keyAction);
-
-	/**
-	 * Execute an engine keymap release action
+	 * Get the method to execute
 	 */
-	static void releaseAction(KeybindingAction keyAction);
+	static Common::String getMethod(KeybindingAction keyAction, bool isPress);
 
 	/**
 	 * Return meta information from the specified save state for saves that do not have ExtendedSavegameHeader
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index d9c2c75ab55..20f16e33ae2 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -848,11 +848,11 @@ void Ultima8Engine::handleEvent(const Common::Event &event) {
 	}
 
 	case Common::EVENT_CUSTOM_ENGINE_ACTION_START:
-		MetaEngine::pressAction((KeybindingAction)event.customType);
+		handleActionDown((KeybindingAction)event.customType);
 		break;
 
 	case Common::EVENT_CUSTOM_ENGINE_ACTION_END:
-		MetaEngine::releaseAction((KeybindingAction)event.customType);
+		handleActionUp((KeybindingAction)event.customType);
 		break;
 
 	case Common::EVENT_QUIT:
@@ -871,6 +871,18 @@ void Ultima8Engine::handleDelayedEvents() {
 	_mouse->handleDelayedEvents();
 }
 
+void Ultima8Engine::handleActionDown(KeybindingAction action) {
+	Common::String methodName = MetaEngine::getMethod(action, true);
+	if (!methodName.empty())
+		g_debugger->executeCommand(methodName);
+}
+
+void Ultima8Engine::handleActionUp(KeybindingAction action) {
+	Common::String methodName = MetaEngine::getMethod(action, false);
+	if (!methodName.empty())
+		g_debugger->executeCommand(methodName);
+}
+
 void Ultima8Engine::writeSaveInfo(Common::WriteStream *ws) {
 	TimeDate timeInfo;
 	g_system->getTimeAndDate(timeInfo);
diff --git a/engines/ultima/ultima8/ultima8.h b/engines/ultima/ultima8/ultima8.h
index 3062b85b117..97566e1a7ea 100644
--- a/engines/ultima/ultima8/ultima8.h
+++ b/engines/ultima/ultima8/ultima8.h
@@ -32,6 +32,7 @@
 #include "ultima/ultima8/misc/common_types.h"
 #include "ultima/ultima8/games/game_info.h"
 #include "ultima/ultima8/gfx/render_surface.h"
+#include "ultima/ultima8/metaengine.h"
 #include "ultima/detection.h"
 
 namespace Ultima {
@@ -197,6 +198,9 @@ public:
 	Common::Error runGame();
 	virtual void handleEvent(const Common::Event &event);
 
+	void handleActionDown(KeybindingAction action);
+	void handleActionUp(KeybindingAction action);
+
 	void paint();
 
 	static const int U8_DEFAULT_SCREEN_WIDTH = 320;




More information about the Scummvm-git-logs mailing list