diff options
Diffstat (limited to 'engines/titanic/support/mouse_cursor.h')
-rw-r--r-- | engines/titanic/support/mouse_cursor.h | 48 |
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); }; |