aboutsummaryrefslogtreecommitdiff
path: root/engines/sludge/cursors.h
diff options
context:
space:
mode:
authorSimei Yin2017-07-21 08:16:17 +0200
committerSimei Yin2017-07-21 11:21:45 +0200
commitfd2cf90bb3eab1050d0513813c72a9e26a8166d5 (patch)
tree3179a75e87527fffaec880b2876beec2b88ddfb6 /engines/sludge/cursors.h
parent6858d3c6aefe1f39089a56ef3f2521b86d8abeb0 (diff)
downloadscummvm-rg350-fd2cf90bb3eab1050d0513813c72a9e26a8166d5.tar.gz
scummvm-rg350-fd2cf90bb3eab1050d0513813c72a9e26a8166d5.tar.bz2
scummvm-rg350-fd2cf90bb3eab1050d0513813c72a9e26a8166d5.zip
SLUDGE: Objectify cursor manager
Diffstat (limited to 'engines/sludge/cursors.h')
-rw-r--r--engines/sludge/cursors.h32
1 files changed, 29 insertions, 3 deletions
diff --git a/engines/sludge/cursors.h b/engines/sludge/cursors.h
index 9bc5b82806..5fd1885f69 100644
--- a/engines/sludge/cursors.h
+++ b/engines/sludge/cursors.h
@@ -25,9 +25,35 @@
namespace Sludge {
-void pickAnimCursor(struct PersonaAnimation *pp);
-void displayCursor();
-void pasteCursor(int x, int y, struct PersonaAnimation *c);
+class SludgeEngine;
+
+struct FrozenStuffStruct;
+
+class CursorManager {
+public:
+ CursorManager(SludgeEngine *vm);
+ virtual ~CursorManager();
+
+ // cursor
+ void pickAnimCursor(struct PersonaAnimation *pp);
+ void displayCursor();
+ void pasteCursor(int x, int y, struct PersonaAnimation *c);
+
+ // freeze
+ void freeze(FrozenStuffStruct *frozenStuff);
+ void resotre(FrozenStuffStruct *frozenStuff);
+
+ // load & save
+ void saveCursor(Common::WriteStream *stream);
+ bool loadCursor(Common::SeekableReadStream *stream);
+
+private:
+ SludgeEngine *_vm;
+
+ PersonaAnimation *_mouseCursorAnim;
+ int _mouseCursorFrameNum;
+ int _mouseCursorCountUp;
+};
} // End of namespace Sludge