diff options
Diffstat (limited to 'engines/mohawk/riven_stack.cpp')
| -rw-r--r-- | engines/mohawk/riven_stack.cpp | 43 | 
1 files changed, 42 insertions, 1 deletions
| diff --git a/engines/mohawk/riven_stack.cpp b/engines/mohawk/riven_stack.cpp index c39464558c..6fa1b15ad5 100644 --- a/engines/mohawk/riven_stack.cpp +++ b/engines/mohawk/riven_stack.cpp @@ -36,7 +36,8 @@ namespace Mohawk {  RivenStack::RivenStack(MohawkEngine_Riven *vm, uint16 id) :  		_vm(vm), -		_id(id) { +		_id(id), +		_mouseIsDown(false) {  	loadResourceNames();  	loadCardIdMap();  	setCurrentStackVariable(); @@ -223,6 +224,46 @@ void RivenStack::installCardTimer() {  } +void RivenStack::onMouseDown(const Common::Point &mouse) { +	_mouseIsDown = true; +	_mousePosition = mouse; + +	if (_vm->getCard() && !_vm->_scriptMan->hasQueuedScripts()) { +		_mouseDragStartPosition = mouse; + +		RivenScriptPtr script = _vm->getCard()->onMouseDown(mouse); + +		if (!script->empty()) { +			_vm->_scriptMan->runScript(script, false); +		} +	} +} + +void RivenStack::onMouseUp(const Common::Point &mouse) { +	_mouseIsDown = false; +	_mousePosition = mouse; + +	if (_vm->getCard() && !_vm->_scriptMan->hasQueuedScripts()) { +		RivenScriptPtr script = _vm->getCard()->onMouseUp(mouse); + +		if (!script->empty()) { +			_vm->_scriptMan->runScript(script, false); +		} +	} +} + +void RivenStack::onMouseMove(const Common::Point &mouse) { +	_mousePosition = mouse; + +	if (_vm->getCard() && !_vm->_scriptMan->hasQueuedScripts()) { +		RivenScriptPtr script = _vm->getCard()->onMouseMove(mouse); + +		if (!script->empty()) { +			_vm->_scriptMan->runScript(script, false); +		} +	} +} +  RivenNameList::RivenNameList() {  } | 
