diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/parallaction/walk.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/engines/parallaction/walk.cpp b/engines/parallaction/walk.cpp index 2a412fb8a2..fc8447f20e 100644 --- a/engines/parallaction/walk.cpp +++ b/engines/parallaction/walk.cpp @@ -422,6 +422,7 @@ void PathWalker_BR::setCharacterPath(AnimationPtr a, uint16 x, uint16 y) { _character._a = a; _character._first = true; _character._fieldC = 1; + _character._walkDelay = 0; buildPath(_character, x, y); _character._active = true; } @@ -585,19 +586,16 @@ void PathWalker_BR::doWalk(State &s) { debugC(3, kDebugWalk, "PathWalker_BR::doWalk(%s)", s._a->_name); -#if 0 - // TODO: support delays in walking. This requires extending Input::walkIo(). - if (ch._walkDelay > 0) { - ch._walkDelay--; - if (ch._walkDelay == 0 && _ch._ani->_scriptName) { + if (s._walkDelay > 0) { + s._walkDelay--; + if (s._walkDelay == 0 && s._a->_scriptName) { // stop script and reset - _ch._ani->_flags &= ~kFlagsActing; - Script *script = findScript(_ch._ani->_scriptName); - script->_nextCommand = script->firstCommand; + s._a->_flags &= ~kFlagsActing; +// _vm->_programExec->resetProgram(s._a->_scriptName); } return; } -#endif + if (s._fieldC == 0) { s._walkPath.erase(s._walkPath.begin()); |