[Scummvm-cvs-logs] scummvm master -> a9bb8c3a50c49b27c1235599ca169390aad959e7

m-kiewitz m_kiewitz at users.sourceforge.net
Wed Feb 3 08:28:42 CET 2016


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:
a9bb8c3a50 AGI: Message box mouse support


Commit: a9bb8c3a50c49b27c1235599ca169390aad959e7
    https://github.com/scummvm/scummvm/commit/a9bb8c3a50c49b27c1235599ca169390aad959e7
Author: Martin Kiewitz (m_kiewitz at users.sourceforge.net)
Date: 2016-02-03T08:27:44+01:00

Commit Message:
AGI: Message box mouse support

Changed paths:
    engines/agi/keyboard.cpp
    engines/agi/text.cpp



diff --git a/engines/agi/keyboard.cpp b/engines/agi/keyboard.cpp
index 169c294..5ef6dd2 100644
--- a/engines/agi/keyboard.cpp
+++ b/engines/agi/keyboard.cpp
@@ -340,13 +340,16 @@ bool AgiEngine::handleMouseClicks(uint16 &key) {
 		case CYCLE_INNERLOOP_INVENTORY:
 			// TODO: forward
 			break;
+
 		case CYCLE_INNERLOOP_MENU_VIA_KEYBOARD:
 			_menu->mouseEvent(key);
 			key = 0; // eat event
 			break;
+
 		case CYCLE_INNERLOOP_SYSTEMUI_SELECTSAVEDGAMESLOT:
 			// TODO: forward
 			break;
+
 		default:
 			break;
 		}
diff --git a/engines/agi/text.cpp b/engines/agi/text.cpp
index 135d05e..691c0ae 100644
--- a/engines/agi/text.cpp
+++ b/engines/agi/text.cpp
@@ -392,6 +392,24 @@ void TextMgr::messageBox_KeyPress(uint16 newKey) {
 		_messageBoxCancelled = true;
 		_vm->cycleInnerLoopInactive(); // exit messagebox-loop
 		break;
+	case AGI_MOUSE_BUTTON_LEFT: {
+		// Find out, where current mouse cursor actually is
+		int16 mouseY = _vm->_mouse.pos.y;
+		int16 mouseX = _vm->_mouse.pos.x;
+
+		_vm->adjustPosToGameScreen(mouseX, mouseY);
+
+		// Check, if mouse cursor is within message box
+		// If it is, take the click as ENTER.
+		// That's what AGI on Amiga + Apple IIgs did.
+		// On Atari ST at least via emulator it seems that the mouse cursor froze when messageboxes were diplayed.
+		if ((mouseX >= _messageState.backgroundPos_x) && (mouseX <= (_messageState.backgroundPos_x + _messageState.backgroundSize_Width))) {
+			if ((mouseY >= _messageState.backgroundPos_y - _messageState.backgroundSize_Height) && (mouseY <= (_messageState.backgroundPos_y))) {
+				_vm->cycleInnerLoopInactive(); // exit messagebox-loop
+			}
+		}
+		break;
+	}
 	default:
 		break;
 	}






More information about the Scummvm-git-logs mailing list