[Scummvm-git-logs] scummvm master -> 43babaeef8ff385b1f10be1c2fa917085afd2f88

bgK bastien.bouclet at gmail.com
Fri May 18 19:27:36 CEST 2018


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:
43babaeef8 MOHAWK: RIVEN: Always release the prison combination buttons


Commit: 43babaeef8ff385b1f10be1c2fa917085afd2f88
    https://github.com/scummvm/scummvm/commit/43babaeef8ff385b1f10be1c2fa917085afd2f88
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2018-05-18T19:28:27+02:00

Commit Message:
MOHAWK: RIVEN: Always release the prison combination buttons

Fixes Trac#10525.

Changed paths:
    engines/mohawk/riven_stacks/pspit.cpp


diff --git a/engines/mohawk/riven_stacks/pspit.cpp b/engines/mohawk/riven_stacks/pspit.cpp
index 37d159f..3c8b430 100644
--- a/engines/mohawk/riven_stacks/pspit.cpp
+++ b/engines/mohawk/riven_stacks/pspit.cpp
@@ -87,6 +87,19 @@ void PSpit::xpisland990_elevcombo(const ArgumentArray &args) {
 	_vm->delay(500);
 	_vm->_cursor->showCursor();
 
+	// If the user released the mouse button during the wait time, the mouse up event
+	// is not forwarded to the game script handler. The button appears to be down
+	// until the user moves the mouse outside of the button hotspot.
+	// This happens with the original engine as well.
+	// To work around this issue we run the mouse up script if the mouse is not
+	// pressed anymore at this point.
+	if (!mouseIsDown()) {
+		Common::String buttonName = Common::String::format("combo%d", args[0]);
+		RivenHotspot *button = _vm->getCard()->getHotspotByName(buttonName);
+		RivenScriptPtr mouseUpScript = button->getScript(kMouseUpScript);
+		_vm->_scriptMan->runScript(mouseUpScript, false);
+	}
+
 	// It is impossible to get here if Gehn is not trapped. However,
 	// the original also disallows brute forcing the ending if you have
 	// not yet trapped Gehn.





More information about the Scummvm-git-logs mailing list