aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/scalpel/tsage/logo.h
diff options
context:
space:
mode:
authorPaul Gilbert2015-05-31 10:29:13 -0400
committerPaul Gilbert2015-05-31 10:29:13 -0400
commit656906da4276bdb0783f58be6e84164b2bf0ecbb (patch)
tree96ff181cb99b3cad7fb14fe294aed10c76da2d46 /engines/sherlock/scalpel/tsage/logo.h
parent2826a06bc56386f845fd6551ba422f1baf5e3ecd (diff)
downloadscummvm-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.h36
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);
};