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

bluegr noreply at scummvm.org
Tue Dec 24 09:49:59 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:
a8724b7bc1 ULTIMA: Nuvie Keymap Fixes


Commit: a8724b7bc10e676f2ea11a42fa38012d5e7aaa19
    https://github.com/scummvm/scummvm/commit/a8724b7bc10e676f2ea11a42fa38012d5e7aaa19
Author: malignantmanor (malignantmanor at users.noreply.github.com)
Date: 2024-12-24T11:49:55+02:00

Commit Message:
ULTIMA: Nuvie Keymap Fixes

-Change keymap modifier from Win to Alt or Ctrl
-Fix shift not being recognized as a modifier
-Allow TELEPORT_TO_CURSOR to repeat

Changed paths:
    engines/ultima/nuvie/keybinding/keys.cpp
    engines/ultima/nuvie/metaengine.cpp


diff --git a/engines/ultima/nuvie/keybinding/keys.cpp b/engines/ultima/nuvie/keybinding/keys.cpp
index 70dd6ca1a0b..18503a680ec 100644
--- a/engines/ultima/nuvie/keybinding/keys.cpp
+++ b/engines/ultima/nuvie/keybinding/keys.cpp
@@ -424,9 +424,10 @@ bool KeyBinder::HandleEvent(const Common::Event *ev) {
 	KeyMap::iterator sdlkey_index = get_sdlkey_index(key);
 	if (sdlkey_index != _bindings.end())
 		return DoAction((*sdlkey_index)._value);
-
+	// Avoid modifier keys being detected as invalid input
 	if (ev->kbd.keycode != Common::KEYCODE_LALT && ev->kbd.keycode != Common::KEYCODE_RALT
-	        && ev->kbd.keycode != Common::KEYCODE_LCTRL && ev->kbd.keycode != Common::KEYCODE_RCTRL) {
+	        && ev->kbd.keycode != Common::KEYCODE_LCTRL && ev->kbd.keycode != Common::KEYCODE_RCTRL
+	        && ev->kbd.keycode != Common::KEYCODE_LSHIFT && ev->kbd.keycode != Common::KEYCODE_RSHIFT) {
 		handle_wrong_key_pressed();
 	}
 
diff --git a/engines/ultima/nuvie/metaengine.cpp b/engines/ultima/nuvie/metaengine.cpp
index c0337e04e36..644837bcffd 100644
--- a/engines/ultima/nuvie/metaengine.cpp
+++ b/engines/ultima/nuvie/metaengine.cpp
@@ -123,14 +123,14 @@ static const NuvieActionDescription NuvieActionDescriptions[] = {
 static const NuvieActionDescription CheatKeyDescriptions[] = {
 	{ "ASSET_VIEWER", "Open the asset viewer", nullptr, nullptr },
 	{ "SHOW_EGGS", "Show eggs", "e", nullptr },
-	{ "TOGGLE_HACKMOVE", "Toggle hack move", "M+h", nullptr },
-	{ "TOGGLE_EGG_SPAWN", "Toggle egg spawn", "M+C+e", nullptr },
-	{ "TOGGLE_NO_DARKNESS", "Toggle no darkness", "M+i", nullptr },
-	{ "TOGGLE_PICKPOCKET_MODE", "Toggle pickpocket mode", "M+C+p", nullptr },
-	{ "TOGGLE_GOD_MODE", "Toggle god mode", "M+C+g", nullptr },
-	{ "TOGGLE_ETHEREAL", "Toggle ethereal mode", "M+e", nullptr},
+	{ "TOGGLE_HACKMOVE", "Toggle hack move", "A+h", nullptr },
+	{ "TOGGLE_EGG_SPAWN", "Toggle egg spawn", "A+C+e", nullptr },
+	{ "TOGGLE_NO_DARKNESS", "Toggle no darkness", "A+i", nullptr },
+	{ "TOGGLE_PICKPOCKET_MODE", "Toggle pickpocket mode", "A+C+p", nullptr },
+	{ "TOGGLE_GOD_MODE", "Toggle god mode", "A+C+g", nullptr },
+	{ "TOGGLE_ETHEREAL", "Toggle ethereal mode", "A+e", nullptr},
 	{ "TOGGLE_X_RAY", "Toggle X-ray mode", "x", nullptr },
-	{ "HEAL_PARTY", "Heal party", "M+C+h", nullptr },
+	{ "HEAL_PARTY", "Heal party", "A+C+h", nullptr },
 	{ "TELEPORT_TO_CURSOR", "Teleport to cursor", "C+t", nullptr },
 	{ "TOGGLE_CHEATS", "Toggle cheats", "C+c", nullptr },
 };
@@ -163,26 +163,26 @@ static const NuvieActionDescription PerPartyMemberActionDescriptions[] {
 	{ "INVENTORY_7", "Show inventory for party member 7", "F7", nullptr },
 	{ "INVENTORY_8", "Show inventory for party member 8", "F8", nullptr },
 	{ "INVENTORY_9", "Show inventory for party member 9", "F9", nullptr },
-	{ "DOLL_GUMP_1", "Show doll gump for Avatar", "M+F1", nullptr },
-	{ "DOLL_GUMP_2", "Show doll gump for party member 2", "M+F2", nullptr },
-	{ "DOLL_GUMP_3", "Show doll gump for party member 3", "M+F3", nullptr },
-	{ "DOLL_GUMP_4", "Show doll gump for party member 4", "M+F4", nullptr },
-	{ "DOLL_GUMP_5", "Show doll gump for party member 5", "M+F5", nullptr },
-	{ "DOLL_GUMP_6", "Show doll gump for party member 6", "M+F6", nullptr },
-	{ "DOLL_GUMP_7", "Show doll gump for party member 7", "M+F7", nullptr },
-	{ "DOLL_GUMP_8", "Show doll gump for party member 8", "M+F8", nullptr },
-	{ "DOLL_GUMP_9", "Show doll gump for party member 9", "M+F9", nullptr },
+	{ "DOLL_GUMP_1", "Show doll gump for Avatar", "S+F1", nullptr },
+	{ "DOLL_GUMP_2", "Show doll gump for party member 2", "S+F2", nullptr },
+	{ "DOLL_GUMP_3", "Show doll gump for party member 3", "S+F3", nullptr },
+	{ "DOLL_GUMP_4", "Show doll gump for party member 4", "S+F4", nullptr },
+	{ "DOLL_GUMP_5", "Show doll gump for party member 5", "S+F5", nullptr },
+	{ "DOLL_GUMP_6", "Show doll gump for party member 6", "S+F6", nullptr },
+	{ "DOLL_GUMP_7", "Show doll gump for party member 7", "S+F7", nullptr },
+	{ "DOLL_GUMP_8", "Show doll gump for party member 8", "S+F8", nullptr },
+	{ "DOLL_GUMP_9", "Show doll gump for party member 9", "S+F9", nullptr },
 };
 
 static const NuvieActionDescription U6ActionDescriptions[] = {
 	{ "CAST", "Cast", "c", nullptr },
 	{ "REST", "Rest", "r", nullptr },
-	{ "TOGGLE_UNLIMITED_CASTING", "Toggle unlimited casting", "M+w", nullptr },
+	{ "TOGGLE_UNLIMITED_CASTING", "Toggle unlimited casting", "A+w", nullptr },
 };
 
 static const NuvieActionDescription SEActionDescriptions[] = {
 	{ "REST", "Rest", "r", nullptr },
-	{ "TOGGLE_UNLIMITED_CASTING", "Toggle unlimited casting", "M+w", nullptr },
+	{ "TOGGLE_UNLIMITED_CASTING", "Toggle unlimited casting", "A+w", nullptr },
 };
 
 
@@ -194,10 +194,10 @@ static Common::Action *actionDescriptionFromNuvieAction(const NuvieActionDescrip
 		act->addDefaultInputMapping(n._key1);
 	if (n._key2)
 		act->addDefaultInputMapping(n._key2);
-	// Allow WALK operations to repeat so holding the key lets you keep moving
+	// Allow WALK and TELEPORT_TO_CURSOR operations to repeat so holding the key lets you keep moving
 	// TODO: This would be nice to handle manually inside the event loop so
 	// non-keyboard inputs also work and we can control the repeat rate.
-	if (strncmp(n._id, "WALK", 4) == 0)
+	if (strncmp(n._id, "WALK", 4) == 0 || strncmp(n._id, "TELE", 4) == 0)
 		act->allowKbdRepeats();
 	return act;
 }




More information about the Scummvm-git-logs mailing list