diff options
Diffstat (limited to 'engines/gargoyle/events.h')
-rw-r--r-- | engines/gargoyle/events.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/engines/gargoyle/events.h b/engines/gargoyle/events.h index 1347200d4a..5406e3ccb6 100644 --- a/engines/gargoyle/events.h +++ b/engines/gargoyle/events.h @@ -24,6 +24,7 @@ #define GARGOYLE_EVENTS_H #include "common/events.h" +#include "graphics/surface.h" #include "gargoyle/utils.h" namespace Gargoyle { @@ -93,6 +94,12 @@ enum Keycode { keycode_MAXVAL = 28U }; +enum CursorId { + CURSOR_NONE = 0, + CURSOR_ARROW = 1, + CURSOR_SELECTION = 2 +}; + /** * Event structure */ @@ -146,6 +153,9 @@ public: * Events manager */ class Events { + struct Surface : public Graphics::Surface { + Common::Point _hotspot; + }; private: EventQueue _eventsPolled; ///< User generated events EventQueue _eventsLogged; ///< Custom events generated by game code @@ -154,8 +164,15 @@ private: uint32 _priorFrameTime; ///< Time of prior game frame uint32 _frameCounter; ///< Frame counter bool _redraw; ///< Screen needed redrawing + CursorId _cursorId; ///< Current cursor Id + Surface _cursors[3]; ///< Cursor pixel data private: /** + * Initialize the cursor graphics + */ + void initializeCursors(); + + /** * Checks for whether it's time for the next game frame */ void checkForNextFrameCounter(); @@ -203,6 +220,11 @@ public: Events(); /** + * Destructor + */ + ~Events(); + + /** * Get any pending event */ void getEvent(event_t *event, bool polled); @@ -231,6 +253,11 @@ public: * Flags the screen for redrawing */ void redraw() { _redraw = true; } + + /** + * Sets the current cursor + */ + void setCursor(CursorId cursorId); }; } // End of namespace Gargoyle |