aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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: