[Scummvm-git-logs] scummvm master -> 21562fba08a92a342911949bae7ff9ed9ee5d123

dreammaster dreammaster at scummvm.org
Thu Oct 27 01:11:44 CEST 2016


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:
21562fba08 TITANIC: Add yet another mouse hiding counter the game uses


Commit: 21562fba08a92a342911949bae7ff9ed9ee5d123
    https://github.com/scummvm/scummvm/commit/21562fba08a92a342911949bae7ff9ed9ee5d123
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2016-10-26T19:11:35-04:00

Commit Message:
TITANIC: Add yet another mouse hiding counter the game uses

Changed paths:
    engines/titanic/support/mouse_cursor.cpp
    engines/titanic/support/mouse_cursor.h
    engines/titanic/support/screen_manager.cpp



diff --git a/engines/titanic/support/mouse_cursor.cpp b/engines/titanic/support/mouse_cursor.cpp
index e1022c7..8a9b6b6 100644
--- a/engines/titanic/support/mouse_cursor.cpp
+++ b/engines/titanic/support/mouse_cursor.cpp
@@ -55,7 +55,7 @@ CMouseCursor::CursorEntry::~CursorEntry() {
 
 CMouseCursor::CMouseCursor(CScreenManager *screenManager) :
 		_screenManager(screenManager), _cursorId(CURSOR_HOURGLASS), _hideCounter(0),
-		_cursorSuppressed(false), _setCursorCount(0), _fieldE4(0), _fieldE8(0) {
+		_hiddenCount(0), _cursorSuppressed(false), _setCursorCount(0), _fieldE4(0), _fieldE8(0) {
 	loadCursorImages();
 	setCursor(CURSOR_ARROW);
 	CursorMan.showMouse(true);
@@ -88,11 +88,15 @@ void CMouseCursor::loadCursorImages() {
 }
 
 void CMouseCursor::show() {
-	CursorMan.showMouse(!_cursorSuppressed);
+	assert(_hiddenCount > 0);
+
+	if (--_hiddenCount == 0)
+		CursorMan.showMouse(!_cursorSuppressed);
 }
 
 void CMouseCursor::hide() {
 	CursorMan.showMouse(false);
+	++_hiddenCount;
 }
 
 void CMouseCursor::incHideCounter() {
diff --git a/engines/titanic/support/mouse_cursor.h b/engines/titanic/support/mouse_cursor.h
index 8960c54..41508fd 100644
--- a/engines/titanic/support/mouse_cursor.h
+++ b/engines/titanic/support/mouse_cursor.h
@@ -67,6 +67,7 @@ private:
 	CursorEntry _cursors[NUM_CURSORS];
 	uint _setCursorCount;
 	int _hideCounter;
+	int _hiddenCount;
 	bool _cursorSuppressed;
 	int _fieldE4;
 	int _fieldE8;
diff --git a/engines/titanic/support/screen_manager.cpp b/engines/titanic/support/screen_manager.cpp
index a688cf0..2a67539 100644
--- a/engines/titanic/support/screen_manager.cpp
+++ b/engines/titanic/support/screen_manager.cpp
@@ -330,7 +330,6 @@ void OSScreenManager::loadCursors() {
 		delete _mouseCursor;
 	}
 	_mouseCursor = new CMouseCursor(this);
-	showCursor();
 
 	if (!_textCursor) {
 		_textCursor = new CTextCursor(this);





More information about the Scummvm-git-logs mailing list