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

dreammaster paulfgilbert at gmail.com
Sat Apr 11 03:30:20 UTC 2020


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:
4d71cf2635 ULTIMA4: Fix key entry with modifier keys
c9f90b23ce ULTIMA4: Faster exit quitting during intro sequence


Commit: 4d71cf2635544ae9a88dcb5e0db88edc53345acf
    https://github.com/scummvm/scummvm/commit/4d71cf2635544ae9a88dcb5e0db88edc53345acf
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-04-10T20:25:46-07:00

Commit Message:
ULTIMA4: Fix key entry with modifier keys

Changed paths:
    engines/ultima/ultima4/events/event.cpp
    engines/ultima/ultima4/events/event.h
    engines/ultima/ultima4/events/event_scummvm.cpp


diff --git a/engines/ultima/ultima4/events/event.cpp b/engines/ultima/ultima4/events/event.cpp
index 1490381c3b..94cbcee84c 100644
--- a/engines/ultima/ultima4/events/event.cpp
+++ b/engines/ultima/ultima4/events/event.cpp
@@ -147,13 +147,10 @@ ReadStringController::ReadStringController(int maxlen, TextView *view, const Com
 }
 
 bool ReadStringController::keyPressed(int key) {
-	int valid = true,
-	    len = _value.size();
+	int valid = true, len = _value.size();
 	size_t pos = Common::String::npos;
 
-#ifdef TODO
 	if (key < U4_ALT)
-#endif
 		pos = _accepted.findFirstOf(key);
 
 	if (pos != Common::String::npos) {
diff --git a/engines/ultima/ultima4/events/event.h b/engines/ultima/ultima4/events/event.h
index b8bc530e81..fd44a2aca0 100644
--- a/engines/ultima/ultima4/events/event.h
+++ b/engines/ultima/ultima4/events/event.h
@@ -46,17 +46,17 @@ namespace Ultima4 {
 #define U4_ESC          27
 #define U4_ENTER        13
 #define U4_ALT          128
-#define U4_KEYPAD_ENTER 271
+#define U4_KEYPAD_ENTER Common::KEYCODE_KP_ENTER
 #define U4_META         323
 #define U4_FKEY         282
-#define U4_RIGHT_SHIFT  303
-#define U4_LEFT_SHIFT   304
-#define U4_RIGHT_CTRL   305
-#define U4_LEFT_CTRL    306
-#define U4_RIGHT_ALT    307
-#define U4_LEFT_ALT     308
-#define U4_RIGHT_META   309
-#define U4_LEFT_META    310
+#define U4_RIGHT_SHIFT  Common::KEYCODE_RSHIFT
+#define U4_LEFT_SHIFT   Common::KEYCODE_LSHIFT
+#define U4_RIGHT_CTRL   Common::KEYCODE_RCTRL
+#define U4_LEFT_CTRL    Common::KEYCODE_LCTRL
+#define U4_RIGHT_ALT    Common::KEYCODE_RALT
+#define U4_LEFT_ALT     Common::KEYCODE_LALT
+#define U4_RIGHT_META   Common::KEYCODE_RMETA
+#define U4_LEFT_META    Common::KEYCODE_LMETA
 
 struct MouseArea;
 class EventHandler;
diff --git a/engines/ultima/ultima4/events/event_scummvm.cpp b/engines/ultima/ultima4/events/event_scummvm.cpp
index 10db18268e..26f55e4b45 100644
--- a/engines/ultima/ultima4/events/event_scummvm.cpp
+++ b/engines/ultima/ultima4/events/event_scummvm.cpp
@@ -176,14 +176,8 @@ static void handleMouseButtonDownEvent(const Common::Event &event, Controller *c
 }
 
 static void handleKeyDownEvent(const Common::Event &event, Controller *controller, updateScreenCallback updateScreen) {
-	int processed;
-	int key = event.kbd.keycode;
-
-	if (event.kbd.flags & Common::KBD_ALT)
-		key += U4_ALT;
-
-	if (event.kbd.flags & Common::KBD_META)
-		key += U4_META;
+	int key;
+	bool processed;
 
 	if (event.kbd.keycode == Common::KEYCODE_UP)
 		key = U4_UP;
@@ -196,6 +190,17 @@ static void handleKeyDownEvent(const Common::Event &event, Controller *controlle
 	else if (event.kbd.keycode == Common::KEYCODE_BACKSPACE ||
 	         event.kbd.keycode == Common::KEYCODE_DELETE)
 		key = U4_BACKSPACE;
+	else {
+		key = event.kbd.ascii;
+		if (!key)
+			return;
+
+		if (event.kbd.flags & Common::KBD_ALT)
+			key += U4_ALT;
+
+		if (event.kbd.flags & Common::KBD_META)
+			key += U4_META;
+	}
 
 	debug(1, "key event: sym = %d, mod = %d; translated = %d",
 		    event.kbd.keycode,  event.kbd.flags,  key);
@@ -208,7 +213,6 @@ static void handleKeyDownEvent(const Common::Event &event, Controller *controlle
 			(*updateScreen)();
 		g_screen->update();
 	}
-
 }
 
 void EventHandler::sleep(unsigned int msec) {


Commit: c9f90b23ceebabe6dab7523626f5bea379091a85
    https://github.com/scummvm/scummvm/commit/c9f90b23ceebabe6dab7523626f5bea379091a85
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-04-10T20:30:03-07:00

Commit Message:
ULTIMA4: Faster exit quitting during intro sequence

Changed paths:
    engines/ultima/ultima4/game/intro.cpp


diff --git a/engines/ultima/ultima4/game/intro.cpp b/engines/ultima/ultima4/game/intro.cpp
index db805ee5d2..3694bc6bb7 100644
--- a/engines/ultima/ultima4/game/intro.cpp
+++ b/engines/ultima/ultima4/game/intro.cpp
@@ -756,7 +756,7 @@ void IntroController::showStory() {
 
 	_questionArea.setCursorFollowsText(true);
 
-	for (int storyInd = 0; storyInd < 24; storyInd++) {
+	for (int storyInd = 0; storyInd < 24 && !g_ultima->shouldQuit(); storyInd++) {
 		if (storyInd == 0)
 			_backgroundArea.draw(BKGD_TREE);
 		else if (storyInd == 3)




More information about the Scummvm-git-logs mailing list