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

dreammaster dreammaster at scummvm.org
Sat Nov 25 01:20:32 CET 2017


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:
e7c98ffda0 XEEN: Toggle UI buttons when hotkey is pressed


Commit: e7c98ffda0107af56435f8048d000c1cdc139bf6
    https://github.com/scummvm/scummvm/commit/e7c98ffda0107af56435f8048d000c1cdc139bf6
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-11-24T19:20:25-05:00

Commit Message:
XEEN: Toggle UI buttons when hotkey is pressed

Changed paths:
    engines/xeen/dialogs.cpp
    engines/xeen/dialogs_items.cpp


diff --git a/engines/xeen/dialogs.cpp b/engines/xeen/dialogs.cpp
index b890aa7..f1c1032 100644
--- a/engines/xeen/dialogs.cpp
+++ b/engines/xeen/dialogs.cpp
@@ -63,6 +63,7 @@ void ButtonContainer::addPartyButtons(XeenEngine *vm) {
 
 bool ButtonContainer::checkEvents(XeenEngine *vm) {
 	EventsManager &events = *vm->_events;
+	Screen &screen = *vm->_screen;
 	_buttonValue = 0;
 
 	if (events._leftButton) {
@@ -74,11 +75,11 @@ bool ButtonContainer::checkEvents(XeenEngine *vm) {
 				events.debounceMouse();
 
 				_buttonValue = _buttons[i]._value;
-				return true;
+				break;
 			}
 		}
 
-		if (Common::Rect(8, 8, 224, 135).contains(pt)) {
+		if (!_buttonValue && Common::Rect(8, 8, 224, 135).contains(pt)) {
 			_buttonValue = 1;
 			return true;
 		}
@@ -95,8 +96,35 @@ bool ButtonContainer::checkEvents(XeenEngine *vm) {
 			_buttonValue = Common::KEYCODE_RETURN;
 
 		_buttonValue |= (keyState.flags & ~Common::KBD_CAPS) << 16;
-		if (_buttonValue)
-			return true;
+	}
+
+	if (_buttonValue) {
+		// Check for a button matching the selected _buttonValue
+		Window &win = screen._windows[39];
+		for (uint btnIndex = 0; btnIndex < _buttons.size(); ++btnIndex) {
+			UIButton &btn = _buttons[btnIndex];
+			if (btn._draw && btn._value == _buttonValue) {
+				// Found the correct button
+				// Draw button depressed
+				btn._sprites->draw(screen, btnIndex * 2 + 1,
+					Common::Point(btn._bounds.left, btn._bounds.top));
+				win.setBounds(btn._bounds);
+				win.update();
+
+				// Slight delay
+				screen.update();
+				events.wait(4);
+
+				// Redraw button in it's original non-depressed form
+				btn._sprites->draw(screen, btnIndex * 2,
+					Common::Point(btn._bounds.left, btn._bounds.top));
+				win.setBounds(btn._bounds);
+				win.update();
+				break;
+			}
+		}
+
+		return true;
 	}
 
 	return false;
diff --git a/engines/xeen/dialogs_items.cpp b/engines/xeen/dialogs_items.cpp
index fa130da..5f0a2fe 100644
--- a/engines/xeen/dialogs_items.cpp
+++ b/engines/xeen/dialogs_items.cpp
@@ -466,13 +466,14 @@ Character *ItemsDialog::execute(Character *c, ItemsMode mode) {
 			}
 			break;
 
-		case Common::KEYCODE_n:
-			// Misc category
+		case Common::KEYCODE_m:
+			// Misc
 			category = CATEGORY_MISC;
 			redrawFlag = REDRAW_TEXT;
 			break;
 
 		case Common::KEYCODE_q:
+			// Quests
 			if (mode == ITEMMODE_CHAR_INFO) {
 				Quests::show(_vm);
 				redrawFlag = REDRAW_TEXT;





More information about the Scummvm-git-logs mailing list