aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/animation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction/animation.cpp')
-rw-r--r--engines/parallaction/animation.cpp28
1 files changed, 14 insertions, 14 deletions
diff --git a/engines/parallaction/animation.cpp b/engines/parallaction/animation.cpp
index c73617ce35..47c5454be1 100644
--- a/engines/parallaction/animation.cpp
+++ b/engines/parallaction/animation.cpp
@@ -95,7 +95,12 @@ DECLARE_ANIM_PARSER(type) {
}
}
- _locAnimParseCtxt.end = true;
+ _locAnimParseCtxt.a->_oldPos.x = -1000;
+ _locAnimParseCtxt.a->_oldPos.y = -1000;
+
+ _locAnimParseCtxt.a->_flags |= 0x1000000;
+
+ popParserTables();
}
@@ -141,7 +146,13 @@ DECLARE_ANIM_PARSER(moveto) {
DECLARE_ANIM_PARSER(endanimation) {
- _locAnimParseCtxt.end = true;
+
+ _locAnimParseCtxt.a->_oldPos.x = -1000;
+ _locAnimParseCtxt.a->_oldPos.y = -1000;
+
+ _locAnimParseCtxt.a->_flags |= 0x1000000;
+
+ popParserTables();
}
Animation *Parallaction::parseAnimation(Script& script, AnimationList &list, char *name) {
@@ -157,18 +168,7 @@ Animation *Parallaction::parseAnimation(Script& script, AnimationList &list, cha
_locAnimParseCtxt.end = false;
_locAnimParseCtxt.script = &script;
- do {
- fillBuffers(script, true);
-
- int index = _locationAnimStmt->lookup(_tokens[0]);
- (this->*_locationAnimParsers[index])();
-
- } while (!_locAnimParseCtxt.end);
-
- a->_oldPos.x = -1000;
- a->_oldPos.y = -1000;
-
- a->_flags |= 0x1000000;
+ pushParserTables(_locationAnimParsers, _locationAnimStmt);
return a;
}