diff options
author | Paul Gilbert | 2015-05-31 10:29:13 -0400 |
---|---|---|
committer | Paul Gilbert | 2015-05-31 10:29:13 -0400 |
commit | 656906da4276bdb0783f58be6e84164b2bf0ecbb (patch) | |
tree | 96ff181cb99b3cad7fb14fe294aed10c76da2d46 /engines/sherlock/scalpel/tsage/logo.h | |
parent | 2826a06bc56386f845fd6551ba422f1baf5e3ecd (diff) | |
download | scummvm-rg350-656906da4276bdb0783f58be6e84164b2bf0ecbb.tar.gz scummvm-rg350-656906da4276bdb0783f58be6e84164b2bf0ecbb.tar.bz2 scummvm-rg350-656906da4276bdb0783f58be6e84164b2bf0ecbb.zip |
SHERLOCK: More of the Scalpel logo implemented
Diffstat (limited to 'engines/sherlock/scalpel/tsage/logo.h')
-rw-r--r-- | engines/sherlock/scalpel/tsage/logo.h | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/engines/sherlock/scalpel/tsage/logo.h b/engines/sherlock/scalpel/tsage/logo.h index 0b1f0a0500..0dcd35e281 100644 --- a/engines/sherlock/scalpel/tsage/logo.h +++ b/engines/sherlock/scalpel/tsage/logo.h @@ -41,8 +41,6 @@ class ScalpelEngine; namespace TsAGE { -enum AnimationMode { ANIM_MODE_NONE = 0, ANIM_MODE_4 = 4, ANIM_MODE_5 = 5 }; - class ObjectSurface : public Surface { public: Common::Point _centroid; @@ -73,6 +71,11 @@ public: void setVisage(int resNum, int rlbNum = 9999); /** + * Clear the visage + */ + void clear(); + + /** * Get a frame from the visage */ void getFrame(ObjectSurface &s, int frameNum); @@ -92,7 +95,7 @@ class Object { private: Visage _visage; uint32 _updateStartFrame; - int _animMode; + bool _isAnimating; bool _finished; /** @@ -107,6 +110,7 @@ private: public: static ScalpelEngine *_vm; Common::Point _position; + Common::Point _destination; Common::Rect _oldBounds; int _frame; int _numFrames; @@ -120,9 +124,14 @@ public: void setVisage(int visage, int strip); /** - * Sets the animation mode + * Sets whether the object is animating */ - void setAnimMode(AnimationMode mode); + void setAnimMode(bool isAnimating); + + /** + * Starts an object moving to a given destination + */ + void setDestination(const Common::Point &pt) { _destination = pt; } /** * Returns true if an animation is ended @@ -130,9 +139,24 @@ public: bool isAnimEnded() const; /** + * Return true if object is moving + */ + bool isMoving() const; + + /** + * Erase the area the object was previously drawn at, by restoring the background + */ + void erase(); + + /** * Update the frame */ void update(); + + /** + * Remove an object from being displayed + */ + void remove() { _visage.clear(); } }; class Logo { @@ -161,7 +185,7 @@ private: /** * Fade from the current palette to a new one */ - void fade(const byte palette[PALETTE_SIZE]); + void fade(const byte palette[PALETTE_SIZE], int step = 6); public: static bool show(ScalpelEngine *vm); }; |