[Scummvm-git-logs] scummvm master -> 247074d92cb01d562ecd6e1cd3272a2b05f64419

bluegr noreply at scummvm.org
Tue Mar 8 01:23:55 UTC 2022


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:
247074d92c CHEWY: Fix regression when using items


Commit: 247074d92cb01d562ecd6e1cd3272a2b05f64419
    https://github.com/scummvm/scummvm/commit/247074d92cb01d562ecd6e1cd3272a2b05f64419
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-03-08T03:23:41+02:00

Commit Message:
CHEWY: Fix regression when using items

Changed paths:
    engines/chewy/dialogs/inventory.cpp
    engines/chewy/events.cpp
    engines/chewy/mouse.cpp
    engines/chewy/mouse.h


diff --git a/engines/chewy/dialogs/inventory.cpp b/engines/chewy/dialogs/inventory.cpp
index bbc623ef6db..7b85c457ee4 100644
--- a/engines/chewy/dialogs/inventory.cpp
+++ b/engines/chewy/dialogs/inventory.cpp
@@ -203,11 +203,11 @@ void Inventory::menu() {
 					break;
 
 				case 3:
-					g_events->_kbInfo._keyCode = Common::KEYCODE_PAGEUP;
+					_G(in)->_hotkey = Common::KEYCODE_PAGEUP;
 					break;
 
 				case 4:
-					g_events->_kbInfo._keyCode = Common::KEYCODE_PAGEDOWN;
+					_G(in)->_hotkey = Common::KEYCODE_PAGEDOWN;
 					break;
 
 				case 5:
@@ -247,7 +247,8 @@ void Inventory::menu() {
 			}
 		} else if (_G(minfo)._button == 2 || g_events->_kbInfo._keyCode == Common::KEYCODE_ESCAPE) {
 			if (!mouseFl) {
-				g_events->_kbInfo._keyCode = Common::KEYCODE_ESCAPE;
+				// Set virtual key
+				_G(in)->_hotkey = Common::KEYCODE_ESCAPE;
 				mouseFl = true;
 			}
 		}
@@ -466,6 +467,11 @@ int16 Inventory::look(int16 invent_nr, int16 mode, int16 ats_nr) {
 		}
 
 		switch (g_events->_kbInfo._scanCode) {
+		case Common::KEYCODE_F1:
+		case Common::KEYCODE_F2:
+			_G(in)->_hotkey = g_events->_kbInfo._scanCode;
+			break;
+
 		case Common::KEYCODE_ESCAPE:
 			endLoop = true;
 			break;
@@ -484,6 +490,7 @@ int16 Inventory::look(int16 invent_nr, int16 mode, int16 ats_nr) {
 			break;
 		}
 
+		g_events->_kbInfo._scanCode = Common::KEYCODE_INVALID;
 		setupScreen(NO_SETUP);
 		plot_menu();
 		_G(fontMgr)->setFont(_G(font8));
diff --git a/engines/chewy/events.cpp b/engines/chewy/events.cpp
index 130d81e553e..a3370bcda20 100644
--- a/engines/chewy/events.cpp
+++ b/engines/chewy/events.cpp
@@ -194,7 +194,6 @@ void EventsManager::processEvents() {
 		case Common::EVENT_RETURN_TO_LAUNCHER:
 			return;
 
-		case Common::EVENT_KEYDOWN:
 		case Common::EVENT_KEYUP:
 			MOUSE_MOVE;
 			handleEvent(e);
@@ -247,7 +246,7 @@ char getch() {
 		g_events->update();
 
 		while (!g_system->getEventManager()->pollEvent(e) && !SHOULD_QUIT) {
-			if (e.type == Common::EVENT_KEYDOWN)
+			if (e.type == Common::EVENT_KEYUP)
 				return e.kbd.ascii;
 		}
 	}
diff --git a/engines/chewy/mouse.cpp b/engines/chewy/mouse.cpp
index fa1ed05713a..daf89694506 100644
--- a/engines/chewy/mouse.cpp
+++ b/engines/chewy/mouse.cpp
@@ -57,6 +57,12 @@ int16 InputMgr::getSwitchCode() {
 	if (g_events->_kbInfo._keyCode != 0)
 		switch_code = (int16)g_events->_kbInfo._keyCode;
 
+	// Virtual key, set when an item is taken from the inventory
+	if (_hotkey != Common::KEYCODE_INVALID) {
+		switch_code = _hotkey;
+		_hotkey = Common::KEYCODE_INVALID;
+	}
+
 	return switch_code;
 }
 
diff --git a/engines/chewy/mouse.h b/engines/chewy/mouse.h
index 1fad6e4a867..c39a4c77921 100644
--- a/engines/chewy/mouse.h
+++ b/engines/chewy/mouse.h
@@ -36,6 +36,8 @@ public:
 	int16 mouseVector(int16 x, int16 y, const int16 *tbl, int16 nr);
 
 	int16 getSwitchCode();
+
+	int16 _hotkey = Common::KEYCODE_INVALID;
 };
 
 } // namespace Chewy




More information about the Scummvm-git-logs mailing list