diff options
| author | Sven Hesse | 2007-04-16 05:05:35 +0000 | 
|---|---|---|
| committer | Sven Hesse | 2007-04-16 05:05:35 +0000 | 
| commit | bdadeb13132f0965a1aba8deeb0608bf2fb57449 (patch) | |
| tree | 97ecb6263477dd3545b7cc9921f18ec899f36bee | |
| parent | bd69261cf556e89e6c4fe9586673697818d352b4 (diff) | |
| download | scummvm-rg350-bdadeb13132f0965a1aba8deeb0608bf2fb57449.tar.gz scummvm-rg350-bdadeb13132f0965a1aba8deeb0608bf2fb57449.tar.bz2 scummvm-rg350-bdadeb13132f0965a1aba8deeb0608bf2fb57449.zip | |
Mouse button presses shouldn't repeat. Fixes "cut-scene" after the idol part in Gob3 Amiga
svn-id: r26523
| -rw-r--r-- | engines/gob/inter_v1.cpp | 1 | ||||
| -rw-r--r-- | engines/gob/util.cpp | 5 | ||||
| -rw-r--r-- | engines/gob/util.h | 2 | 
3 files changed, 6 insertions, 2 deletions
| diff --git a/engines/gob/inter_v1.cpp b/engines/gob/inter_v1.cpp index b1bf04045f..5ac605e301 100644 --- a/engines/gob/inter_v1.cpp +++ b/engines/gob/inter_v1.cpp @@ -1656,6 +1656,7 @@ bool Inter_v1::o1_keyFunc(OpFuncParams ¶ms) {  		break;  	case 1: +		_vm->_util->forceMouseUp(true);  		key = _vm->_game->checkKeys(&_vm->_global->_inter_mouseX,  				&_vm->_global->_inter_mouseY, &_vm->_game->_mouseButtons, 0);  		storeKey(key); diff --git a/engines/gob/util.cpp b/engines/gob/util.cpp index 00665acb96..c0a0ecbf65 100644 --- a/engines/gob/util.cpp +++ b/engines/gob/util.cpp @@ -261,7 +261,10 @@ void Util::waitMouseRelease(char drawMouse) {  	} while (buttons != 0);  } -void Util::forceMouseUp(void) { +void Util::forceMouseUp(bool onlyWhenSynced) { +	if (onlyWhenSynced && (_vm->_game->_mouseButtons != _mouseButtons)) +		return; +  	_vm->_game->_mouseButtons = 0;  	_mouseButtons = 0;  } diff --git a/engines/gob/util.h b/engines/gob/util.h index ca9042598c..e6145fcde7 100644 --- a/engines/gob/util.h +++ b/engines/gob/util.h @@ -64,7 +64,7 @@ public:  	void waitMouseUp(void);  	void waitMouseDown(void);  	void waitMouseRelease(char drawMouse); -	void forceMouseUp(void); +	void forceMouseUp(bool onlyWhenSynced = false);  	void clearPalette(void);  	void setFrameRate(int16 rate); | 
