diff options
Diffstat (limited to 'engines/parallaction/animation.cpp')
-rw-r--r-- | engines/parallaction/animation.cpp | 28 |
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; } |