aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction
diff options
context:
space:
mode:
authorNicola Mettifogo2009-03-23 08:00:39 +0000
committerNicola Mettifogo2009-03-23 08:00:39 +0000
commit5c714cb46eb7c94f1b98d726b635081363c74c98 (patch)
treec94b5395902c67eae7b6a4c7bd13e9873ba45fbf /engines/parallaction
parent71f42a954988bfe490d9c76e16edfa06873fe1b8 (diff)
downloadscummvm-rg350-5c714cb46eb7c94f1b98d726b635081363c74c98.tar.gz
scummvm-rg350-5c714cb46eb7c94f1b98d726b635081363c74c98.tar.bz2
scummvm-rg350-5c714cb46eb7c94f1b98d726b635081363c74c98.zip
Implemented MOVE script instruction.
svn-id: r39623
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;
}