aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction')
-rw-r--r--engines/parallaction/exec_br.cpp5
-rw-r--r--engines/parallaction/walk.cpp4
2 files changed, 8 insertions, 1 deletions
diff --git a/engines/parallaction/exec_br.cpp b/engines/parallaction/exec_br.cpp
index a3eb919354..c5e53f6a1d 100644
--- a/engines/parallaction/exec_br.cpp
+++ b/engines/parallaction/exec_br.cpp
@@ -447,7 +447,10 @@ DECLARE_INSTRUCTION_OPCODE(process) {
DECLARE_INSTRUCTION_OPCODE(move) {
- warning("Parallaction_br::instOp_move not yet implemented");
+ // NOTE: I couldn't find evidence of scripts containing this instruction being used
+ InstructionPtr inst =*ctxt._inst;
+ _vm->scheduleWalk(inst->_opA.getValue(), inst->_opB.getValue(), false);
+ ctxt._suspend = true;
}
diff --git a/engines/parallaction/walk.cpp b/engines/parallaction/walk.cpp
index ec435fddec..f9fd6254e1 100644
--- a/engines/parallaction/walk.cpp
+++ b/engines/parallaction/walk.cpp
@@ -437,6 +437,10 @@ void PathWalker_BR::setFollowerPath(AnimationPtr a, uint16 x, uint16 y) {
}
void PathWalker_BR::stopFollower() {
+ if (_follower._active) {
+ uint32 frame = _follower._a->getF();
+ _follower._a->setF((frame/9) * 9);
+ }
_follower._a.reset();
_follower._active = false;
}