[Scummvm-cvs-logs] CVS: scummvm/sword1 menu.cpp,1.5,1.6 mouse.cpp,1.9,1.10 mouse.h,1.6,1.7

Robert G?ffringmann lavosspawn at users.sourceforge.net
Sat Dec 20 09:56:01 CET 2003


Update of /cvsroot/scummvm/scummvm/sword1
In directory sc8-pr-cvs1:/tmp/cvs-serv26137/sword1

Modified Files:
	menu.cpp mouse.cpp mouse.h 
Log Message:
fix recently introduced mouse bugs.

Index: menu.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword1/menu.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- menu.cpp	17 Dec 2003 07:33:00 -0000	1.5
+++ menu.cpp	20 Dec 2003 17:55:09 -0000	1.6
@@ -182,7 +182,6 @@
 		_screen->clearMenu(MENU_TOP);
 		_screen->clearMenu(MENU_BOT);
 		_objectBarShown = false;
-		_mouse->setMenuStatus(0);
 	}
 }
 
@@ -190,7 +189,7 @@
 	SwordLogic::_scriptVars[OBJECT_HELD] = 0;
 	buildSubjects();
 	compact->o_logic = LOGIC_choose;
-	_mouse->setMenuStatus(1); // so the mouse cursor will be shown.
+	_mouse->controlPanel(true); // so the mouse cursor will be shown.
 	_subjectBarShown = true;
 }
 
@@ -203,7 +202,7 @@
 			delete _subjects[cnt];
 			_subjects[cnt] = NULL;
 		}
-	_mouse->setMenuStatus(0);
+	_mouse->controlPanel(false);
 	_subjectBarShown = false;
 }
 

Index: mouse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword1/mouse.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- mouse.cpp	20 Dec 2003 09:12:54 -0000	1.9
+++ mouse.cpp	20 Dec 2003 17:55:09 -0000	1.10
@@ -57,10 +57,11 @@
 
 void SwordMouse::initialize(void) {
 	_numObjs = 0;
-	_menuStatus = _mouseStatus = 0; // mouse off and unlocked
+	_mouseStatus = 0; // mouse off and unlocked
 	_getOff = 0;
 	_specialPtrId = 0;
 	_inTopMenu = false;
+	_mouseOverride = false;
 
 	for (uint8 cnt = 0; cnt < 17; cnt++)
 		_pointers[cnt] = (MousePtr*)_resMan->mouseResOpen(MSE_POINTER + cnt);
@@ -68,17 +69,15 @@
 
 void SwordMouse::controlPanel(bool on) { // true on entering cpanel, false when leaving
 	static uint32 savedPtrId = 0, savedSpecialId = 0;
-	static uint8 savedMouseStatus;
 	if (on) {
 		savedPtrId = _currentPtrId;
 		savedSpecialId = _specialPtrId;
-		savedMouseStatus = _mouseStatus;
-		_mouseStatus = 1;
+		_mouseOverride = true;
 		setPointer(MSE_POINTER, 0);
 	} else {
 		_currentPtrId = savedPtrId;
-		_mouseStatus = savedMouseStatus;
 		_specialPtrId = savedSpecialId;
+		_mouseOverride = false;
 		if (_specialPtrId)
 			setPointer(_specialPtrId, 0);
 		else
@@ -91,10 +90,6 @@
 	_menu = pMenu;
 }
 
-void SwordMouse::setMenuStatus(uint8 status) {
-	_menuStatus = status;
-}
-
 void SwordMouse::addToList(int id, BsObject *compact) {
 	_objList[_numObjs].id = id;
 	_objList[_numObjs].compact = compact;
@@ -209,7 +204,7 @@
 	}
 	_frame = 0;
 
-	if ((resId == 0) || (!(_mouseStatus & 1))) {
+	if ((resId == 0) || (!(_mouseStatus & 1) && (!_mouseOverride))) {
 		_system->set_mouse_cursor(NULL, 0, 0, 0, 0);
 		_system->show_mouse(false);
 	} else {
@@ -227,7 +222,7 @@
 
 void SwordMouse::animate(void) {
 	MousePtr *currentPtr;
-	if ((_mouseStatus == 1) || _menuStatus) {
+	if ((_mouseStatus == 1) || _mouseOverride) {
 		if (_specialPtrId)
 			currentPtr = _specialPtr;
 		else

Index: mouse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword1/mouse.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- mouse.h	20 Dec 2003 09:12:54 -0000	1.6
+++ mouse.h	20 Dec 2003 17:55:09 -0000	1.7
@@ -83,7 +83,6 @@
 	void fnNormalMouse(void);
 	void fnLockMouse(void);
 	void fnUnlockMouse(void);
-	void setMenuStatus(uint8 status);
 	void controlPanel(bool on);
 private:
 	MousePtr *_pointers[17];
@@ -100,10 +99,9 @@
 	uint16 _numObjs;
 	uint16 _lastState, _state;
 	uint32 _getOff;
-	uint8 _menuStatus;
 	uint32 _specialPtrId; // for special mouse cursors which aren't in the _pointers[] array.
 	MousePtr *_specialPtr;
-	bool _inTopMenu;
+	bool _inTopMenu, _mouseOverride;
 };
 
 #endif //BSMOUSE_H





More information about the Scummvm-git-logs mailing list