aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2011-08-26 20:06:43 +1000
committerPaul Gilbert2011-08-26 20:06:43 +1000
commit5910c8afa9c56ef808bb0cd61b28baba7b45e349 (patch)
treeea8fb58022ee6a121d1182228f971cb676835501 /engines
parentca7b85bfd8fd868b6675abf57b7a23ad1dc70d3e (diff)
downloadscummvm-rg350-5910c8afa9c56ef808bb0cd61b28baba7b45e349.tar.gz
scummvm-rg350-5910c8afa9c56ef808bb0cd61b28baba7b45e349.tar.bz2
scummvm-rg350-5910c8afa9c56ef808bb0cd61b28baba7b45e349.zip
TSAGE: Implemented the new ANIM_MODE_9 animation mode
Diffstat (limited to 'engines')
-rw-r--r--engines/tsage/core.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index 49abf293e0..aef949283f 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -2072,6 +2072,7 @@ void SceneObject::animate(AnimateMode animMode, ...) {
break;
case ANIM_MODE_8:
+ case ANIM_MODE_9:
_field68 = va_arg(va, int);
_endAction = va_arg(va, Action *);
_frameChange = 1;
@@ -2258,7 +2259,23 @@ void SceneObject::dispatch() {
} else {
setFrame(changeFrame());
}
+ break;
+ case ANIM_MODE_9:
+ if (_frame == _endFrame) {
+ if (_frameChange != -1) {
+ _frameChange = -1;
+ _strip = (_strip - 1) ^ 1 + 1;
+ _endFrame = 1;
+ } else if ((_field68 == 0) || (--_field68 != 0)) {
+ _frameChange = 1;
+ _endFrame = getFrameCount();
+
+ setFrame(changeFrame());
+ }
+ } else {
+ setFrame(changeFrame());
+ }
break;
default: