aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/support/mouse_cursor.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/support/mouse_cursor.h')
-rw-r--r--engines/titanic/support/mouse_cursor.h48
1 files changed, 43 insertions, 5 deletions
diff --git a/engines/titanic/support/mouse_cursor.h b/engines/titanic/support/mouse_cursor.h
index 08de28e29d..1662ce743d 100644
--- a/engines/titanic/support/mouse_cursor.h
+++ b/engines/titanic/support/mouse_cursor.h
@@ -66,14 +66,22 @@ private:
CursorId _cursorId;
CursorEntry _cursors[NUM_CURSORS];
uint _setCursorCount;
- int _fieldE4;
+ int _hideCounter;
+ int _hiddenCount;
+ bool _cursorSuppressed;
int _fieldE8;
+ uint32 _priorMoveTime;
+ Common::Point _moveStartPos;
+ Common::Point _moveDestPos;
+ uint _moveStartTime, _moveEndTime;
/**
* Load the images for each cursor
*/
void loadCursorImages();
public:
+ bool _inputEnabled;
+public:
CMouseCursor(CScreenManager *screenManager);
~CMouseCursor();
@@ -88,6 +96,29 @@ public:
void hide();
/**
+ * Decrements the hide counter, and shows the mouse if
+ * it's reached zero
+ */
+ void incHideCounter();
+
+ /**
+ * Increments the hide counter, hiding the mouse if it's the first call
+ */
+ void decHideCounter();
+
+ /**
+ * Suppresses the cursor. When suppressed, the cursor isn't drawn,
+ * even if it's not otherwise being hidden
+ */
+ void suppressCursor();
+
+ /**
+ * Unflags the cursor as being suppressed, allowing it to be drawn
+ * again if it's enabled
+ */
+ void unsuppressCursor();
+
+ /**
* Set the cursor
*/
void setCursor(CursorId cursorId);
@@ -102,13 +133,20 @@ public:
*/
uint getChangeCount() const { return _setCursorCount; }
- void lockE4();
- void unlockE4();
+ /**
+ * Disables user control of the mouse
+ */
+ void disableControl();
+
+ /**
+ * Re-enables user control of the mouse
+ */
+ void enableControl();
/**
- * Sets the mouse to a new position
+ * Move the mouse to a new position
*/
- void setPosition(const Point &pt, double rate);
+ void setPosition(const Point &pt, double duration);
};