aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/aniobject.cpp
diff options
context:
space:
mode:
authorSven Hesse2011-09-12 17:11:31 +0200
committerSven Hesse2011-09-14 18:54:28 +0200
commita43794b9c4e7cfd5b5bba760c08e19350c7d0c98 (patch)
treee1a0f1a3cae78bd2759a37679c0d501f7c704b67 /engines/gob/aniobject.cpp
parentac3593c63143e7bea9dfab6b237a812186c9dcee (diff)
downloadscummvm-rg350-a43794b9c4e7cfd5b5bba760c08e19350c7d0c98.tar.gz
scummvm-rg350-a43794b9c4e7cfd5b5bba760c08e19350c7d0c98.tar.bz2
scummvm-rg350-a43794b9c4e7cfd5b5bba760c08e19350c7d0c98.zip
GOB: Add ANIObject animation mode
Play the animation continuously or only once.
Diffstat (limited to 'engines/gob/aniobject.cpp')
-rw-r--r--engines/gob/aniobject.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/engines/gob/aniobject.cpp b/engines/gob/aniobject.cpp
index 9974874bbf..c689145b75 100644
--- a/engines/gob/aniobject.cpp
+++ b/engines/gob/aniobject.cpp
@@ -27,7 +27,8 @@
namespace Gob {
ANIObject::ANIObject(const ANIFile &ani) : _ani(&ani),
- _visible(false), _paused(false), _x(0), _y(0), _background(0), _drawn(false) {
+ _visible(false), _paused(false), _mode(kModeContinuous),
+ _x(0), _y(0), _background(0), _drawn(false) {
setAnimation(0);
setPosition();
@@ -53,6 +54,10 @@ bool ANIObject::isPaused() const {
return _paused;
}
+void ANIObject::setMode(Mode mode) {
+ _mode = mode;
+}
+
void ANIObject::setAnimation(uint16 animation) {
_animation = animation;
_frame = 0;
@@ -173,6 +178,11 @@ void ANIObject::advance() {
if (_frame == 0) {
_x += animation.deltaX;
_y += animation.deltaY;
+
+ if (_mode == kModeOnce) {
+ _paused = true;
+ _visible = false;
+ }
}
}