diff options
Diffstat (limited to 'engines/gob')
| -rw-r--r-- | engines/gob/game.cpp | 9 | ||||
| -rw-r--r-- | engines/gob/game.h | 6 | ||||
| -rw-r--r-- | engines/gob/game_fascin.cpp | 8 | ||||
| -rw-r--r-- | engines/gob/game_v1.cpp | 16 | ||||
| -rw-r--r-- | engines/gob/game_v2.cpp | 14 | ||||
| -rw-r--r-- | engines/gob/game_v6.cpp | 14 | ||||
| -rw-r--r-- | engines/gob/inter.cpp | 2 | ||||
| -rw-r--r-- | engines/gob/inter_bargon.cpp | 4 | ||||
| -rw-r--r-- | engines/gob/util.cpp | 38 | ||||
| -rw-r--r-- | engines/gob/util.h | 13 | 
10 files changed, 67 insertions, 57 deletions
| diff --git a/engines/gob/game.cpp b/engines/gob/game.cpp index 5771ee9f76..f69b899ce1 100644 --- a/engines/gob/game.cpp +++ b/engines/gob/game.cpp @@ -29,7 +29,6 @@  #include "gob/game.h"  #include "gob/helper.h"  #include "gob/global.h" -#include "gob/util.h"  #include "gob/dataio.h"  #include "gob/variables.h"  #include "gob/script.h" @@ -186,7 +185,7 @@ Game::Game(GobEngine *vm) : _vm(vm) {  	_totToLoad[0] = 0;  	_startTimeKey = 0; -	_mouseButtons = 0; +	_mouseButtons = kMouseButtonsNone;  	_lastCollKey = 0;  	_lastCollAreaIndex = 0; @@ -349,7 +348,7 @@ void Game::evaluateScroll(int16 x, int16 y) {  }  int16 Game::checkKeys(int16 *pMouseX, int16 *pMouseY, -		int16 *pButtons, char handleMouse) { +		MouseButtons *pButtons, char handleMouse) {  	_vm->_util->processInput(true); @@ -373,8 +372,8 @@ int16 Game::checkKeys(int16 *pMouseX, int16 *pMouseY,  	if (pMouseX && pMouseY && pButtons) {  		_vm->_util->getMouseState(pMouseX, pMouseY, pButtons); -		if (*pButtons == 3) -			*pButtons = 0; +		if (*pButtons == kMouseButtonsBoth) +			*pButtons = kMouseButtonsNone;  	}  	return _vm->_util->checkKey(); diff --git a/engines/gob/game.h b/engines/gob/game.h index ead4a56492..eb579d44a4 100644 --- a/engines/gob/game.h +++ b/engines/gob/game.h @@ -26,6 +26,8 @@  #ifndef GOB_GAME_H  #define GOB_GAME_H +#include "gob/util.h" +  namespace Gob {  class Script; @@ -103,7 +105,7 @@ public:  	char _totToLoad[20];  	int32 _startTimeKey; -	int16 _mouseButtons; +	MouseButtons _mouseButtons;  	bool _noScroll;  	bool _preventScroll; @@ -122,7 +124,7 @@ public:  	void evaluateScroll(int16 x, int16 y);  	int16 checkKeys(int16 *pMousex = 0, int16 *pMouseY = 0, -			int16 *pButtons = 0, char handleMouse = 0); +			MouseButtons *pButtons = 0, char handleMouse = 0);  	void start(void);  	virtual void totSub(int8 flags, const char *newTotFile); diff --git a/engines/gob/game_fascin.cpp b/engines/gob/game_fascin.cpp index 38ad03f0f8..1387bf1de1 100644 --- a/engines/gob/game_fascin.cpp +++ b/engines/gob/game_fascin.cpp @@ -100,7 +100,7 @@ int16 Game_Fascination::checkCollisions(byte handleMouse, int16 deltaTime, int16  		key = checkKeys(&_vm->_global->_inter_mouseX,  				&_vm->_global->_inter_mouseY, &_mouseButtons, handleMouse); -		if ((handleMouse == 0) && (_mouseButtons != 0)) { +		if ((handleMouse == 0) && (_mouseButtons != kMouseButtonsNone)) {  			_vm->_util->waitMouseRelease(0);  			key = 3;  		} @@ -125,7 +125,7 @@ int16 Game_Fascination::checkCollisions(byte handleMouse, int16 deltaTime, int16  		}  		if (handleMouse != 0) { -			if (_mouseButtons != 0) { +			if (_mouseButtons != kMouseButtonsNone) {  				if (deltaTime > 0) {  					_vm->_draw->animateCursor(2);  					_vm->_util->delay(deltaTime); @@ -142,7 +142,7 @@ int16 Game_Fascination::checkCollisions(byte handleMouse, int16 deltaTime, int16  				if ((key != 0) || ((pResId != 0) && (*pResId != 0))) {  					if ((handleMouse & 1) && -							((deltaTime <= 0) || (_mouseButtons == 0))) +							((deltaTime <= 0) || (_mouseButtons == kMouseButtonsNone)))  						_vm->_draw->blitCursor();  					if ((_lastCollKey != 0) && (key != _lastCollKey)) @@ -180,7 +180,7 @@ int16 Game_Fascination::checkCollisions(byte handleMouse, int16 deltaTime, int16  			}  		} -		if ((deltaTime < 0) && (key == 0) && (_mouseButtons == 0)) { +		if ((deltaTime < 0) && (key == 0) && (_mouseButtons == kMouseButtonsNone)) {  			uint32 curtime = _vm->_util->getTimeKey();  			if ((curtime + deltaTime) > timeKey) {  				if (pResId != 0) diff --git a/engines/gob/game_v1.cpp b/engines/gob/game_v1.cpp index 87dc78e3b1..cf1641928c 100644 --- a/engines/gob/game_v1.cpp +++ b/engines/gob/game_v1.cpp @@ -317,7 +317,7 @@ int16 Game_v1::checkCollisions(byte handleMouse, int16 deltaTime,  		key = checkKeys(&_vm->_global->_inter_mouseX,  				&_vm->_global->_inter_mouseY, &_mouseButtons, handleMouse); -		if ((handleMouse == 0) && (_mouseButtons != 0)) { +		if ((handleMouse == 0) && (_mouseButtons != kMouseButtonsNone)) {  			_vm->_util->waitMouseRelease(0);  			key = 3;  		} @@ -347,7 +347,7 @@ int16 Game_v1::checkCollisions(byte handleMouse, int16 deltaTime,  		}  		if (handleMouse != 0) { -			if (_mouseButtons != 0) { +			if (_mouseButtons != kMouseButtonsNone) {  				oldIndex = 0;  				_vm->_draw->animateCursor(2); @@ -368,7 +368,7 @@ int16 Game_v1::checkCollisions(byte handleMouse, int16 deltaTime,  				if ((key != 0) || ((pResId != 0) && (*pResId != 0))) {  					if ((handleMouse == 1) && -							((deltaTime <= 0) || (_mouseButtons == 0))) +							((deltaTime <= 0) || (_mouseButtons == kMouseButtonsNone)))  						_vm->_draw->blitCursor();  					if ((_lastCollKey != 0) && @@ -775,7 +775,7 @@ void Game_v1::collisionsBlock(void) {  							_activeCollIndex = i;  							WRITE_VAR(2, _vm->_global->_inter_mouseX);  							WRITE_VAR(3, _vm->_global->_inter_mouseY); -							WRITE_VAR(4, _mouseButtons); +							WRITE_VAR(4, (uint32) _mouseButtons);  							WRITE_VAR(16, array[(uint16) _activeCollResId & ~0x8000]);  							if (collPtr->funcLeave != 0) { @@ -870,7 +870,7 @@ void Game_v1::collisionsBlock(void) {  		WRITE_VAR(2, _vm->_global->_inter_mouseX);  		WRITE_VAR(3, _vm->_global->_inter_mouseY); -		WRITE_VAR(4, _mouseButtons); +		WRITE_VAR(4, (uint32) _mouseButtons);  		WRITE_VAR(16, array[(uint16) _activeCollResId & ~0x8000]);  		if (_collisionAreas[_activeCollIndex].funcEnter != 0) { @@ -965,7 +965,7 @@ void Game_v1::collisionsBlock(void) {  		WRITE_VAR(2, _vm->_global->_inter_mouseX);  		WRITE_VAR(3, _vm->_global->_inter_mouseY); -		WRITE_VAR(4, _mouseButtons); +		WRITE_VAR(4, (uint32) _mouseButtons);  		if (VAR(16) == 0)  			WRITE_VAR(16, array[(uint16) _activeCollResId & ~0x8000]); @@ -1400,7 +1400,7 @@ int16 Game_v1::checkMousePoint(int16 all, int16 *resId, int16 *resIndex) {  			if (((ptr->flags & 0xF) != 1) && ((ptr->flags & 0xF) != 2))  				continue; -			if ((((ptr->flags & 0xF0) >> 4) != (_mouseButtons - 1)) +			if ((((ptr->flags & 0xF0) >> 4) != (((int32) _mouseButtons) - 1))  					&& (((ptr->flags & 0xF0) >> 4) != 2))  				continue; @@ -1417,7 +1417,7 @@ int16 Game_v1::checkMousePoint(int16 all, int16 *resId, int16 *resIndex) {  		}  	} -	if ((_mouseButtons != 1) && (all == 0)) +	if ((_mouseButtons != kMouseButtonsLeft) && (all == 0))  		return 0x11B;  	return 0; diff --git a/engines/gob/game_v2.cpp b/engines/gob/game_v2.cpp index 08184e73d0..e910b5278e 100644 --- a/engines/gob/game_v2.cpp +++ b/engines/gob/game_v2.cpp @@ -338,7 +338,7 @@ int16 Game_v2::checkCollisions(byte handleMouse, int16 deltaTime, int16 *pResId,  		key = checkKeys(&_vm->_global->_inter_mouseX,  				&_vm->_global->_inter_mouseY, &_mouseButtons, handleMouse); -		if ((handleMouse == 0) && (_mouseButtons != 0)) { +		if ((handleMouse == 0) && (_mouseButtons != kMouseButtonsNone)) {  			_vm->_util->waitMouseRelease(0);  			key = 3;  		} @@ -363,7 +363,7 @@ int16 Game_v2::checkCollisions(byte handleMouse, int16 deltaTime, int16 *pResId,  		}  		if (handleMouse != 0) { -			if (_mouseButtons != 0) { +			if (_mouseButtons != kMouseButtonsNone) {  				if (deltaTime > 0) {  					_vm->_draw->animateCursor(2);  					_vm->_util->delay(deltaTime); @@ -380,7 +380,7 @@ int16 Game_v2::checkCollisions(byte handleMouse, int16 deltaTime, int16 *pResId,  				if ((key != 0) || ((pResId != 0) && (*pResId != 0))) {  					if ((handleMouse & 1) && -							((deltaTime <= 0) || (_mouseButtons == 0))) +							((deltaTime <= 0) || (_mouseButtons == kMouseButtonsNone)))  						_vm->_draw->blitCursor();  					if ((_lastCollKey != 0) && (key != _lastCollKey)) @@ -418,7 +418,7 @@ int16 Game_v2::checkCollisions(byte handleMouse, int16 deltaTime, int16 *pResId,  			}  		} -		if ((deltaTime < 0) && (key == 0) && (_mouseButtons == 0)) { +		if ((deltaTime < 0) && (key == 0) && (_mouseButtons == kMouseButtonsNone)) {  			uint32 curtime = _vm->_util->getTimeKey();  			if ((curtime + deltaTime) > timeKey) {  				if (pResId != 0) @@ -1103,7 +1103,7 @@ int16 Game_v2::multiEdit(int16 time, int16 index, int16 *pCurPos,  			if (*collResId == 0)  				return 0; -			if (_mouseButtons != 0) { +			if (_mouseButtons != kMouseButtonsNone) {  				for (collArea = _collisionAreas, i = 0;  						collArea->left != 0xFFFF; collArea++, i++) {  					if ((collArea->flags & 0xF00)) @@ -1535,7 +1535,7 @@ int16 Game_v2::checkMousePoint(int16 all, int16 *resId, int16 *resIndex) {  			if ((ptr->flags & 0xF) < 1)  				continue; -			if ((((ptr->flags & 0xF0) >> 4) != (_mouseButtons - 1)) && +			if ((((ptr->flags & 0xF0) >> 4) != (((int32) _mouseButtons) - 1)) &&  					(((ptr->flags & 0xF0) >> 4) != 2))  				continue; @@ -1554,7 +1554,7 @@ int16 Game_v2::checkMousePoint(int16 all, int16 *resId, int16 *resIndex) {  		}  	} -	if ((_mouseButtons != 1) && (all == 0)) +	if ((_mouseButtons != kMouseButtonsLeft) && (all == 0))  		return 0x11B;  	return 0; diff --git a/engines/gob/game_v6.cpp b/engines/gob/game_v6.cpp index 8d40d41acc..dade2adddf 100644 --- a/engines/gob/game_v6.cpp +++ b/engines/gob/game_v6.cpp @@ -261,7 +261,7 @@ int16 Game_v6::checkCollisions(byte handleMouse, int16 deltaTime, int16 *pResId,  		key = checkKeys(&_vm->_global->_inter_mouseX,  				&_vm->_global->_inter_mouseY, &_mouseButtons, handleMouse); -		if ((handleMouse == 0) && (_mouseButtons != 0)) { +		if ((handleMouse == 0) && (_mouseButtons != kMouseButtonsNone)) {  			_vm->_util->waitMouseRelease(0);  			key = 3;  		} @@ -289,7 +289,7 @@ int16 Game_v6::checkCollisions(byte handleMouse, int16 deltaTime, int16 *pResId,  		}  		if (handleMouse != 0) { -			if (_mouseButtons != 0) { +			if (_mouseButtons != kMouseButtonsNone) {  				if (deltaTime > 0) {  					_vm->_draw->animateCursor(2); @@ -308,7 +308,7 @@ int16 Game_v6::checkCollisions(byte handleMouse, int16 deltaTime, int16 *pResId,  				if ((key != 0) || ((pResId != 0) && (*pResId != 0))) {  					if ((handleMouse & 1) && -							((deltaTime <= 0) || (_mouseButtons == 0))) +							((deltaTime <= 0) || (_mouseButtons == kMouseButtonsNone)))  						_vm->_draw->blitCursor();  					if (key != _lastCollKey) @@ -331,7 +331,7 @@ int16 Game_v6::checkCollisions(byte handleMouse, int16 deltaTime, int16 *pResId,  				collSubReenter();  		} -		if ((deltaTime == -2) && (key == 0) && (_mouseButtons == 0)) { +		if ((deltaTime == -2) && (key == 0) && (_mouseButtons == kMouseButtonsNone)) {  			if (pResId != 0)  				*pResId = 0; @@ -343,7 +343,7 @@ int16 Game_v6::checkCollisions(byte handleMouse, int16 deltaTime, int16 *pResId,  		} else if (handleMouse != 0)  			_vm->_draw->animateCursor(-1); -		if ((deltaTime < 0) && (key == 0) && (_mouseButtons == 0)) { +		if ((deltaTime < 0) && (key == 0) && (_mouseButtons == kMouseButtonsNone)) {  			uint32 curtime = _vm->_util->getTimeKey();  			if ((curtime + deltaTime) > timeKey) {  				if (pResId != 0) @@ -1069,7 +1069,7 @@ int16 Game_v6::checkMousePoint(int16 all, int16 *resId, int16 *resIndex) {  			if ((ptr->flags & 0xF) < 1)  				continue; -			if ((((ptr->flags & 0x70) >> 4) != (_mouseButtons - 1)) && +			if ((((ptr->flags & 0x70) >> 4) != (((int32) _mouseButtons) - 1)) &&  					(((ptr->flags & 0x70) >> 4) != 2))  				continue; @@ -1088,7 +1088,7 @@ int16 Game_v6::checkMousePoint(int16 all, int16 *resId, int16 *resIndex) {  		}  	} -	if ((_mouseButtons != 1) && (all == 0)) +	if ((_mouseButtons != kMouseButtonsLeft) && (all == 0))  		return 0x11B;  	return 0; diff --git a/engines/gob/inter.cpp b/engines/gob/inter.cpp index 8be07034c6..3cbdaa3584 100644 --- a/engines/gob/inter.cpp +++ b/engines/gob/inter.cpp @@ -180,7 +180,7 @@ void Inter::storeMouse() {  	WRITE_VAR(2, x);  	WRITE_VAR(3, y); -	WRITE_VAR(4, _vm->_game->_mouseButtons); +	WRITE_VAR(4, (uint32) _vm->_game->_mouseButtons);  }  void Inter::storeKey(int16 key) { diff --git a/engines/gob/inter_bargon.cpp b/engines/gob/inter_bargon.cpp index 12079600c0..1cffe4ca2d 100644 --- a/engines/gob/inter_bargon.cpp +++ b/engines/gob/inter_bargon.cpp @@ -89,7 +89,7 @@ void Inter_Bargon::oBargon_intro2(OpGobParams ¶ms) {  	int i;  	int16 mouseX;  	int16 mouseY; -	int16 buttons; +	MouseButtons buttons;  	SurfaceDescPtr surface;  	SoundDesc samples[4];  	int16 comp[5] = { 0, 1, 2, 3, -1 }; @@ -137,7 +137,7 @@ void Inter_Bargon::oBargon_intro2(OpGobParams ¶ms) {  void Inter_Bargon::oBargon_intro3(OpGobParams ¶ms) {  	int16 mouseX;  	int16 mouseY; -	int16 buttons; +	MouseButtons buttons;  	Video::Color *palBak;  	SoundDesc samples[2];  	int16 comp[3] = { 0, 1, -1 }; diff --git a/engines/gob/util.cpp b/engines/gob/util.cpp index b0e7691c07..6c38dcb5a9 100644 --- a/engines/gob/util.cpp +++ b/engines/gob/util.cpp @@ -38,14 +38,14 @@  namespace Gob {  Util::Util(GobEngine *vm) : _vm(vm) { -	_mouseButtons = 0; -	_keyBufferHead = 0; -	_keyBufferTail = 0; -	_fastMode = 0; -	_frameRate = 12; -	_frameWaitTime = 0; +	_mouseButtons   = kMouseButtonsNone, +	_keyBufferHead  = 0; +	_keyBufferTail  = 0; +	_fastMode       = 0; +	_frameRate      = 12; +	_frameWaitTime  = 0;  	_startFrameTime = 0; -	_frameWaitLag = 0; +	_frameWaitLag   = 0;  }  uint32 Util::getTimeKey(void) { @@ -85,7 +85,7 @@ void Util::longDelay(uint16 msecs) {  }  void Util::initInput(void) { -	_mouseButtons = 0; +	_mouseButtons  = kMouseButtonsNone;  	_keyBufferHead = _keyBufferTail = 0;  } @@ -103,16 +103,16 @@ void Util::processInput(bool scroll) {  			y = event.mouse.y;  			break;  		case Common::EVENT_LBUTTONDOWN: -			_mouseButtons |= 1; +			_mouseButtons = (MouseButtons) (((uint32) _mouseButtons) | ((uint32) kMouseButtonsLeft));  			break;  		case Common::EVENT_RBUTTONDOWN: -			_mouseButtons |= 2; +			_mouseButtons = (MouseButtons) (((uint32) _mouseButtons) | ((uint32) kMouseButtonsRight));  			break;  		case Common::EVENT_LBUTTONUP: -			_mouseButtons &= ~1; +			_mouseButtons = (MouseButtons) (((uint32) _mouseButtons) & ~((uint32) kMouseButtonsLeft));  			break;  		case Common::EVENT_RBUTTONUP: -			_mouseButtons &= ~2; +			_mouseButtons = (MouseButtons) (((uint32) _mouseButtons) & ~((uint32) kMouseButtonsRight));  			break;  		case Common::EVENT_KEYDOWN:  			if (event.kbd.flags == Common::KBD_CTRL) { @@ -246,7 +246,7 @@ bool Util::checkKey(int16 &key) {  	return true;  } -void Util::getMouseState(int16 *pX, int16 *pY, int16 *pButtons) { +void Util::getMouseState(int16 *pX, int16 *pY, MouseButtons *pButtons) {  	Common::Point mouse = g_system->getEventManager()->getMousePos();  	*pX = mouse.x + _vm->_video->_scrollOffsetX - _vm->_video->_screenDeltaX;  	*pY = mouse.y + _vm->_video->_scrollOffsetY - _vm->_video->_screenDeltaY; @@ -264,15 +264,15 @@ void Util::setMousePos(int16 x, int16 y) {  void Util::waitMouseUp(void) {  	do {  		processInput(); -		if (_mouseButtons != 0) +		if (_mouseButtons != kMouseButtonsNone)  			delay(10); -	} while (_mouseButtons != 0); +	} while (_mouseButtons != kMouseButtonsNone);  }  void Util::waitMouseDown(void) {  	int16 x;  	int16 y; -	int16 buttons; +	MouseButtons buttons;  	do {  		processInput(); @@ -283,7 +283,7 @@ void Util::waitMouseDown(void) {  }  void Util::waitMouseRelease(char drawMouse) { -	int16 buttons; +	MouseButtons buttons;  	int16 mouseX;  	int16 mouseY; @@ -300,8 +300,8 @@ void Util::forceMouseUp(bool onlyWhenSynced) {  	if (onlyWhenSynced && (_vm->_game->_mouseButtons != _mouseButtons))  		return; -	_vm->_game->_mouseButtons = 0; -	_mouseButtons = 0; +	_vm->_game->_mouseButtons = kMouseButtonsNone; +	_mouseButtons             = kMouseButtonsNone;  }  void Util::clearPalette(void) { diff --git a/engines/gob/util.h b/engines/gob/util.h index 0a76ee40ab..2b6ea7fdc3 100644 --- a/engines/gob/util.h +++ b/engines/gob/util.h @@ -34,6 +34,14 @@ namespace Gob {  #define KEYBUFSIZE 16 +enum MouseButtons { +	kMouseButtonsNone  = 0, +	kMouseButtonsLeft  = 1, +	kMouseButtonsRight = 2, +	kMouseButtonsBoth  = 3, +	kMouseButtonsAny   = 4 +}; +  class Util {  public:  	struct ListNode; @@ -66,7 +74,7 @@ public:  	int16 checkKey(void);  	bool checkKey(int16 &key); -	void getMouseState(int16 *pX, int16 *pY, int16 *pButtons); +	void getMouseState(int16 *pX, int16 *pY, MouseButtons *pButtons);  	void setMousePos(int16 x, int16 y);  	void waitMouseUp(void);  	void waitMouseDown(void); @@ -95,7 +103,8 @@ public:  	Util(GobEngine *vm);  protected: -	int16 _mouseButtons; +	MouseButtons _mouseButtons; +  	Common::KeyState _keyBuffer[KEYBUFSIZE];  	int16 _keyBufferHead;  	int16 _keyBufferTail; | 
